53
Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão embutidas na lógica da aplicação. Uma aplicação depende dos dados quando é impossível modificar a estrutura dos dados ou a forma de acesso sem que a aplicação seja afetada; Num SGBD é possível incluir novos campos em uma tabela, dividir uma tabela em duas outras ou ainda unir duas tabelas em uma, criar e destruir índices sem que as aplicações sejam afetadas a não ser em alguns casos específicos; Assim, a independência dos dados pode ser definida como a imunidade das aplicações à estrutura de armazenamento e à estratégia de acesso às informações;

Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Embed Size (px)

Citation preview

Page 1: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Independência dos Dados

Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão embutidas na lógica da aplicação. Uma aplicação depende dos dados quando é impossível modificar a estrutura dos dados ou a forma de acesso sem que a aplicação seja afetada;Num SGBD é possível incluir novos campos em uma tabela, dividir uma tabela em duas outras ou ainda unir duas tabelas em uma, criar e destruir índices sem que as aplicações sejam afetadas a não ser em alguns casos específicos;Assim, a independência dos dados pode ser definida como a imunidade das aplicações à estrutura de armazenamento e à estratégia de acesso às informações;

Page 2: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Abstração de Informação

“Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vários graus de detalhe, dependendo

do contexto do problema.”

Page 3: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Abstração dos Dados

O grande objetivo dos SGBDs é fornecer ao usuário uma visão simplificada dos dados, escondendo toda a complexidade do armazenamento de dados em níveis de abstração que simplificam o acesso às informações;

A arquitetura de um banco de dados divide-se em três níveis de abstração: físico (ou interno), conceitual e de visões (ou externo).

Page 4: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Nível Físico ou interno

Este é o nível mais baixo de abstração e descreve como os dados estão realmente armazenados;Neste nível, complexas estruturas de dados e programas trabalham para fornecer informações aos dois outros níveis de forma transparente.

Page 5: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Nível Conceitual

Descreve quais dados estão de fato armazenados no banco de dados e as relações que existem entre eles;Os usuários deste nível não precisam se preocupar quanto à forma com que os dados são armazenados no nível físico;O nível conceitual é usado por administradores de bancos de dados que especificam quais informações devem fazer parte do banco de dados e usuários avançados.

Page 6: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Nível de Visões ou Externo

É a forma como geralmente os usuários finais vêem as informações contidas no banco de dados;O nível mais alto de abstração é composto de inúmeras visões do mesmo banco de dados;Isto se deve ao fato de que muitos usuários não estão interessados em todas as informações contidas no banco de dados;Em vez disso, precisam apenas de uma parte destas informações;O nível de visões é definido para simplificar a interação entre o usuário final e o banco de dados.

Page 7: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Nível de Visão1

Nível de Visão2

Nível de Visão 3

Nível Conceitual

Nível Físico

Page 8: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Linguagem de Definição de dados

Linguagem que define as aplicações, arquivos e campos que irão compor o banco de dados (comandos de criação e atualização da estrutura dos campos dos arquivos).Um esquema de banco de dados é especificado por um tipo de linguagem especial chamada Linguagem de Definição de Dados ou simplesmente DDL (Data Definition Language).O resultado da compilação e execução de comandos DDL é um conjunto de especificações especificadas no “dicionário de dados”.O dicionário de dados é um arquivo que contém os metadados, ou seja, dados que são informações sobre dados. Estes metadados contém as especificações do banco de dados, é consultado antes de dados reais serem lidos ou modificados no sistema de banco de dados.

Page 9: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão
Page 10: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão
Page 11: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Exemplo

NumDept NomeDept1 Financeiro2 Recursos Humanos3 Administrativo

CREATE TABLE Departamento,

NumDept INTEGER,

NomeDept CHAR(20);

Page 12: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Linguagem de Manipulação de Dados

Linguagem que permite aos usuários acessar ou manipular dados organizados por um modelo de dados apropriadoA linguagem de manipulação de dados fornece as seguintes facilidades:

– Busca de informações armazenadas no banco de dados;– Inserção de novas informações;– Eliminação de informações;– Modificação de informações.

– Ex:– Select NumDept,NomeDept From Departamento Where NumDpet = 2;

Page 13: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Funções do DBA

Pesquisar as principais funções de um DBA;

Page 14: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

As Três Abordagens Clássicas

O usuário vê o banco de dados segundo um modelo de visões;O modelo de visões e o modelo conceitual são bastante semelhantes, as vezes idênticos;Portanto os conceitos aplicados aqui servem tanto para o nível conceitual quanto para o de visões;– Abordagem Relacional;– Abordagem Hierárquica;– Abordagem em Rede

