Normalizaç˜ao: Dependências Multi-Valor, 4

Transcrição

Normalizaç˜ao: Dependências Multi-Valor, 4
Normalização:
Dependências Multi-Valor, 4a Forma Normal
Fernando Lobo
Base de Dados, Universidade do Algarve
1 / 20
Dependências Multi-Valor (DMV’s)
DMV dá origem a um tipo de redundância que não está relacionada
com DF’s.
Ocorre quando representamos na mesma relação dois ou mais
conjuntos de atributos multi-valor.
São obviamente resultantes de um mau modelo conceptual.
2 / 20
Exemplo
Actores( nome telefone rua cidade )
nome
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
telefone
650-111333
650-111333
650-111333
996-444777
996-444777
996-444777
rua
Oak St.
Aloha St.
Edison St.
Oak St.
Aloha St.
Edison St.
cidade
Hollywood
Hawaii
New York
Hollywood
Hawaii
New York
Problema: estamos a representar numa só relação que um actor tem vários
telefones e várias moradas.
3 / 20
Dependências Multi-Valor (DMV’s)
Notação: X Y .
Significado: Quando fixamos os valores dos atributos X , os valores
nos atributos Y são independentes dos valores dos restantes atributos
da relação.
Dito de outra forma. Seja Z = atrib(R) − X − Y , os valores de Z e
Y aparecem na relação R em todas as combinações possı́veis.
4 / 20
Definição formal de DMV
X Y , é uma DMV na relação R se:
para cada par de tuplos de R, t e u, que tenham os mesmos valores
para os componentes dos atributos X , existir um outro tuplo z em R
tal que:
1
z tem os mesmos componentes que t e u nos atributos X .
2
z tem os mesmos componentes que t nos atributos Y .
3
z tem os mesmos componentes que u nos restantes atributos de R
(atrib(R) − X − Y ).
Nota: X e Y são conjuntos de atributos.
5 / 20
Por outras palavras . . .
Dados 2 tuplos que tenham os mesmos componentes em X , podemos
trocar os componentes em Y e obtemos um tuplo que terá
forçosamente de existir em R.
X
Y
outros
6 / 20
Exemplo
Actores( nome telefone rua cidade )
nome
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
telefone
650-111333
650-111333
650-111333
996-444777
996-444777
996-444777
rua
Oak St.
Aloha St.
Edison St.
Oak St.
Aloha St.
Edison St.
cidade
Hollywood
Hawaii
New York
Hollywood
Hawaii
New York
DMV’s:
nome telefone
nome rua cidade
7 / 20
Exemplo (cont.)
Consideremos nome telefone.
Consideremos dois tuplos que tenham o mesmo nome, por exemplo o
1o e 5o tuplos:
(Brad Pitt, 650-111333, Oak St., Hollywood)
(Brad Pitt, 996-444777, Aloha St., Hawaii)
Terá forçosamente de existir na relação Actores um tuplo que:
1
tenha o mesmo nome (Brad Pitt).
2
concorde com o 1o tuplo no atributo telefone (650-111333).
3
concorde com o 5o tuplo nos atributos rua e cidade (Aloha St., Hawaii).
Verifique . . .
8 / 20
Regras sobre DMV’s
Regra da Promoção: Toda a DF é uma DMV. Se X → Y , então
X Y.
I
se X → Y , então a troca de componentes dos atributos Y em 2 tuplos
que tenham os mesmos componentes X , resultará nos próprios tuplos
(porque os componentes de Y são únicos).
Regra do Complemento: Se X Y , então X Z (em que Z são
todos os atributos com excepção de (X ∪ Y )).
9 / 20
Regras sobre DMV’s (cont.)
“Splitting rule” no lado direito não se aplica como nas DF’s.
Exemplo:
I
nome rua cidade
I
não implica que: nome rua, nome cidade
Verifique . . .
10 / 20
DMV trivial
Uma DMV X Y é trivial numa relação R se:
I
Y ⊂ X , ou
I
X ∪ Y = todos os atributos de R.
Nota: é diferente da definição de DF trivial.
11 / 20
DMV’s e redundância
A redundância derivada de uma DMV é diferente da redundância
derivada de uma DF que viole BCNF.
i.e., por vezes uma relação está em BCNF mas continua a ter
redundância devido ao efeito multiplicativo provocado pela DMV.
12 / 20
Exemplo
Actores( nome telefone rua cidade )
nome
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
telefone
650-111333
650-111333
650-111333
996-444777
996-444777
996-444777
rua
Oak St.
Aloha St.
Edison St.
Oak St.
Aloha St.
Edison St.
cidade
Hollywood
Hawaii
New York
Hollywood
Hawaii
New York
Estará em BCNF? Qual a chave? Que DF’s existem?
13 / 20
Exemplo
Actores( nome telefone rua cidade )
nome
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
Brad Pitt
telefone
650-111333
650-111333
650-111333
996-444777
996-444777
996-444777
rua
Oak St.
Aloha St.
Edison St.
Oak St.
Aloha St.
Edison St.
cidade
Hollywood
Hawaii
New York
Hollywood
Hawaii
New York
Chave = {nome, telefone, rua, cidade}
DF’s = {}
=⇒ Actores está em BCNF.
14 / 20
4a Forma Normal (4FN)
Uma relação R está na 4FN se:
sempre que existir uma DMV X Y não trivial,
X for superchave de R.
15 / 20
Exemplo
Actores( nome telefone rua cidade )
DMV’s:
nome telefone
nome rua cidade
Não está na 4FN porque nome telefone é uma DMV não trivial, e nome
não é superchave de Actores.
16 / 20
BCNF versus 4FN
Se R está na 4FN, então também está em BCNF.
Justificação: uma violação de BCNF também é uma violação da 4FN.
I
lembrem-se que X → Y =⇒ X Y .
Mas R pode estar em BCNF e não estar na 4FN.
I
a relação Actores que temos estado a ver é um exemplo.
17 / 20
Decomposição para 4FN
Parecido com decomposição para BCNF.
Seja X Y , uma violação da 4FN para uma relação R, decompomos
R em:
I
R1 (XY )
I
R2 (XZ )
em que Z são todos os atributos de R com excepção de (X ∪ Y ).
Decompor novamente R1 e R2 caso seja necessário.
18 / 20
Exemplo
Actores( nome telefone rua cidade )
FD’s:
DMV’s:
chave:
{}
nome telefone
nome rua cidade
{nome, telefone, rua, cidade}
Ambas as DMV’s violam 4FN. Decompomos em:
Actores1 (nome telefone)
Actores2 (nome rua cidade)
// com nome telefone
// com nome rua cidade
Actores1 e Actores2 estão na 4FN
I
DMV’s passaram a ser triviais.
19 / 20
Relação entre as várias formas normais
4FN =⇒ BCNF =⇒ 3FN.
20 / 20