Material 9 - DECOM-UFOP

Propaganda
Roteiro
Normalização
Luiz Henrique de Campos Merschmann
Posicionamento
Introdução
Departamento de Computação
Universidade Federal de Ouro Preto
Processo de Normalização
[email protected]
www.decom.ufop.br/luiz
Dependências Funcionais
Formas Normais
BCC321 - Banco de Dados I
Introdução
Ementa
1. Conceitos básicos em sistemas de banco de dados.
2. Conceitos e arquitetura de sistemas de banco de dados.
Para que serve a normalização?
3. Modelagem conceitual de dados.
4. Modelo Relacional: conceitos básicos e restrições de
integridade.
5. Linguagens: álgebra e cálculo relacional.
6. A linguagem SQL e o uso de APIs.
I Na etapa de desenvolvimento de um sistema de banco de
dados, serve para validar o nosso esquema lógico relacional.
I É um instrumento que nos auxilia avaliar a qualidade dos
esquemas de relação.
7. Projeto de banco de dados.
8. Normalização de banco de dados.
9. Noções de processamento de transações, concorrência e
recuperação de falhas.
10. Aspectos de implementação de banco de dados.
I É um processo que baseia-se no conceito de
forma normal.
Processo de Normalização
Processo de Normalização
I O processo de normalização foi proposto por Codd (1972).
I Esse processo sujeita um esquema de relação a uma série de
testes para certicar-se de que ele satisfaça uma certa
forma normal.
I Inicialmente Codd propôs três formas normais:
I
Primeira Forma Normal (1FN).
I
Segunda Forma Normal (2FN).
I
Terceira Forma Normal (3FN).
Processo de Normalização
I Uma denição mais forte da 3FN, chamada Forma Normal
de Boyce-Codd (FNBC) foi proposta depois por Boyce e
Codd.
I Todas essas formas normais são baseadas nas
dependências funcionais entre os atributos de uma
relação.
Processo de Normalização
I Existem ainda uma Quarta Forma Normal (4FN) e uma
Quinta Forma Normal (5FN).
I A normalização de dados é um processo que visa:
I Diz-se que um bom sistema de banco de dados relacional
contém esquemas relação que atendem a, no mínimo, a
terceira forma normal!
I Os esquemas de relações que não alcançam certas condições
(os testes de forma normal) são decompostos em esquemas
de relações menores que passam nos testes.
I
Minimizar dados redundantes.
I
Minimizar anomalias de inserção, exclusão e atualização.
Informações Redundantes em Tuplas e Anomalias de Atualização
Informações Redundantes em Tuplas e Anomalias de Atualização
I Exemplo de anomalia de inserção.
I Exemplo de redundância.
Como garantir que os valores de atributo do departamento 5 para uma
nova tupla estarão coerentes com os valores correspondentes para o
departamento 5 em outras tuplas?
Dependências Funcionais
Denições de Chaves e Atributos Participantes de
Chaves
I Denição: Se o valor de um conjunto de atributos A
permite descobrir o valor de um outro conjunto B, dizemos
que A determina funcionalmente (exclusivamente) B, ou
que B depende de A (A
→ B ).
I Os projetistas de um BD usarão sua compreensão da
semântica dos atributos de uma relação para especicar as
dependências funcionais.
I Exemplo: Um CEP identica uma, e somente uma,
localidade no Brasil.
I
Portanto, dizemos que existe uma dependência funcional
entre os atributos CEP e Cidade (CEP
→
Cidade).
I Se um esquema tiver mais de uma chave, cada uma delas é
chamada chave candidata.
I Os atributos pertencentes a chaves candidatas são
chamados de atributos primários.
Uso Prático das Formas Normais
Primeira Forma Normal - 1FN
I Uma relação está na 1FN se não contém relações
aninhadas, ou seja, ela não deve conter atributos
multivalorados e nem atributos compostos.
I A forma normal de uma relação refere-se à condição da
mais alta forma normal alcançada.
I Exemplo: A relação DEPARTAMENTO não está na 1FN
porque Dlocal não é um atributo atômico.
I Embora existam várias formas normais de alto grau (4FN e
5FN), o projeto praticado hoje comercialmente dá
particular atenção até a 3FN, BCNF ou 4FN.
I As formas normais têm uma ordem e são dependentes, isto
é, para se aplicar a segunda forma normal, deve-se
obrigatoriamente ter aplicado a primeira e assim por diante.
Primeira Forma Normal - 1FN
Primeira Forma Normal - 1FN
I Das três soluções anteriores a primeira é a melhor porque
I Há três técnicas básicas para alcançar a 1FN:
I
Remover o atributo Dlocal que viola a 1FN e colocá-lo em
uma relação separada (LOCALIZACAO_DEP) ao lado da
chave primária (Dnumero) de DEPARTAMENTO.
I
Ampliar a chave de forma a separar as tuplas da relação
original DEPARTAMENTO. Qual a desvantagem dessa
solução?
I
Se um número máximo de valores (p.ex.,3) puder ser
estabelecido para o atributo, substituir o atributo Dlocal
por: Dlocal1, Dlocal2 e Dlocal3. Qual a desvantagem dessa
solução?
não causa redundância e é genérica.
I Se escolhermos a segunda solução, ela será decomposta nos
próximos passos da normalização, chegando à primeira
solução.
I 1o solução: relação fora da 1FN decomposta em duas
relações na 1FN.
Segunda Forma Normal - 2FN
Segunda Forma Normal - 2FN
I Exemplo: A relação FUNC_PROJ está na 1FN, mas não
na 2FN.
I Uma relação R está na 2NF se, e somente se:
I
Estiver na 1NF.
I
Não existirem atributos não primários
parcialmente dependentes de alguma chave candidata de R.
I Uma dependência funcional
X→Y
será uma dependência
funcional parcial se após a remoção de qualquer atributo
de
X
a dependência continuar existindo.
A
I As dependências funcionais DF2 e DF3 fazem Fnome,
Projnome e Projlocal parcialmente dependentes da chave
primária {Cpf,Projnumero} de FUNC_PROJ.
Segunda Forma Normal - 2FN
Segunda Forma Normal - 2FN
I Exemplo de Anomalia:
I A relação FUNC_PROJ poderá ser normalizada na 2NF
por meio da criação de várias relações na 2NF.
Alocação(Sigla,Turma,Sala,Créditos)
Sigla,Turma
Sigla
→
→
Sala
Créditos.
Terceira Forma Normal - 3FN
Terceira Forma Normal - 3FN
I FUNC_DEP não está na 3FN em virtude da dependência
transitiva de Cpf_gerente (e também Dnome) para Cpf via
I Uma relação R está na 3FN se:
I
I
Dnumero.
Estiver na 2FN.
Todos os seus atributos não primários são dependentes
relação (DF1 e DF2).
não-transitivos de uma chave candidata.
I Em um esquema de relação
R, X → Y
I Solução: Decompor FUNC_DEP em dois esquemas de
será uma
dependência transitiva se existir um conjunto de atributos
Z
que não é nem chave candidata nem subconjunto de
qualquer chave de
R,
e ambas
X→Z
e
Z→Y
forem
asseguradas.
Terceira Forma Normal - 3FN
Forma Normal de Boyce-Codd (FNBC)
I Exemplo de Anomalia:
Alocação(Sigla,Turma,Sala,Prédio)
I É considerada mais rígida que a 3FN.
I Toda relação na FNBC também está na 3FN, mas o
contrário não é necessariamente verdadeiro.
I Uma relação R está na FNBC se:
I
Estiver na 2FN.
I
Todos os seus atributos são dependentes não-transitivos de
uma chave candidata.
Sigla,Turma
Sala
→
→
Prédio.
Sala
Forma Normal de Boyce-Codd (FNBC)
Forma Normal de Boyce-Codd (FNBC)
I Intuitivamente é fácil ver a necessidade de uma forma
normal mais forte que a 3FN.
I Solução: Decompor a relação LOTES1A.
I Seja o seguinte exemplo:
I Suponha duas chaves candidatas:
N U M _P ROP RIEDADE
e
{M U N ICIP IO _N OM E, N U M _LOT E}.
I Suponha que temos milhares de lotes de somente 2
municípios: Ouro Preto e Mariana.
m2 .
m2 .
I
Ouro Preto: lotes de 500, 600, ..., 1000
I
Mariana: lotes de 1100, 1200, ... , 2000
I
DF5: AREA
I
Para evitar redundância, a área de um lote que determina
→
MUNICIPIO_NOME.
seu município pode ser representada por 16 tuplas em uma
relação separada
R(AREA, M U N ICIP IO_N OM E).
Perguntas
FIM
Download