Page 15: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

A Abordagem Hierárquica

Esta seção e as seguintes são baseadas em um banco de dados contendo as entidades: Filial, Departamento e Funcionário.Na abordagem hierárquica, como o próprio nome já diz, os dados são organizados de acordo com níveis hierárquicos preestabelecidos;Os primeiros bancos de dados estão baseados nesta abordagem. Segundo Date, “um banco de dados hierárquico, compõe-se de um conjunto ordenado de árvores – mais precisamente, de um conjunto ordenado de ocorrências múltiplas de um tipo único de árvore”.

Page 16: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

A Abordagem Hierárquica

Na abordagem hierárquica, podemos ver o banco de dados como um único arquivo organizado em níveis. O nível superior que contém a filial é chamado de raiz.

Qualquer acesso ao banco de dados deve ser feito a partir dele;

Em geral, a raiz pode ter qualquer quantidade de dependentes, e estes, qualquer quantidade de dependentes de nível mais baixo

Page 17: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

001 - Curitiba

001- Comercial 002- Administrativo

001- João 002- Antonio

Page 18: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

A Abordagem em Rede

No modelo em rede as informações são representadas por uma coleção de registros e o relacionamento entre elas é formado através de ligações (link);Extensão do modelo hierárquico;É uma relação membro-proprietário, na qual um membro pode ter muitos proprietários.Em um bd estruturado como um modelo em rede há freqüentemente mais de um caminho para acessar um determinado elemento de dado.A principal diferença entre a abordagem hierárquica e a em rede é que um registro-filho tem exatamente um pai na abordagem hierárquica, enquanto na estrutura de rede um registro-filho pode ter qualquer número de pais.

Page 19: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

001- Londrina

002- Curitiba 002 - Administrativo

003- Industrial

001- Comercial 001 - João

002- Antonio

003- Pedro

004- Maria

Page 20: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

A Abordagem Relacional

Um banco de dados relacional consiste em uma coleção de tabelas, cada uma designada por um nome único. Tabelas – Uma tabela é uma representação bi-dimensional de

dados composta de linhas e colunas;– Uma tabela de alunos de uma escola é apresentada

a seguir.

Page 21: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

AlunoNum-Matricula Nome-Aluno Sexo-Aluno1 Maria F2 João M3 Pedro M4 Carla F5 Sandra F

Regras:1) Nomes de tabelas devem ser únicos no banco de

dados;2) De preferência a nomes curtos.

Page 22: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Atributos ou Colunas

Considerando a tabela Aluno;Ela tem três colunas Num_Matrícula, Nome_Aluno e Sexo_Aluno;A cada uma destas colunas damos o nome de atributo;Um nome de atributo deve ser único em uma tabela e dizer exatamente o tipo de informação que ele representa.

Page 23: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Atributos ou Colunas

Regras:1) Uma coluna (atributo) não segue um ordenamento

especifico;2) Nome de uma coluna deve expressar exatamente o

que armazena;3) Sempre que possível utilizar prefixos padronizados,

Cod-Dept, Nome-Funcionário, Qtde-Estoque

Page 24: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Linhas, Registros ou Tuplas

A tabela Aluno possui cinco registros;Cada registro representa um relacionamento entre um conjunto de valores;A este relacionamento damos o nome de registro, linha ou ainda Tupla;Cada linha da tabela é única e possui um atributo identificador (Num_Matrícula);Este atributo identificador é chamado de chave primária.

Regras:1) Em uma tabela não devem existir linhas duplicadas;2) As linhas de uma tabela não seguem uma ordem especifica.

Page 25: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Domínio

A tabela Aluno possui três atributos;Para cada atributo existe um conjunto de valores permitidos chamado domínio daquele atributo;Para o atributo Num_Matrícula o domínio é o conjunto de números naturais;Para o atributo Nome_Aluno o domínio é qualquer nome válido;Enquanto que para Sexo_Aluno o domínio são os mnemônicos M ou F.

Page 26: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Chave Primaria

Uma chave primária ou chave candidata é uma coluna ou um grupo de colunas que assegura a unicidade das linhas dentro de uma tabela;Uma chave primária que tenha mais de uma coluna é chamada de chave primária composta;Chaves primárias são geralmente indicadas pela sigla PK (primary key) imediatamente abaixo do cabeçalho da coluna apropriada. Veja os exemplos:

Page 27: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Cod-Empregado

Nome-Empregado Tel-Empregado

PKCod-Empregado é uma chave simples ou compacta

