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;
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.”
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).
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.
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.
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.
Nível de Visão
1
Nível de Visão
2
Nível Conceitual
Nível Físico
Nível de Visão
3
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.
Exemplo
NumDept
NomeDept
1
Financeiro
2
Recursos Humanos
3
Administrativo
CREATE TABLE Departamento,
NumDept INTEGER,
NomeDept CHAR(20);
Linguagem de Manipulação de Dados
Linguagem que permite aos usuários acessar ou manipular
dados organizados por um modelo de dados apropriado
A 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;
Funções do DBA
Pesquisar as principais funções de um DBA;
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
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”.
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
001 - Curitiba
001- Comercial
001- João
002- Administrativo
002- Antonio
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.
001- Londrina
001- Comercial
001 - João
002- Curitiba
002 - Administrativo
002- Antonio
003- Industrial
003- Pedro
004- Maria
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.
Aluno
Num-Matricula
Nome-Aluno
Sexo-Aluno
1
Maria
F
2
João
M
3
Pedro
M
4
Carla
F
5
Sandra
F
Regras:
1)
Nomes de tabelas devem ser únicos no banco de
dados;
2)
De preferência a nomes curtos.
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.
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, CodDept, Nome-Funcionário, Qtde-Estoque
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.
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.
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:
Empregado
Cod-Empregado Nome-Empregado
Tel-Empregado
PK
Cod-Empregado é uma chave simples ou compacta
Salário
Cod-Empregado
Cod-Dept
PK
PK
Salario
A combinação das colunas Cod-Empregado e Cod-Dept formam uma
chave primaria composta.
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;
Regras
Chaves primarias não podem ser alteradas (NC
– No Change):
– O conteúdo de uma chave primaria não pode sofrer
alterações.
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.
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.
Departamento
Cod-Dept
Nome-Dept
PK
Empregado
Cod-Empregado
PK
Nome-Empregado
Cod-dept
FK
Cliente
Cod-Cliente
Nome-Cliente
PK
Produto
Cod-Produto
Nome-Produto
Qtde-Estoque
PK
Venda
Cod-Cliente
Cod-Produto
PK+
PK+
FK
FK
Qtde-Pedida
Restrições de Integridade
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.
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).
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.
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.
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.
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).
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.
Entidades
Em um diagrama de E-R uma entidade é representada por um
retângulo.
Pessoa
Conta Bancaria
Representa um conjunto de entidade Pessoa
Representa um conjunto de entidade Conta Bancaria
Entidades Fortes ou regulares
São entidades que tem existência própria.
Ex.:
–
–
–
–
Cliente
Produto
Fornecedor
Empregado....
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;
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.
Regras
Entidades têm existência própria
subordinadas a qualquer outra coisa;
e
não
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.
sã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.
Cliente (entidade)
Atributos
compostos
endereço_cliente
rua cidade
estado CEP
Numero_rua nome_rua numero_apt
Atributos
componentes
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.
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.
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”.
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.”
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”.
Download

Restrições de Integridade