Normalização: Noções Básicas

Propaganda
Normalização: Noções Básicas
Introdução a Banco de Dados – DCC 011
Além de corresponder a uma representação relacional do diagrama ER
discutido no livro-texto, o esquema relacional acima possui alguma
propriedade específica que o qualifica como um bom esquema para a
aplicação considerada?
Introdução a Banco de Dados – DCC 011
1
Normalização
Processo através do qual esquemas de relação
são sucessivamente decompostos até que
satisfaçam determinadas propriedades ou
formas normais
Medidas (propriedades) informais de qualidade
do projeto de um esquema relacional:
Compatibilidade semântica entre os atributos de
uma mesma relação
Ausência de valores redundantes nas relações
(inexistência de anomalias de atualização)
Existência reduzida de valores nulos nas relações
Impossibilidade de se gerar tuplas espúrias (com
valores ilegítimos) ao se recompor relações
decompostas
Introdução a Banco de Dados – DCC 011
Semântica dos Atributos de uma
Relação
Diretriz 1: Projete um
esquema de relação de
modo que seja fácil
explicar o seu significado
(intuitivamente, cada
esquema de relação
deve representar um
tipo de entidade ou de
relacionamento).
Introdução a Banco de Dados – DCC 011
2
Redundância nas Tuplas e
Anomalias de Atualização
Diretriz 2: Projete os esquemas de relação de modo
que não exista redundância de dados e, portanto, não
ocorram anomalias de atualização (inserção, remoção
ou alteração) nas relações.
Exemplos de esquemas de relação em que ocorrem
anomalias de atualização:
Introdução a Banco de Dados – DCC 011
?
Introdução a Banco de Dados – DCC 011
3
Valores Nulos
A existência de valores nulos nas relações pode causar
desperdício de espaço físico de armazenamento além de
gerar problemas de entendimento do siginificado dos
atributos e do resultado de determinadas operações.
Interpretação de valores nulos:
O atributo não se aplica
O valor do atributo é desconhecido
O valor do atributo está ausente (não foi registrado)
Diretriz 3: Até onde possível, deve-se evitar a inclusão
em um esquema de relação de atributos que possam ser
frequentemente nulos.
Introdução a Banco de Dados – DCC 011
Geração de Tuplas Espúrias
Diretriz 4: Projete esquemas de relação de modo que as
operações de junção possam ser formuladas por meio de
condições de igualdade definidas sobre atributos que sejam
chaves primárias ou estrangeiras (satisfaçam a propriedade
de decomposição sem perdas).
Introdução a Banco de Dados – DCC 011
4
Geração de Tuplas Espúrias
Introdução a Banco de Dados – DCC 011
Formas Normais
Processo de normalização:
1FN
2FN
3FN
Formas normais definidas a partir do conceito
de dependência funcional.
Primeira Forma Normal (1FN):
Um esquema de relação R está na 1FN se todos
os seus atributos forem atômicos.
Introdução a Banco de Dados – DCC 011
5
Gera anomalias
de atualização
Introdução a Banco de Dados – DCC 011
Dependências Funcionais
Definição:
Uma dependência funcional entre dois atributos (ou conjuntos de
atributos) X e Y de um esquema de relação R, denotada por X Y,
é uma restrição de integridade que estabelece que, para quaisquer
tuplas t1 e t2 de uma instância de R tal que t1[X] = t2[X], t1[Y] =
t2[Y].
Exemplos:
EMP-DEPT(ENOME,SSN,DATANASC,ENDERECO,DNUMERO,DNAME,DGERSSN)
SSN {ENOME,DATANASC,ENDRECO,DNUMERO}
DNUMERO {DNOME,DGERSSN}
Atenção: Não confundir a notação X Y com a notação R1[X] R2[Y] que
denota a RIR entre os esquemas de relação R1 e R2.
Introdução a Banco de Dados – DCC 011
6
Segunda Forma Normal (2FN)
Um esquema de relação R está na 2FN se todo
atributo de R não pertencente a uma de suas
chaves for totalmente dependente da chave
primária.
O esquema de relação
EMP-PROJ(SSN,PNUMERO,HORAS,ENOME,PNOME,PLOCALIZACAO)
não está na 2FN porque
SSN ENOME e PNUMERO {PNOME,PLOCALIZACAO}, ou seja,
há atributos em EMP-PROJ que não são totalmente
dependentes da chave primária {SSN,PNUMERO}.
Introdução a Banco de Dados – DCC 011
Introdução a Banco de Dados – DCC 011
7
Terceira Forma Normal (3FN)
Um esquema de relação R está na 3FN se estiver
na 2FN e nenhum atributo de R não pertencente
a uma de suas chaves for transitivamente
dependente da chave primária.
O esquema de relação
EMP-DEPT(ENOME,SSN,DATANASC,ENDERECO,DNUMERO,DNOME,DGERSSN)
não está na 3FN porque
SSN DNUMERO e DNUMERO {DNOME,DGERSSN}, ou seja,
há atributos em EMP-DEPT que são transitivamente
dependentes da chave primária {SSN}.
Introdução a Banco de Dados – DCC 011
Introdução a Banco de Dados – DCC 011
8
Exemplo de Decomposição
Seja o esquema de relação R(A,B,C,D,F,G). Considerando
as DFs {A,B} G, A C, A D e D F válidas em R,
podemos decompor R da seguinte forma:
1º passo: R não está na 2FN
Eliminando-se A C, A D e D F de R
R1(A,C,D,F)
R2(A,B,G)
2º passo: R1 e R2 estão na 2FN, mas R1 não está na 3FN
Eliminando-se D F de R1
R11(A,C,D)
R12(D,F)
R2(A,B,G), R11(A,C,D) e R12(D,F) estão na 3FN
Introdução a Banco de Dados – DCC 011
Definição Geral
Informalmente, podemos dizer que um
esquema de relação R está normalizado
(ou seja, na 3FN) se todos os seus
atributos são dependentes exclusivamente
de suas chaves.
Representa um tipo de entidade ou de
relacionamento (Diretriz 1)
Introdução a Banco de Dados – DCC 011
9
Propriedades do Processo de
Decomposição
Seja R um esquema de relação e F o conjunto de
dependências funcionais válidas sobre os seus
atributos. A decomposição de R em R1, R2, …, Rn
deve satisfazer às seguintes propriedades:
1. Preservação das dependências funcionais
(F1 U F2 U … Fn)+ = F+
onde F1, F2, …, Fn são os conjuntos de dependências
funcionais válidas em R1, R2, …, Rn e F+ é o conjunto de
todas as dependências funcionais derivadas de F.
2. Decomposição sem perdas
R = R1
R2
…
Rn
Introdução a Banco de Dados – DCC 011
Resumo
Normalização
Processo de decomposição sucessiva de esquemas
de relação para que satisfaçam determinadas
formas normais
Propriedades informais de um esquema de relação
Formas normais
1FN, 2FN, 3FN (outras FNs: FNBC, 4FN)
Dependência funcional
Propriedades do processo de decomposição
Introdução a Banco de Dados – DCC 011
10
Questões e Exercícios Sugeridos
10.2, 10.3, 10.4, 10.5, 10.6, 10.13,
10.14, 10.15, 10.17, 10.22, 10.25,
10.26, 10.28, 10.30.
Introdução a Banco de Dados – DCC 011
11
Download