Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Bancos de Dados Relacionais
Curso de Modelagem de DadosCurso de Modelagem de Dados Bancos de Dados Relacionais Projeto de Bancos de Dados Relacionais Bancos de Dados I DCC/UFRJZilli Informática
2
Projeto de BD Relacionais
Técnicas de projeto Teoria baseada nas dependências funcionais, buscando-se algoritmos automatizados para verificar a adequação de esquemas relacionais. Muitos resultados importantes publicados nas décadas de 70 e 80. Bancos de Dados I
3
Normalização Problema: Dada uma lista de itens de dados a representar no computador, como decidir quais as relações que vão existir e quais os seus atributos Conceitos envolvidos: Dependências funcionais Formas normais Relação universal Normalização ajuda, mas não resolve! Bancos de Dados I
4
Dependências funcionais
Definição: Dada uma relação R, o atributo Y de R é funcionalmente dependente de um atributo X de R se e somente se, sempre que duas tuplas de R têm o mesmo valor para X têm também o mesmo valor para Y. Para que serve isto? Normalização, entendimento do significado dos dados Bancos de Dados I
5
Atributos e suas dependências funcionais (1)
Considerando os atributos: CodVôo, CodEmp, NomeEmp, Telefone Data, H_Saída, H_Chegada, H_Saída_Real, H_Chegada_Real, CodAvião, Tipo, Capacidade Origem, Destino, Distância Bancos de Dados I
6
Atributos e suas dependências funcionais (2)
Data H_Saída_Real H_Chegada_Real Origem Destino H_Saída H_Chegada CodVôo Distância CodAvião CodEmp Capacidade Telefone NomeEmp Bancos de Dados I
7
Tratando dependências funcionais
Axiomas de Armstrong A1. Reflexividade: Se Y X U então X → Y Dá as dependências triviais, que não dependem de F. A2. Aumento: Se X → Y e Z U então XZ → YZ X, Y e Z são conjuntos de atributos e X → Y pode estar em F ou ter sido derivada pelos axiomas. A3. Transitividade: Se X →Y e Y →Z então X →Z Bancos de Dados I
8
Tratando dependências funcionais
Axiomas de Armstrong (inferidos) A4. União: Se X → Y e X → Z então X → YZ Dá as dependências triviais, que não dependem de F. A5. Pseudotransitividade: Se X → Y e WY → Z então XW → Z A6. Decomposição: Se X → Y e Z Y então X → Z Uma consequência importante da decomposição: Se A1,...,An são atributos então X → A1,...,An verifica-se se e somente se X → Ai para cada i Bancos de Dados I
9
Proposições Os axiomas de Armstrong são robustos e completos (sound and complete). Bancos de Dados I
10
Formas normais Verificam as relações escolhidas
Evitam problemas de atualização ineficientes Há 4 formas normais usualmente empregadas Bancos de Dados I
11
Exemplo de projeto pobre
Bancos de Dados I
12
Anomalias Redundância O nome da empresa aparece mais de uma vez
Inconsistência O nome da empresa poderia aparecer com valores diferentes para o mesmo código de empresa Inserção Não é possível inserir uma empresa sem que haja vôos Remoção Remover todos os vôos significa remover a empresa Bancos de Dados I
13
Exemplo de relação transgressora
Primeira forma normal Todos os atributos têm valores atômicos Exemplo de relação transgressora Problema: vários telefones na mesma coluna Solução: desmembrar em mais de uma relação Bancos de Dados I
14
Primeira forma normal Desmembramento Bancos de Dados I
15
Exemplo de relação transgressora
Segunda forma normal Todo atributo não chave é totalmente dependente da chave primária Exemplo de relação transgressora Problema: CodAvião é não chave e não depende da chave primária Solução: desmembrar em mais de uma relação Bancos de Dados I
16
Solução: CodAvião deve ser movido para outra tabela
Segunda forma normal Desmembramento Solução: CodAvião deve ser movido para outra tabela Bancos de Dados I
17
Problema: NomeEmp é transitivamente dependente de CodVôo
Terceira forma normal Todo atributo não chave é não transitivamente dependente da chave primária Exemplo de relação transgressora Problema: NomeEmp é transitivamente dependente de CodVôo Bancos de Dados I
18
Terceira forma normal Desmembramento Bancos de Dados I
19
Forma normal Boyce-Codd
Todo determinante é uma chave Exemplo de relação transgressora Problema: CodVôo, Origem e Destino é um determinante para H_Saída Solução: desmembrar em mais de uma relação (ou, em alguns casos, introduzir uma chave) Bancos de Dados I
20
Chaves Se R é um esquema relacional com atributos A1,...,An e dependências funcionais F e X é um subconjunto de A1,...,An, diz-se que X é uma chave de R se: 1. X A1,...,An está em F 2. não existe um subconjunto YX tal que Y A1,...,An esteja em F Bancos de Dados I
21
Exemplo Esquema R(Cidade, Rua, Número, CEP) Dependências
CEP Cidade As combinações de atributos abaixo podem ser definidas como chaves? {Cidade, Rua, Número} {CEP, Rua, Número} Bancos de Dados I
22
Aplicando axiomas {Cidade, Rua, Número} logo são chaves.
CEP Cidade (dado) CEP Rua Número Cidade Rua Número (aumento) Cidade Rua Número CEP (dado) Cidade Rua Número CEP Cidade Rua Número (aumento) CEP Rua Número CEP Cidade Rua Número (transitividade) logo {Cidade, Rua, Número} {CEP, Rua, Número} são chaves. Bancos de Dados I
23
Formas normais Uma relação R está na terceira forma normal se não existe uma chave X em R, um conjunto de atributos YR e um atributo não chave A, disjunto de X e Y, tal que: 1. X Y verifica-se em R; 2. Y A verifica-se em R; 3. Y X não se verifica em R. Se R satisfaz as condições acima sempre que YX então diz-se que R está na segunda forma normal. Bancos de Dados I
24
Formas normais Um relação é dita na Forma normal Boyce-Codd se sempre que X A se verifica em R, e A não está em X, então X inclui uma chave de R. Proposição: Se uma relação R está nesta forma normal então está também na terceira forma normal. Bancos de Dados I
25
Formas normais e decomposição
Qualquer relação tem uma decomposição sem perda na FNBC. Qualquer relação tem uma decomposição sem perda na 3FN que preserva as dependências funcionais. Bancos de Dados I
26
Dependências multivaloradas
X multidetermina Y, ou X Y, se para valores dos atributos X há um conjunto de zero, um ou mais valores associados dos atributos Y, e esse conjunto de valores não está associado aos valores dos atributos R - X - Y. Bancos de Dados I
27
Dependências multivaloradas
Diz-se que X Y verifica-se em R se sempre que existirem t1 e t2 na instância de R, com t1[X]=t2[X], então existem também as u1 e u2, onde 1. u1[X] = u2[X] = t1[X] = t2[X] 2. u1[Y] = t1[Y] e u1[R - X - Y] = t2[R - X - Y] 3. u2[Y] = t2[Y] e u2[R - X - Y] = t1[R - X - Y] Bancos de Dados I
28
Dependências multivaloradas
Exemplo Bancos de Dados I
29
Dependências multivaloradas
Testando CodVôo Origem, Destino, H_Saída Bancos de Dados I
30
Quarta forma normal Uma relação R está na Quarta forma normal se sempre que houver uma dependência multivalorada X →→ Y, onde Y não é vazio nem subconjunto de X, e XY não inclui todos os atributos de R, então X inclui alguma chave de R. Bancos de Dados I
31
Axiomas para D.F. e D.M. A1. Reflexividade: Se Y X U então X → Y
A2. Aumento: Se X → Y e Z U então XZ → YZ A3. Transitividade: Se X →Y e Y →Z então X →Z A4. Complemento: Se X →→ Y então X →→ U - X - Y A5. Aumento: Se X →→ Y e V W então WX →→ VY A6. Transitividade: Se X →→ Y e Y →→ Z então X →→ Z - Y A Se X → Y então X →→ Y A Se X →→ Y , Z Y e para algum W disjunto de Y tem-se que W→ Z, então X→ Z Bancos de Dados I
32
Curso de Modelagem de DadosCurso de Modelagem de Dados
Proposições sobre 4FN Se D inclui apenas dependências funcionais então sempre que R estiver na 4FN estará na FNBC. É possível encontrar uma decomposição sem perda tal que cada relação produzida esteja na 4FN. O algoritmo que determina quando uma decomposição é ou não sem perda pode ser adaptado para dependências multivaloradas. Bancos de Dados I DCC/UFRJZilli Informática
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.