Normalizacao

30
Banco de Dados I 4º Período - 2008/02 UNIPAC - Ipatinga Prof. Christiano Colen Venancio

Transcript of Normalizacao

Page 1: Normalizacao

Banco de Dados I

4º Período - 2008/02

UNIPAC - Ipatinga

Prof. Christiano Colen Venancio

Page 2: Normalizacao

NORMALIZAÇÃO

Page 3: Normalizacao

Christiano ColenUnipac - 2008

3

Reagrupar informações para:– eliminar redundância de dados;– eliminar estruturas inexistentes no modelo ER

(atributos multivalorados).

Objetivos

Page 4: Normalizacao

Christiano ColenUnipac - 2008

4

Normalização

Page 5: Normalizacao

Christiano ColenUnipac - 2008

5

Representação na forma de tabela não normalizada•Tabela Não-normalizada ou tabela não-primeira-forma-normal

•possui uma ou mais tabelas aninhadas•tabela aninhada (ou grupo repetido ou coluna multi-valorada ou coluna não atômica)

•Abreviatura: ÑN

Page 6: Normalizacao

Christiano ColenUnipac - 2008

6

Tabela Aninhada - exemplo

Proj(CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAL))

Page 7: Normalizacao

Christiano ColenUnipac - 2008

7

Forma Normal

Regra que uma tabela deve obedecer para poder ser considerada “bem projetada”;Há diversas formas normais, cada vez mais rígidas, para verificar tabelas relacionais;Aqui tratadas:

primeira forma normal (1FN);segunda forma normal (2FN);terceira forma normal (3FN);quarta forma normal (4FN);

Page 8: Normalizacao

Christiano ColenUnipac - 2008

8

Primeira Forma Normal (1FN)

Diz-se que uma tabela está na primeira forma normal, quando ela não contém tabelas aninhadas.

Alternativas:– Construir uma única tabela com redundância de

dados;– Construir uma tabela para cada tabela aninhada;

Page 9: Normalizacao

Christiano ColenUnipac - 2008

9

Primeira Forma Normal (1FN) - Uma única tabela Uma tabela na qual os dados das linhas

externas à tabela aninhada são repetidos para cada linha da tabela aninhada.

Exemplo: ProjEmp(CodProj, Tipo, Descr, ComEmp, Nome, Cat, Sal, Dataini, TempAl)

Dados do projeto aparecem repetidos para cada empregado do projeto.

Page 10: Normalizacao

Christiano ColenUnipac - 2008

10

Primeira Forma Normal (1FN) - 1 tabela para cada aninhada Cria-se uma tabela referente a própria

tabela que está sendo normalizada e uma tabela para cada tabela aninhada.

Exemplo:– Proj(CodProj, tipo, Descr);– ProjEmp(CodProj, CodEmp, Nome, Cat, Sal,

Dataini, TempAI);

Page 11: Normalizacao

Christiano ColenUnipac - 2008

11

Passagem à 1FN Passo 1:

– Criar uma tabela na 1FN referente à tabela não normalizada;– A chave primária da tabela na 1FN é idêntica a chave da

tabela ÑN Passo 2:

– para cada tabela aninhada: Criar uma tabela na 1FN composta pelas seguintes colunas:

– a chave primária de cada uma das tabelas na qual a tabela em questão está aninhada;

– as colunas da própria tabela aninhada.

Page 12: Normalizacao

Christiano ColenUnipac - 2008

12

Page 13: Normalizacao

Christiano ColenUnipac - 2008

13

Passagem à 1FN Passo 3:

– Definir as chaves primárias das tabelas na 1FN que correspondem a tabelas aninhadas

Page 14: Normalizacao

Christiano ColenUnipac - 2008

14

Passagem à 1FN

Page 15: Normalizacao

Christiano ColenUnipac - 2008

15

Passagem à 1FN

Page 16: Normalizacao

Christiano ColenUnipac - 2008

16

Passagem à 1FN

Page 17: Normalizacao

Christiano ColenUnipac - 2008

17

Dependência Funcional

Para entender 2FN e 3FN é necessário compreender o conceito de dependência funcional.

Em uma tabela relacional, diz-se que : uma coluna C2 depende funcionalmente de uma coluna C1 (ou qua a coluna C1 determina a coluna C2) quando, em todas as linhas da tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2.

Page 18: Normalizacao

Christiano ColenUnipac - 2008

18

Dependência Funcional

Page 19: Normalizacao

Christiano ColenUnipac - 2008

19

Dependência Funcional

Page 20: Normalizacao

Christiano ColenUnipac - 2008

20

Segunda Forma Normal

Objetiva eliminar um certo tipo de redundância de dados.

Exemplo: (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl)

Dados referentes a empregados (Nome, Cat, Sal)– Redundantes para os empregados que trabalham em

mais de um projeto.

Page 21: Normalizacao

Christiano ColenUnipac - 2008

21

Segunda Forma Normal

Page 22: Normalizacao

Christiano ColenUnipac - 2008

22

Passagem a 2FN Uma tabela está na 2FN quando: Além de estar

na 1 FN, não contém dependências parciais.– Dependência parcial: Ocorre quando uma coluna

depende apenas de parte de uma chave primária composta.

Page 23: Normalizacao

Christiano ColenUnipac - 2008

23

Passagem à 2 FN Tabela 1Fn e que possui apenas uma coluna

como chave primária (não contém dependências parciais);

É impossível uma coluna depender de uma parte da chave primária, quando a chave primária não é composta por partes.

Toda tabela 1FN que possui apenas uma coluna como chave primária já está na 2FN

Page 24: Normalizacao

Christiano ColenUnipac - 2008

24

Exemplo:

Page 25: Normalizacao

Christiano ColenUnipac - 2008

25

Terceira Forma Normal Trata de um outro tipo de dependência. Exemplo:

– Emp (CodEmp, Nome, Cat, Sal)

Considerar :– Salário (coluna Sal) é determinado pela categoria

funcional (coluna Cat)– Salário que é pago a uma categoria funcional é

armazenado tantas vezes quantos empregados possuam a categoria funcional

Page 26: Normalizacao

Christiano ColenUnipac - 2008

26

Terceira Forma Normal

Page 27: Normalizacao

Christiano ColenUnipac - 2008

27

Terceira Forma Normal

Page 28: Normalizacao

Christiano ColenUnipac - 2008

28

Terceira Forma Normal

Uma tabela encontra-se na 3FN quando, além de estar na 2FN, não contém dependências transitivas

Page 29: Normalizacao

Christiano ColenUnipac - 2008

29

Normalização

Page 30: Normalizacao

Christiano ColenUnipac - 2008

30

Problemas da Normalização

Chaves primárias omitidas ou incorretas; Atributos relevantes implicitamente

representados; Atributos irrelevantes, redundantes ou

derivados.