normalização - wiki.icmc.usp.br
TRANSCRIPT
![Page 1: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/1.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Normalização
![Page 2: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/2.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Dependência Funcional
Um atributo B de um esquema de relação R é funcionalmente dependente de um outro atributo A de R se um valor para A determina um único valor para B em qualquer momento.
Se B é funcionalmente dependente de A, então A determina funcionalmente B.
Notação: A B
![Page 3: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/3.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Dependência Funcional
relaçãoR (atributoA, atributoB, atributoC) atributo A atributo B
1 valor de A (não existe outro)
somente um único valor do atributo B
lado à esquerda lado à direita
![Page 4: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/4.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo
nro_cliente nome endereço
cliente (nro_cliente, nome, endereço} nro_cliente {nome, endereço}
nro_pedido nro_peça qtidade_comprada preço_cotado
pp (nro_pedido, nro_peça, qtidade_comprada, preço_cotado} {nro_pedido, nro_peça} {qtidade_comprada, preço_cotado}
![Page 5: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/5.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Dependência Multivalorada Um atributo B de um esquema de relação R
é multidependente de um outro atributo A de R se um valor para A é associado a uma coleção específica de valores para B, independentemente de qualquer valor que um terceiro atributo C de R possa assumir
Se B é multidependente de A, então A multidetermina B
Notação: A B
![Page 6: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/6.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Dependência Multivalorada
relaçãoR (atributoA, {atributoB}, {atributoC})
atributo A atributo B
1 valor de A (não existe outro)
vários valores para o atributo B
independentemente dos valores do atributo C
![Page 7: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/7.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo
vendedor ( nro_vend, { cliente (nro_cli, nome_cli) }, { filho (nome_filho_vend, parentesco) })
nro_vend cliente (nro_cli, nome_cli) nro_vend filho (nome_filho_vend, parentesco)
![Page 8: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/8.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Normalização
Processo de normalização: – inicia com um esquema de relação ou coleção de
esquemas de relação – produz uma nova coleção de esquemas de
relação equivalente à coleção original
(representa a mesma informação) livre de problemas
![Page 9: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/9.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Normalização por Decomposição Propriedades
– junção sem perda ou junção não aditiva garante que o problema de tuplas ilegítimas não
ocorra nos esquemas de relação criados após a decomposição
– preservação da dependência garante que cada dependência funcional será
representada em algum esquema de relação individual resultante da decomposição
![Page 10: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/10.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Primeira Forma Normal (1FN)
Uma relação R está na 1FN se: – todo valor em R for atômico ou seja, R não contém nenhum grupo de
repetição/dependência multivalorada Considerações:
– geralmente considerada parte da definição formal de uma relação
– não permite atributos multivalorados, compostos ou suas combinações
– um único grupo de repetição
![Page 11: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/11.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Método para Corrigir o Problema
Passos – gerar uma nova relação contendo o grupo de
repetição e a chave primária da relação original – determinar a chave primária da nova relação, a
qual será a concatenação do atributo chave primária da relação original com o atributo chave para o grupo de repetição
![Page 12: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/12.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo emp_proj (nro_emp, nome_emp, { projeto ( nro_proj, nome_proj ) })
Dependências funcionais – nro_emp nome_emp
Dependências multivaloradas – nro_emp projeto (nro_proj, nome_proj)
Solução – emp (nro_emp, nome_emp)
– emp_proj (nro_emp, nro_proj, nome_proj)
![Page 13: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/13.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Segunda Forma Normal (2FN)
Uma relação R está na 2FN se: – está na 1FN – não existe atributo não chave que é dependente
de somente uma parte da chave primária dependência funcional total
![Page 14: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/14.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Segunda Forma Normal (2FN) Método para corrigir o problema:
– para cada sub-conjunto do conjunto de atributos que constitui a chave primária, começar uma relação com esse sub-conjunto como sua chave primária
– incluir os atributos da relação original na relação correspondente à chave primária apropriada, isto é, colocar cada atributo junto com a coleção mínima da qual ele depende, atribuindo um nome a cada relação
![Page 15: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/15.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo emp_proj (nro_emp, nro_proj, nome_proj)
Dependências funcionais – nro_emp – nro_proj nome_proj – {nro_emp, nro_proj}
Solução – emp (nro_emp, ...) relação já existente – proj (nro_proj, nome_proj)
– emp_proj (nro_emp, nro_proj)
![Page 16: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/16.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Terceira Forma Normal (3FN)
Uma relação R está na 3FN se: – está na 2FN – não existem atributos não chave que sejam
dependentes de outros atributos não chave (determinante não chave) dependência transitiva
![Page 17: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/17.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Terceira Forma Normal (3FN) Método para corrigir o problema:
– para cada determinante que não é uma chave candidata, remover da relação os atributos que dependem desse determinante
– criar uma nova relação contendo todos os atributos da relação original que dependem desse determinante
– tornar o determinante a chave primária da nova relação
![Page 18: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/18.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo cliente (nro_cliente, nome_cliente, nro_vendedor, nome_vendedor)
Dependências funcionais – nro_cliente {nome_cliente, nro_vendedor,
nome_vendedor} – nro_vendedor nome_vendedor
Solução – cli (nro_cliente, nome_cliente, nro_vendedor)
– vend (nro_vendedor, nome_vend)
![Page 19: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/19.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Quarta Forma Normal (4 FN)
Uma relação R está na 4FN se: – todo valor em R for atômico ou seja, R não contém nenhum grupo de
repetição/dependência multivalorada Considerações:
– geralmente considerada parte da definição formal de uma relação
– não permite atributos multivalorados, compostos ou suas combinações
– vários grupos de repetição
![Page 20: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/20.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Quarta Forma Normal (4FN) Método para corrigir o problema
– para cada grupo de repetição separado, gera-se uma nova relação correspondente contendo este grupo de repetição e a chave primária da relação original
– determinar a chave primária da nova relação, a qual será a concatenação da chave primária da relação original com a chave para o grupo de repetição
![Page 21: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/21.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo vendedor ( nro_vend, nome_vend { cliente (nro_cli,
nome_cli) }, filho (nome_filho, parentesco) })
Dependências funcionais nro_vend nome_vend
Dependências multivaloradas nro_vend cliente {nro_cli, nome_cli}
nro_vend filho {nome_filho, parentesco}
![Page 22: Normalização - wiki.icmc.usp.br](https://reader036.vdocuments.com.br/reader036/viewer/2022080219/62e8607effb83749280e0a5f/html5/thumbnails/22.jpg)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Normalização
Exemplo vendedor ( nro_vend, nome_vend { cliente (nro_cli,
nome_cli) }, filho (nome_filho, parentesco) })
Solução – vendedor (nro_vend, nome_vend)
– vendCli (nro_vend, nro_cli, nome_cli)
– vendFilho (nro_vend, nome_filho, parentesco)