Projeto de Bancos de Dados
Relacional- Normalização
Vantagens da decomposição – Normalização
Decomposição sem Perdas;
Teorema de HEATH;
Eliminar Dados Duplicados;
Chaves (Candidata, Primária e Estrangeira);
Campos com valores NULOS (Inform. Incompleta);
Normalização 1FN-3FN
Prof. Anderson Henriques
2
Vantagens da decomposição –
Normalização
n
Para que serve a teoria da Normalização
relacional?
– Determinar se um conjunto de projeções de uma relação é uma decomposição sem perda;
– Regras para escolher a melhor, quando existe mais de uma decomposição sem perdas;
– Simplificar a representação de uma relação eliminando:
p Dados duplicados;
p Resolver problemas com informação incompleta (campos
3
Vantagens da decomposição –
Normalização (CONT.)
n
Porque eliminar dados duplicados?
– Economia de espaço;– Economia de tempo na atualização;
– Eliminar a possibilidade de inconsistências;
– Reduz a complexidade dos programas de manipulação do dado (ler-consultar, criar-incluir, atualizar e
remover).
Vantagens da decomposição –
Normalização (CONT.)
n
Ferramentas para o processo de Normalização
– Funções (dependências funcionais);– Funções multivaloradas;
– Funções não-triviais (axiomas sobre funções); – Decomposição sem perdas de informação; – Teorema de Heath;
– Decomposição útil – que elimina dados duplicados; – Campo comum de duas projeções;
5
Vantagens da decomposição –
Normalização (CONT.)
n
Ferramentas para o proc. de Normalização(Cont.)
– 4FN-5FN forma normais;– Regras para escolha da melhor decomposição (1FN-3FN+BCNF, 4FN-5FN);
– Modelo de dados Relacional.
6 Identificar chave primária
e dependências funcionais início Está na 1FN Está na 2FN Decomposição por HEATH Identificar campos multivalorados Decompor Decomposição por HEATH Normalização 4FN-5FN início não não não sim sim sim Normalização 1FN-3FN Está na 3FN
7 Identificar chaves candidatas
e dependências funcionais início Está na 4FN-5FN Identificar campos multivalorados Decomposição por HEATH
fim sim não
Decomposição para remoção de campos multivalorados
Normalização
Não 1ra Forma Normal (N1FN)
Decomposição sem Perdas
n
Exemplo1:
ZOO+ANIMAL ANIMAL+NATURALDE =
ZOO+ANIMAL+NATURALDE Zôo Animal Naturalde
Bosque Bosque Museu Museu Ema Camelo Canguru Camelo Áustria Arábia Áustria Arábia Zôo Animal Bosque Bosque Museu Museu Ema Camelo Canguru Camelo Animal Naturalde Ema Camelo Canguru Áustria Arábia Áustria
9
Decomposição sem Perdas
n
Exemplo2:
Zôo Animal Naturalde Bosque Bosque Museu Museu Ema Camelo Canguru Camelo Áustria Arábia Áustria Arábia Animal Naturalde Ema Camelo Canguru Áustria Arábia Áustria Zôo Naturalde Bosque Bosque Museu Museu Áustria Arábia Áustria Arábia 10Decomposição sem Perdas
n
Exemplo2 (Cont.):
ZOO+NATURALDE ANIMAL+NATURALDE = (tabela abaixo) Zôo Animal Naturalde
Bosque Bosque Museu Museu Museu Bosque Ema Camelo Canguru Camelo Ema Canguru Áustria Arábia Áustria Arábia Áustria Áustria
(Z+N A+N) minus {<museu, ema, austria>= Z+A+N<bosque, canguru, austria>} ou também
Z+A+N union {<museu, ema, austria>=(Z+N A+N)<bosque, canguru, austria>}
11
Decomposição sem Perdas
n
Exemplo2 (Cont.):
Numa decomposição sem perdas, a junção do conjunto de projeções é igual a relação original.
Teorema de HEATH
Seja a relação R(A,B,C), onde A,B,C são conjuntos de campos. Se B→C então A+B B+C é uma decomposição sem perdas.
Ou, se C é funcionalmente dependente de B então A+B B+C é uma decomposição sem perdas.
13
Teorema de HEATH (CONT.)
n
Exemplo:
INGREDIENTE→CALS/GRAMA CALS/GRAMA+INGREDIENTE
INGREDIENTE+RECEITA+GRAMAS Receita Ingrediente Gramas
Bolo Bolo Bolo Caramelado Caramelado Caramelado leite açúcar manteiga açúcar manteiga corante 400 450 150 450 255 5 Cals/Grama 4.5 3.7 7.8 3.7 7.8 3.5 14
Eliminar Dados Duplicados
Venda Cliente Telefone nf056 nf057 nf060 nf061 nf062 nf064 Pedro Antunes Pedro Pedro Antunes Gabriel 33000 34555 33000 33000 34555 33111 Venda Cliente nf056 nf057 nf060 nf061 nf062 nf064 Pedro Antunes Pedro Pedro Antunes Gabriel Venda Telefone nf056 nf057 nf060 nf061 nf062 nf064 33000 34555 33000 33000 34555 33111 Cliente Telefone Pedro Antunes Gabriel 33000 34555 33111
15
Eliminar Dados Duplicados (CONT.)
VENDA+TELEFONE VENDA+CLIENTE VENDA+TELEFONE CLIENTE+TELEFONE VENDA+CLIENTE CLIENTE+TELEFONE = VENDA+CLIENTE+TELEFONE Venda Cliente nf056 nf057 nf060 nf061 nf062 nf064 Pedro Antunes Pedro Pedro Antunes Gabriel Venda Telefone nf056 nf057 nf060 nf061 nf062 nf064 33000 34555 33000 33000 34555 33111 Cliente Telefone Pedro Antunes Gabriel 33000 34555 33111
Eliminar Dados Duplicados (CONT.)
Uma decomposição elimina dados duplicados quando uma das projeções possui menos linhas que a tabela original.
17
CHAVE CANDIDATA
Venda Cliente nf056 nf057 nf060 nf061 nf062 nf064 Pedro Antunes Pedro Pedro Antunes Gabriel Cliente Telefone Pedro Antunes Gabriel 33000 34555 33111Uma chave Candidata é um conjunto mínimo de campos que identificam unicamente cada linha de uma tabela. Se um campo da chave candidata é removido ela deixa de ser chave candidata.
18
CHAVE CANDIDATA (CONT.)
ZOO+ANIMAL é a chave candidata.
ANIMAL+NATURALDE não pode ser chave candidata. Zôo Animal Naturalde
Bosque Bosque Museu Museu Ema Camelo Canguru Camelo Áustria Arábia Áustria Arábia Animal Naturalde Ema Camelo Canguru Áustria Arábia Áustria
19
CHAVE PRIMÁRIA E
CHAVE ESTRANGEIRA
VENDA+CLIENTE CLIENTE+TELEFONE = VENDA+CLIENTE+TELEFONE Venda Cliente nf056 nf057 nf060 nf061 nf062 nf064 Pedro Antunes Pedro Pedro Antunes GabrielChave Primária Chave Estrangeira
Cliente Telefone Pedro Antunes Gabriel 33000 34555 33111 Chave Primária
CHAVE PRIMÁRIA E
CHAVE ESTRANGEIRA (CONT.)
VENDA+CLIENTE+TELEFONE=
(VENDA+CLIENTE CLIENTE+TELEFONE ) Venda Cliente Telefone
nf056 nf057 nf060 nf061 nf062 nf064 Pedro Antunes Pedro Pedro Antunes Gabriel 33000 34555 33000 33000 34555 33111
– Chave Secundária: chave candidata não primária. – Normalização: Eliminar dados duplicados ou
21
CHAVE PRIMÁRIA E
CHAVE ESTRANGEIRA (CONT.)
A chave primária da tabela é uma das chaves candidatas. Numa decomposição sem perdas o campo comum é
chave primária em pelo menos uma das projeções.
Em uma decomposição sem perdas o campo comum é
chave estrangeira quando não chave primária.
22
Campos com valores NULOS
(Informação Incompleta)
n
Em VENDA+CLIENTE+TELEFONE o campo
VENDA é a chave primária. Portanto, não
podemos registrar o telefone número 36000 para
Mário.
Venda Cliente Telefonenf056 nf060 nf061 nf062 ---nf063 Pedro Pedro Pedro Antunes Mário Gabriel 33000 33000 33000 34555 36000 33111 Cliente Telefone Pedro Antunes Gabriel Mário 33000 34555 33111 36000
23
Campos com valores NULOS
(Informação Incompleta) (CONT.)
? VENDA+CLIENTE VENDA+TELEFONE Venda Cliente nf056 nf057 nf060 nf061 ---nf063 Pedro Antunes Pedro Pedro Mário Gabriel Venda Telefone nf056 nf057 nf060 ---nf063 33000 34555 33000 36000 33111
Campos com valores NULOS
(Informação Incompleta) (CONT.)
Uma decomposição elimina dados duplicados quando uma das projeções possui menos linhas que a tabela original.
Uma decomposição (sem perdas) é útil se e somente se elimina dados duplicados.
Uma decomposição (sem perdas) é útil se e somente se o campo comum não é chave candidata em uma das
projeções.
Uma tabela está em 5FN se e somente se não existem decomposição úteis.
25
Normalização 1FN-3FN
Primeira Forma Normal (1FN)
Uma relação está na 1FN se e somente se nenhuma tupla possui dois valores num mesmo campo.
Professor Disciplina Telefone PedroI PauloII Paula {direito,economia} religião {estrutura,contabilidade} 22-23-24 22-33-39 22-32-70 Professor Disciplina Telefone
PedroI PedroI PauloII Paula Paula direito economia religião estrutura contabilidade 22-23-24 22-23-24 22-33-39 22-32-70 22-32-70 26
Normalização 1FN -3FN
nDependência Funcional:
Ingrediente açúcar amido manteiga margarina Cals/Grama 3.7 5.0 7.8 7.8– O açúcar sempre tem 3.7 cals/grama. Dois INGREDIENTES podem ter as mesmas calorias. Não poderia o açúcar ter dois valores? “açúcar mascavo” e “açúcar diet”.
27
Normalização 1FN -3FN
n
Dependência Funcional (Cont.):
INGREDIENTE não é funcionalmente dependente de CALS/GRAMA CALS/GRAMA é funcionalmente dependente de INGREDIENTE ou
INGREDIENTE → CALS/GRAMA
CALS/GRAMA → INGREDIENTE (não existe a função)
Um campo B é funcionalmente dependente de um campo A se e somente se:
i) Se não existem 2 valores iguais em B para um mesmo valor A;
ii) Ou, quando muda o valor A e muda também o valor B; iii)Ou, se o campo A define o valor do campo B;
iv)Ou, se existe a função A→B.
Normalização 1FN -3FN
n
Dependência Funcional (Cont.):
nf056 nf056 nf057 nf057 nf057 lápis caneta lápis caneta cola 50 150 50 150 90 2 3 1 3 1 100 450 50 450 90 Venda Produto Preço Unidades SubTotal
Dep. verdadeira
29
Normalização 1FN -3FN
n
Dependência Funcional (Cont.):
SUBTOTAL é dependente de
PREÇO+PRODUTO+UNIDADES. SUBTOTAL é dependente de PREÇO+UNIDADES. SUBTOTAL é dependente de PRODUTO+UNIDADES. PREÇO é dependente de PRODUTO.
Nos dados “lápis+50+2” pode-se calcular subtotal 100. Logo, 100 depende de “lápis+50+2”
(PRODUTO+PREÇO+UNIDADES).
30
Normalização 1FN -3FN
n
Dependência Funcional (Cont.):
*Uma soma B é dita completamente dependente de uma soma A se e somente se:
i) B é funcionalmente dependente de A;
ii)B não é funcionalmente dependente de um subconjunto de campos da soma A;
iii)Ou, se tirarmos um campo de A, B não mais depende de A;
iv) Ou, X+Y→Z se e somente se X+Y→Z e Y→Z. Onde o operador → indica completamente dependente e, o
31
Normalização 1FN -3FN
n
Dependência Funcional (Cont.):
nf056 nf056 nf057 nf057 nf057 lápis caneta lápis caneta cola 50 150 50 150 90 2 3 1 3 1 100 450 50 450 90 Venda Produto Preço Unidades SubTotal
SUBTOTAL é dependente de
PREÇO+PRODUTO+UNIDADES. SUBTOTAL é dependente de PREÇO+UNIDADES. SUBTOTAL é dependente de PRODUTO+UNIDADES.
Normalização 1FN -3FN
n
Dependência Funcional (Cont.):
SUBTOTAL não é completamente dependente de PREÇO+PRODUTO+UNIDADES. SUBTOTAL é dependente de PREÇO+UNIDADES. SUBTOTAL não é dependente de PREÇO.
SUBTOTAL não é dependente de UNIDADES. SUBTOTAL é completamente dependente de
33
Normalização 1FN -3FN
Segunda Forma Normal (2FN)
Uma relação em 1FN também está em 2FN se e
somente se todos os atributos não parte da chave
primária são completamente dependentes da chave primária.
Professor Disciplina Telefone PedroI PedroI PauloII Paula Paula direito economia religião estrutura contabilidade 22-23-24 22-23-24 22-33-39 22-32-70 22-32-70 34
Normalização 1FN -3FN
n Assumimos a chave primária
PROFESSOR+DISCIPLINA. n TELEFONE depende de PROFESSOR+DISCIPLINA. n TELEFONE depende de PROFESSOR.
n Logo o campo TELEFONE não é complemente dependente da chave primária – não está em 2FN.
n Por HEATH removemos PROFESSOR→TELEFONE resultando em: Professor Disciplina
PedroI PedroI PauloII Paula Paula direito economia religião estrutura contabilidade Professor Telefone PedroI PauloII Paula 22-23-24 22-33-39 22-32-70
35
Normalização 1FN -3FN
Terceira Forma Normal (3FN)
Uma relação em 2FN também está em 3FN se e
somente se todos os atributos não parte de chaves
candidatas são dependentes apenas de chaves candidatas.
– A chave primária é ÁRVORE.
– Todos são completamente dependentes da ÁRVORE existe uma dependência entre não chaves:
CAIFOLHA depende de ESPÉCIE. 1. 2. 3. 4. cupuaçu castanheira bacuri cupuaçu 21 9 23 20 sim não não sim Árvore Espécie Altura Caifolha
Normalização 1FN -3FN
n Eliminamos a informação duplicada: <cupuaçu sim>
1. 2. 3. 4. cupuaçu castanheira bacuri cupuaçu 21 9 23 20 Árvore Espécie Altura
Espécie Caifolha cupuaçu castanheira bacuri sim não não