Cod-Empregado Cod-Dept SalarioPK PK

A combinação das colunas Cod-Empregado e Cod-Dept formam uma chave primaria composta.

Empregado

Salário

Page 28: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Regras

Valores de chave primária não podem ser nulos (NN – Not Null):– Um valor nulo é uma lacuna em uma coluna de uma tabela.– Valores de chaves primarias não podem ser nulos porque uma linha sem

chave primaria não se distingue de outras linhas da mesma tabela;

Colunas com chaves primarias não podem ter valores duplicados (ND – No Duplicate):– Um valor duplicado é um valor exatamente igual a outro de uma ou mais

linhas da mesma coluna na mesma tabela;– Se a coluna possui valores duplicados esta não pode servir de

identificador da linha;

Page 29: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Regras

Chaves primarias não podem ser alteradas (NC – No Change):– O conteúdo de uma chave primaria não pode sofrer

alterações.

Page 30: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Recomendações

Selecione chaves primarias absolutamente disciplinadas e que permaneçam únicas;Selecione chaves primarias que não tenham qualquer tendência a alterações;Se possível seleciona chaves primarias simples;De preferência a colunas numéricas para chaves primarias;Selecione chaves primarias que sejam familiares;Se não houver nenhuma coluna com chave primaria candidata, utilize chaves primarias atribuídas pelo sistema.

Page 31: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Chave Estrangeira

Uma chave estrangeira é uma coluna ou grupo de colunas que pode ou não ser chave primária da tabela em questão, mas, com certeza é chave primária de outra tabela; Uma chave estrangeira formada por mais de uma coluna é chamada de chave estrangeira composta. Chaves estrangeiras são indicadas pela sigla FK (Foreign Key) abaixo do cabeçalho da coluna apropriada.

Page 32: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Cod-Dept Nome-DeptPK

Cod-Empregado Nome-Empregado

Cod-dept

PK FK

Departamento

Empregado

Page 33: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

ClienteCod-Cliente Nome-ClientePK

Cod-Produto Nome-Produto Qtde-EstoquePK

Produto

Cod-Cliente Cod-Produto Qtde-PedidaPK+ PK+FK FK

Venda

Page 34: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Restrições de Integridade

Page 35: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Restrições de Integridade

Um dos principais objetivos de um SGBD é a integridade dos dados.Um banco de dados íntrego é um banco que reflete corretamente a realidade representada pelo banco de dados.Para garantir a integridade de um banco de dados os SGBD oferecem o mecanismo de restrição de integridade.

Page 36: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Restrições de Integridade

Uma regra que deve ser obedecida em todos estados válidos da base de

dados (pode envolver uma ou mais linhas de uma ou mais tabelas).

Page 37: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Restrições de Integridade

Na abordagem relacional, costuma-se classificar as restrições em quatro categorias:– Integridade de domínio:

• Especificam qual valor um atributo pode admitir;• Ex.:

– numero inteiro, valores alfanuméricos, data....– O atributo nome_cliente e nome_empregado podem ter o

mesmo domínio: o conjunto de todos os nomes de pessoas, campo alfanumérico tamanho 40.

Page 38: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Restrições de Integridade

– Integridade de vazio:• Especificam se os atributos podem ou não serem vazios,

isto é, se podem conter valores nulos.– Integridade de Chave:

• Valores da chave primaria (PK) devem ser únicos.– Integridade Referencial:

• Os valores que aparecem nos atributos em uma chave estrangeira devem aparecer na chave primaria da tabela referenciada.

Page 39: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Restrições de Integridade

Todas essas restrições são garantidas automaticamente pelo SGBD.As restrições que não se encaixam em nenhuma das categorias acima são chamadas de restrições semânticas, isto é, restrições criadas pelo programador.Ex.: – Um empregado do departamento “Finanças” não pode ter a

categoria funcional “Engenheiro”...– Um empregado não pode ter salário maior que seu superior

imediato.

Page 40: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Entidades e Conjuntos de Entidades

É uma classe generalizada de pessoas, lugares ou coisas (objetos) para as quais os dados são coletados,

armazenados e mantidos.Uma entidade é uma “coisa” no mundo real que pode ser identificada de forma única em relação a todas as

outras “coisas”. Sendo que uma entidade (objeto) é diferente de outras

entidades (objetos). Ex (empregados, estoques, clientes).

Page 41: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Entidades

Entidades podem ser concreta, como uma pessoa ou um livro, ou abstrata, como uma transação bancária, ou como um empréstimo de um livro. Ex.: um aluno de uma escola com um número de matrícula é uma entidade. Uma conta bancária também é um exemplo de entidade.

