Download - Aula 23 Normalização.ppt
![Page 1: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/1.jpg)
Banco de Dados Aula 23
Normalização
Alexandre Plastino - [email protected]
22/04/231BD - Aula 23 – Normalização
![Page 2: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/2.jpg)
Normalização
Processo que visa eliminar redundância de dados em arquivos ou tabelas.
Teoria da Normalização: conjunto de regras (formas normais) que determinam formas adequadas, sem redundâncias, de representação dos dados.
2
![Page 3: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/3.jpg)
3
esquema dearquivo oudocumento Representação
como tabelaÑN
esquema nãonormalizado
Passagema 1FN
esquema na 1FN
Passagema 2FN
esquema na 2FN
Passagema 3FN
Passagema FNBC
esquema na 3FN
Normalização
esquema na FNBC
![Page 4: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/4.jpg)
RELATÓRIO DE ALOCAÇÃO A PROJETO
CÓDIGO DO PROJETO: LSC001 TIPO: Novo Desenv.DESCRIÇÃO: Sistema de EstoqueCÓDIGO DOEMPREGADO
NOME CATEGORIAFUNCIONAL
SALÁRIO DATA DEINÍCIO NOPROJETO
TEMPOALOCADO AO
PROJETO
2146 João A1 4 1/11/91 243145 Sílvio A2 4 2/10/91 246126 José B1 9 3/10/92 181214 Carlos A2 4 4/10/92 188191 Mário A1 4 1/11/92 12
CÓDIGO DO PROJETO: PAG02 TIPO: ManutençãoDESCRIÇÃO: Sistema de RHCÓDIGO DOEMPREGADO
NOME CATEGORIAFUNCIONAL
SALÁRIO DATA DEINÍCIO NOPROJETO
TEMPOALOCADO
AO PROJETO
8191 Mário A1 4 1/05/93 124112 João A2 4 4/01/91 246126 José B1 9 1/11/92 12
Documento
4
![Page 5: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/5.jpg)
Tabela Não-Normalizada (ÑN)
CódProj Tipo Descr EmpCodEmp Nome Cat Sal DataIni TempAl
LSC001 Novo Desenv. 2146 João A1 4 1/11/91 24Sistema deEstoque 3145 Sílvio A2 4 2/10/91 24
6126 José B1 9 3/10/92 181214 Carlos A2 4 4/10/92 188191 Mário A1 4 1/11/92 12
PAG02 Manutenção 8191 Mário A1 4 1/05/93 12Sistema deRH 4112 João A2 4 4/01/91 24
6126 José B1 9 1/11/92 12
Tabela não-normalizada possui tabelas aninhadas, grupos de repetição ou atributos multivalorados.
5
![Page 6: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/6.jpg)
CódProj Tipo Descr EmpCodEmp Nome Cat Sal DataIni TempAl
LSC001 Novo Desenv. 2146 João A1 4 1/11/91 24Sistema deEstoque 3145 Sílvio A2 4 2/10/91 24
6126 José B1 9 3/10/92 181214 Carlos A2 4 4/10/92 188191 Mário A1 4 1/11/92 12
PAG02 Manutenção 8191 Mário A1 4 1/05/93 12Sistema deRH 4112 João A2 4 4/01/91 24
6126 José B1 9 1/11/92 12
Proj (CodProj,Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
Tabela Não-Normalizada (ÑN)
6
![Page 7: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/7.jpg)
Primeira Forma Normal (1FN)
Uma tabela encontra-se na primeira forma normal quando não possui tabelas aninhadas (grupos de repetição, atributos multivalorados).
7
![Page 8: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/8.jpg)
Passagem à 1FN
Proj (CodProj,Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
Proj (CodProj,Tipo, Descr)
CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl )
ÑN
1FN
ProjEmp (
CodProj tem que fazer parte da chave pois cada empregado pode participar de mais de um projeto.
8
![Page 9: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/9.jpg)
Proj:
CódProj Tipo Descr
LSC001 Novo Desenv. Sistema de Estoque
PAG02 Manutenção Sistema de RH ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl
LSC001 2146 João A1 4 1/11/91 24
LSC001 3145 Sílvio A2 4 2/10/91 24 LSC001 6126 José B1 9 3/10/92 18 LSC001 1214 Carlos A2 4 4/10/92 18 LSC001 8191 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24 PAG02 6126 José B1 9 1/11/92 12
Passagem à 1FN
9
![Page 10: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/10.jpg)
Passagem à 1FN
ÑN
1FN
Arq-Candidatos (Cod-Curso,Nome-Curso, Numero-Vagas-Curso,(Cod-Cand, Nome-Cand, Escore-Cand))
Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso)
Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand)
Cada candidato participa de apenas um concurso.
10
![Page 11: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/11.jpg)
Dependência Funcional
Um atributo C2 depende funcionalmente de um atributo C1 (ou C1 determina C2) quando, em todas as tuplas da tabela, cada valor de C1 está sempre associado ao mesmo valor de C2.
Mais formalmente, C1 determina C2, quando para quaisquer duas tuplas X e Y da tabela, se X[C1] = Y[C1] então X[C2] = Y[C2].
Representação: C1 → C2
11
![Page 12: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/12.jpg)
Dependência Funcional
… Cargo … Salário …
E1 10
E3 10
E1 10
E2 5
E3 10
E2 5
E1 10
Cargo → Salário
12
![Page 13: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/13.jpg)
Dependência Funcional
A B C D
B 5 2 20C 4 2 15B 6 7 20B 5 2 20C 2 2 15C 4 2 15A 10 5 18A 12 3 18A 10 5 18B 5 2 20C 4 2 15A 10 5 18C 4 2 15
A não determina B: A B
A determina D: A D
O par (A,B) determina C: (A,B) C
13
![Page 14: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/14.jpg)
Segunda Forma Normal (2FN)
ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl
LSC001 2146 João A1 4 1/11/91 24
LSC001 3145 Sílvio A2 4 2/10/91 24LSC001 6126 José B1 9 3/10/92 18LSC001 1214 Carlos A2 4 4/10/92 18LSC001 8191 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24PAG02 6126 José B1 9 1/11/92 12
14
![Page 15: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/15.jpg)
Dependência Parcial
Uma dependência (funcional) parcial ocorre quando um atributo não-chave depende de parte da chave primária.
Nesse caso, a chave primária é composta (formada por mais de um atributo).
Atributos não-chave são aqueles que não fazem parte da chave primária.
15
![Page 16: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/16.jpg)
Dependência Parcial
Dependências funcionais parciais:CodEmp → NomeCodEmp → CatCodEmp → Sal
ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl
LSC001 2146 João A1 4 1/11/91 24
LSC001 3145 Sílvio A2 4 2/10/91 24LSC001 6126 José B1 9 3/10/92 18LSC001 1214 Carlos A2 4 4/10/92 18LSC001 8191 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24PAG02 6126 José B1 9 1/11/92 12
16
![Page 17: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/17.jpg)
Segunda Forma Normal (2FN)
Uma tabela encontra-se na segunda forma normal quando, além de estar na 1FN, cada atributo não-chave não for dependente de parte da chave primária (dependência parcial).
Todos os atributos não-chave devem depender totalmente da chave primária (dependência total).
Atributos não-chave são aqueles que não fazem parte da chave primária.
17
![Page 18: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/18.jpg)
ProjEmp:
CódProj CodEmp Nome Cat Sal DataIni TempAl
LSC001 2146 João A1 4 1/11/91 24
LSC001 3145 Sílvio A2 4 2/10/91 24LSC001 6126 José B1 9 3/10/92 18LSC001 1214 Carlos A2 4 4/10/92 18LSC001 8191 Mário A1 4 1/11/92 12
PAG02 8191 Mário A1 4 1/05/93 12
PAG02 4112 João A2 4 4/01/91 24PAG02 6126 José B1 9 1/11/92 12
Segunda Forma Normal (2FN)
A tabela ProjEmp não está na 2FN.
18
![Page 19: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/19.jpg)
Segunda Forma Normal (2FN)
ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl )
1FN
CodProj, CodEmp
dependências parciais
dependências não parciais (totais)
19
![Page 20: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/20.jpg)
Passagem à 2FN
ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl )
1FN
CodProj, CodEmp
ProjEmp ( CodProj, CodEmp , DataIni, TempAl )
Emp ( CodEmp , Nome, Cat, Sal )
2FN
20
![Page 21: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/21.jpg)
Tabelas na 2FN
21
![Page 22: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/22.jpg)
22
Definição mais geral da 2FN
Uma tabela encontra-se na segunda forma normal quando, além de estar na 1FN, cada atributo não-chave não é dependente de parte de nenhuma chave candidata (dependência parcial).
Todos os atributos não-chave devem depender totalmente de todas as chaves candidatas.
Atributos não-chave são aqueles que não fazem parte de nenhuma chave candidata.
![Page 23: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/23.jpg)
Terceira Forma Normal (3FN)
23
![Page 24: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/24.jpg)
Dependência Transitiva
Uma dependência (funcional) transitiva X→Z ocorre quando existe um atributo Y tal que X→Y e Y→Z.
24
![Page 25: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/25.jpg)
Dependência Transitiva
Dependência transitiva:CodEmp → CatCodEmp → Sal CodEmp → Cat → Sal Cat → Sal
25
![Page 26: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/26.jpg)
Terceira Forma Normal (3FN)
Uma tabela encontra-se na terceira forma normal quando, além de estar na 2FN, nenhum atributo não-chave depende da chave primária de forma transitiva.
26
![Page 27: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/27.jpg)
Terceira Forma Normal (3FN)
A tabela Emp não está na 3FN.
27
![Page 28: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/28.jpg)
Terceira Forma Normal (3FN)
Emp ( CodEmp, Nome, Cat, Sal )
Sal depende de CodEmp também por transitividade(de forma indireta).
28
![Page 29: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/29.jpg)
Passagem à 3FN
Emp ( CodEmp, Nome, Cat, Sal )
2FN
3FN
Emp ( CodEmp, Nome, Cat ) Cat ( Cat, Sal )
29
![Page 30: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/30.jpg)
Tabelas na 3FN
30
![Page 31: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/31.jpg)
31
Definição mais geral da 3FN
Uma tabela encontra-se na terceira forma normal quando, além de estar na 2FN, nenhum atributo não-chave depende de alguma chave candidata de forma transitiva.
![Page 32: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/32.jpg)
ÑN
Proj (CodProj,Tipo, Descr,(CodEmp, Nome, Cat, Sal, DataIni, TempAl))
1FN
Proj (CodProj, Tipo, Descr)ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)
2FN
Proj (CodProj, Tipo, Descr)ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat, Sal)
3FN
Proj (CodProj, Tipo, Descr)ProjEmp (CodProj, CodEmp, DataIni, TempAl)Emp (CodEmp, Nome, Cat)Cat (Cat, Sal)
Normalização do Exemplo
32
![Page 33: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/33.jpg)
Forma Normal Boyce/Codd (FNBC)
Peça ( Código, Nome, Cor, Forma, Preço )
Peça ( Código, Nome, Cor, Forma, Preço )
Código e Nome são atributos determinantes.
33
![Page 34: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/34.jpg)
Uma tabela encontra-se na forma normal Boyce/Codd quando todo determinante for uma chave.
Forma Normal Boyce/Codd (FNBC)
34
![Page 35: Aula 23 Normalização.ppt](https://reader030.vdocuments.com.br/reader030/viewer/2022033103/5695d0b41a28ab9b0293850a/html5/thumbnails/35.jpg)
Passagem à FNBC
Peça ( Código, Nome, Cor, Forma, Preço )
Peça ( Código, Nome, Cor, Preço )
Ñ FNBC
FNBC
Forma ( Nome, Forma )
35