aula 23 normalização.ppt

35
Banco de Dados Aula 23 Normalização Alexandre Plastino - [email protected] 30/03/22 1 BD - Aula 23 – Normalização

Upload: gmdeathclown

Post on 29-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 23 Normalização.ppt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tabelas na 2FN

21

Page 22: Aula 23 Normalização.ppt

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

Terceira Forma Normal (3FN)

23

Page 24: Aula 23 Normalização.ppt

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

Dependência Transitiva

Dependência transitiva:CodEmp → CatCodEmp → Sal CodEmp → Cat → Sal Cat → Sal

25

Page 26: Aula 23 Normalização.ppt

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

Terceira Forma Normal (3FN)

A tabela Emp não está na 3FN.

27

Page 28: Aula 23 Normalização.ppt

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

Passagem à 3FN

Emp ( CodEmp, Nome, Cat, Sal )

2FN

3FN

Emp ( CodEmp, Nome, Cat ) Cat ( Cat, Sal )

29

Page 30: Aula 23 Normalização.ppt

Tabelas na 3FN

30

Page 31: Aula 23 Normalização.ppt

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

Ñ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

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

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

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