Page 42: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Entidades

Pessoa

Em um diagrama de E-R uma entidade é representada por um retângulo.

Representa um conjunto de entidade Pessoa

Conta Bancaria Representa um conjunto de entidade Conta Bancaria

Page 43: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Entidades Fortes ou regulares

São entidades que tem existência própria. Ex.:– Cliente– Produto– Fornecedor– Empregado....

Page 44: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Entidades Fracas

É uma entidade dependente da existência de alguma outra entidade, no sentido de que ela não pode existir se essa outra entidade também não existir.Ex.: os dependentes de um empregado podem ser considerados como entidades fracas, isto é, eles não podem existir se o empregado não existir;Se um empregado for eliminado, todos os dependentes desse empregado também devem ser eliminados;

Page 45: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Conjunto de Entidades

Conjuntos de entidades são agrupamentos de entidades de um mesmo tipo, como por exemplo todas as contas bancárias de uma determinada agência, ou todos os clientes que fazem parte dessa agência. As entidades individuais que constituem um conjunto são chamadas extensões do conjunto de entidades.Assim, todos os clientes do banco são as extensões do conjunto de entidades Clientes;Um conjunto de entidades não são necessariamente separados, por exemplo, é possível definir um conjunto de entidades com todos os empregados do banco (Empregado) e um conjunto de entidades com todos os clientes do banco (Clientes).Pode ser construído uma entidade Pessoa que pertença ao conjunto de entidades Empregado ou Clientes, ou a ambos, ou ainda a nenhum.

Page 46: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Regras

Entidades têm existência própria e não são subordinadas a qualquer outra coisa;

Entidades podem ser concretas ou abstratas;

Informações sobre entidades, tais como o nome de uma pessoa, não são consideradas entidades, mas sim, atributos de entidades.

Page 47: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Entidade

Uma entidade é representada por um conjunto de atributos. Um atributo pode ser caracterizado pelos seguintes tipos:– Atributos simples ou compostos. Atributos simples

não são divididos em partes, já atributos compostos são divididos em partes.

– Ex.: endereço_cliente pode ser estruturado em rua,cidade,estado e CEP.

Page 48: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Cliente (entidade)

endereço_cliente

rua cidade estado CEP

Numero_rua nome_rua numero_apt

Atributos compostos

Atributos component

es

Page 49: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Atributos

– Atributos multivalorados. Considere a entidade Empregado com o atributo numero_dependente, qualquer empregado em particular pode ter um, ou mais, ou nenhum dependente; entretanto diferentes empregados terão diferentes numero de valores para o atributo numero_dependente.

• Ex.: um banco pode ter um numero limite de registros de endereços para um cliente normal, um ou dois endereços.

Page 50: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Atributos

– Atributos nulos. É usado quando uma entidade não possui valor para um determinado atributo.

• Ex.: se um empregado não possui dependentes, o valor do atributo nome_dependente para esse dependente será nulo, ou que o valor do atributo é desconhecido.

– Atributo derivado. O valor de um atributo pode ser derivado do valor de outros atributos.

• Ex. o valor do atributo tempo_de_casa pode ser derivado do valor do atributo data_contratação e da data_corrente.

Page 51: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Exemplo

Encontre as entidades, desenhe as tabelas com as chaves primárias e inclua alguns atributos:– “Todo o ano os ex-alunos se reúnem para o jantar, o

nosso problema é manter atualizado um cadastro com a matrícula e os dados pessoais destes alunos”.

– “Precisamos manter um cadastro dos nossos clientes com nome, cpf, identidade, endereço e renda mensal dos mesmos”.

Page 52: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Exercícios

“Nós temos vendedores no campo, tentando vender nossos produtos a pessoas de sua região. O problema é que algumas de nossas novas contas são realmente empresas especializadas e alguns dos nossos vendedores não estão qualificados para atendê-las. Assim, nós precisamos de algum modo classificar os clientes e saber quais empregados estão treinados nestas especialidades, assim nós podemos mandar ao cliente alguém que realmente entenda as necessidades do cliente.”

Page 53: Independência dos Dados Em um sistema tradicional a maneira como os dados são organizados, as regras de integridade dos dados e a forma de acesso estão

Exercícios

“Após o cadastramento do acervo de fitas da locadora, com os devidos fornecedores, abrimos as portas para novos clientes. Com seis meses de funcionamento, descobrimos que existia um movimento de empréstimos muito grande para os filmes em DVD, portanto, precisamos alterar nossa estratégia de compras”.