Normalização: Dependências Multi-Valor, 4 a 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 nome telefone rua cidade Brad Pitt 650-111333 Oak St. Hollywood Brad Pitt 650-111333 Aloha St. Hawaii Brad Pitt 650-111333 Edison St. New York Brad Pitt 996-444777 Oak St. Hollywood Brad Pitt 996-444777 Aloha St. Hawaii Brad Pitt 996-444777 Edison St. 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 DMV s: nome telefone nome telefone rua cidade Brad Pitt 650-111333 Oak St. Hollywood Brad Pitt 650-111333 Aloha St. Hawaii Brad Pitt 650-111333 Edison St. New York Brad Pitt 996-444777 Oak St. Hollywood Brad Pitt 996-444777 Aloha St. Hawaii Brad Pitt 996-444777 Edison St. New York nome rua cidade 7 / 20 Exemplo (cont.) Consideremos nome telefone. Consideremos dois tuplos que tenham o mesmo nome, por exemplo o 1 o e 5 o 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 1 o tuplo no atributo telefone (650-111333). 3 concorde com o 5 o 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. 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: nome rua cidade não implica que: nome rua, nome cidade Verifique... 10 / 20
DMV trivial Uma DMV X Y é trivial numa relação R se: Y X, ou 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 nome telefone rua cidade Brad Pitt 650-111333 Oak St. Hollywood Brad Pitt 650-111333 Aloha St. Hawaii Brad Pitt 650-111333 Edison St. New York Brad Pitt 996-444777 Oak St. Hollywood Brad Pitt 996-444777 Aloha St. Hawaii Brad Pitt 996-444777 Edison St. New York Estará em BCNF? Qual a chave? Que DF s existem? 13 / 20 Exemplo nome telefone rua cidade Brad Pitt 650-111333 Oak St. Hollywood Brad Pitt 650-111333 Aloha St. Hawaii Brad Pitt 650-111333 Edison St. New York Brad Pitt 996-444777 Oak St. Hollywood Brad Pitt 996-444777 Aloha St. Hawaii Brad Pitt 996-444777 Edison St. New York Chave = {nome, telefone, rua, cidade} DF s = {} = Actores está em BCNF. 14 / 20
4 a 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 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. lembrem-se que X Y = X Y. Mas R pode estar em BCNF e não estar na 4FN. 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: R 1 (XY ) R 2 (XZ) em que Z são todos os atributos de R com excepção de (X Y ). Decompor novamente R 1 e R 2 caso seja necessário. 18 / 20
Exemplo FD s: {} DMV s: nome telefone nome rua cidade chave: {nome, telefone, rua, cidade} Ambas as DMV s violam 4FN. Decompomos em: Actores 1 (nome telefone) Actores 2 (nome rua cidade) // com nome telefone // com nome rua cidade Actores 1 e Actores 2 estão na 4FN DMV s passaram a ser triviais. 19 / 20 Relação entre as várias formas normais 4FN = BCNF = 3FN. 20 / 20