Bd normalização
Problema: As relações resultantes do mapeamento do projeto conceitual-lógico estão bem projetadas? BD Exemplo:
# F f-nome status cidade M N # P p - n o m e cor
Teoria da Normalização
Ö Permite identificar projetos de tabelas mal feitas, mostrando formas mais desejáveis. Ö Baseia-se no conceito de formas normalizadas. Ö Uma relação está numa forma normalizada se ela satisfizer um conjunto específico de limitações. ex.: Uma relação está na 1a forma normal (1NF) se, e somente se, todos os seus atributos contêm apenas valores atômicos.
FORNECEDOR
FP
PEÇA
qtde
peso
cidade
No modelo relacional todas as tabelas já estão normalizadas, isto é, os domínios básicos contêm apenas valores atômicos. Formas normalizadas
Universo das relações (normatizadas ou não) Relações 1NF (relações normatizadas) Relações 2NF
Esquema relacional: FORNECEDOR = ( #F, f-nome, status, cidade ) PEÇA = ( #P, p-nome, cor, peso, cidade ) FP = ( #F, #P, qtde )
Suponha que status fosse atributo da relação FP.
FP1 = ( #F, #P, qtde, status ) #F f1 f1 f1 f1 #P p1 p2 p3 p4 qtde 300 200 400 200 status 20 20 20 20
Relações 3NF Relações BCNF Relações 4FN Relações PJ/NF (5NF)
Ö Redundância de dados Observe que para todo f1, status = 20
Ö Toda relação na 3NF também está na 2NF e 1NF. Ö Toda relação na 4NF também está na BCNF e 3NF Ö A 5NF é a forma mais desejável.
1
2
Dependência Funcional
Fornece a base das quatro primeiras formas normalizadas (1NF, 2NF, 3NF e BCNF) Seja X e Y atributos de uma relação R. Y é dependente funcionalmente de X (R.X -> R.Y) se, e somente se, cada valor X em R for associado a um valor Y. ex.: F = ( #F, f-nome, status, cidade ) F.#F -> F.f-nome F.#F -> F.status F.#F -> F.cidade ou F.#F -> S.(f-nome, status, cidade ) Todos os atributos de uma relação devem ser funcionalmente dependentes das chaves candidatas da relação. Outro exemplo:
Diagrama de dependência funcional
#F f-nome