Buscar

Modelagem de Dados - Dependências entre atributos e normalização

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2.4 -TM Dados: Dependências entre atributos e normalização 1 
Dependência funcional 
Dependência funcional: 
Dados dois conjuntos de atributos A e B de uma entidade, diz-se que: 
• B é funcionalmente dependente de A ou 
• A determina B ou 
• B depende de A, 
se a cada valor de A estiver associado um, e só um, valor de B. 
 
Se A determina B então B não é funcionalmente dependente de nenhum 
subconjunto de A. 
Uma dependência funcional é representada por : 
A → B A – denominado Determinante 
 
Exemplo de identificação de dependências funcionais: 
 
N_funcionário Nome_Próprio Apelido Departamento 
1021 Sofia Reis 900 
1022 Afonso Reis 700 
1023 António Cardoso 900 
 
• Departamento → N_funcionário ? 
Não pois Departamento 900 => {1021,1023} 
 
• N_funcionário → Departamento ? 
Sim pois se se conhecer o N_funcionário (atributo unívoco) é possível 
determinar o Departamento (um funcionário só pode pertencer a um 
departamento) 
 
2.4 -TM Dados: Dependências entre atributos e normalização 2 
• Nome_próprio → N_funcionário ? 
Não pois podem existir funcionários com o mesmo nome => podem 
haver múltiplos valores de N_funcionário para o mesmo Nome_próprio 
 
• N_funcionário → Apelido ? 
Apesar de dois funcionários terem o mesmo apelido, se se conhecer o 
N_funcionário determina-se um só Apelido 
 
∴ N_funcionário → todos os restantes atributos 
 
A Identificação de dependências funcionais não pode ser obtida apenas a partir da 
inspecção de algumas instâncias, mas sim através das próprias propriedades dos 
atributos. 
 
 
Outro exemplo de identificação de dependências funcionais: 
 
Papelaria Artigo Preço 
Colmeia Caneta bic fina 150 
Central Fita cola 300 
Aguarela Borracha 215 
Silva Caneta bic fina 175 
 
• O preço é funcionalmente dependente de artigo (Artigo → Preço) ? 
Não; o mesmo artigo pode ter preços distintos em diferentes papelarias 
 
• O preço é funcionalmente dependente de papelaria (Papelaria → Preço) ? 
Não; para cada papelaria há tantos valores para Preço quantos os 
artigos vendidos nessa papelaria. 
 
Preço depende funcionalmente de ambos {Papelaria, Artigo} → Preço 
 
2.4 -TM Dados: Dependências entre atributos e normalização 3 
Normalização 
O processo de identificação dos agrupamentos necessários e da localização 
correcta de cada atributo consiste num conjunto de técnicas designadas por 
normalização. 
 
A normalização converte cada entidade gradualmente para “Formas Normais”, 
através da aplicação sucessiva de regras que alteram o formato dos dados da 
1ªForma Normal até à 5ª Forma normal. 
 
 
 
Formas Normais 
1ª Forma Normal 
Uma relação está na 1ª forma normal (1FN) quando: 
• os domínios de todos os atributos consistem apenas em valores atómicos 
• não existem subgrupos de atributos repetidos 
 
 
Passagem de uma entidade à 1FN: 
Eliminar subgrupos repetidos, decompondo a relação em duas (ou mais) relações. 
 
A B C D A B
C DA
 
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 4 
 
 
2ª Forma Normal 
 
Uma relação está na 2ª forma normal (2FN) quando: 
• estiver na 1FN; 
• todos os atributos que não pertencem à chave dependem de toda a chave (e não 
de um subconjunto da chave). 
 
 
 
 
Passagem de uma relação à 2FN: 
 
Separar os atributos que dependem de um subconjunto da chave, decompondo a 
relação em duas (ou mais) relações. 
 
 
A B C D
B D
B CA
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 5 
 
 
3ª Forma Normal 
 
Uma relação está na 3ª forma normal (3FN) quando: 
• estiver na 2FN; 
• os atributos que não pertencem à chave não dependem de nenhum atributo que 
também não pertence à chave. 
 
 
 
 
Passagem de uma relação à 3FN: 
 
Separar os atributos que dependem de outro atributo não pertencente à chave, 
decompondo a relação em duas (ou mais) relações. 
 
 
 
 
A B C D
C E
B CA
E
D
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 6 
 
Forma Normal Boyce Codd 
Uma relação está na forma normal de Boyce Codd (FNBC) quando todo o 
determinante da relação for uma chave candidata. 
 
A FNBC corresponde a um grau de normalização mais elevado do que a 3FN e é 
necessária quando: 
• uma entidade tem várias chaves candidatas; 
• as chaves candidatas são compostas; 
• as chaves candidatas sobrepõem-se porque possuem pelo menos um atributo 
em comum. 
 
 
Exemplo de entidade que necessita da FNBC: 
 
SEMINÁRIO ESTUDANTE INSTRUTOR Nº_PARTICIPAÇÕES 
S1 1022 Reis 12 
S1 3088 Couto 12 
S2 1022 Pires 14 
S2 4325 Guedes 14 
 
• Cada seminário é dirigido por dois instrutores, mas um instrutor só pode 
dirigir um seminário; 
• Um estudante pode participar em mais do que um seminário mas é orientado 
somente por um dos instrutores. 
 
Chaves candidatas: 
Seminário, Estudante 
Estudante, Instrutor 
 
2.4 -TM Dados: Dependências entre atributos e normalização 7 
 
Dependências funcionais Determinantes 
 
Seminário, Estudante → Instrutor, Nº_participações 
Estudante, Instrutor → Seminário, Nº_participações 
 
 São chaves 
candidatas 
Instrutor → Seminário Não é chave candidata 
 
 
 
 
Passagem de uma relação à FNBC: 
Separar o(s) atributo(s) que depende(m) do(s) atributo(s) que não é(são) chave 
candidata, decompondo a relação em duas (ou mais) relações. 
 
 
A B C D
C A
B C D
A B C D
A C
A B D
ou
 
 
 
No exemplo ficaríamos com as seguintes entidades: 
 
Participante (Estudante, Instrutor, Nº_partipações) 
Orientador (Instrutor, Seminário) 
 
2.4 -TM Dados: Dependências entre atributos e normalização 8 
Considerações relativamente a normalização 
A essência do processo de normalização consiste na decomposição sucessiva de 
uma colecção de relações, sem perda de informação, com base num conjunto de 
regras (formas normais). 
 
Benefícios do processo de normalização: 
 
• Estruturação da informação e melhoria da qualidade da representação 
relacional; 
 
• Eliminação das possibilidades de ocorrência de anomalias na manipulação 
dos dados (que comprometem a sua integridade); 
 
• Economia de espaço de armazenamento e de custos de manipulação 
Exemplos de custos evitados: manipulação de maior volume de dados do que 
os efectivamente necessários, actualização de dados redundantes, etc.) 
 
• Potencia a estabilidade do modelo lógico relacional, ao aumentar a 
capacidade de um modelo se manter inalterado face a mudanças que venham 
a ser percebidas ou introduzidas no ambiente que tenha sido modelado; 
 
⇒ Não é um processo com finalidade restritiva, mas sim com caracter 
organizativo; 
 
 
Principal limitação do processo de normalização: 
Fragmentação da informação e suas consequências. 
 
2.4 -TM Dados: Dependências entre atributos e normalização 9 
Estratégias de Normalização 
Alguns aspectos a ter em conta: 
• O processo de normalização raramente percorre todas as formas normais (da 
1FN à 5FN); 
 
• Frequentemente, o analista reconhece, por experiência própria, que uma dada 
entidade não está normalizada e coloca-a directamente na 3FN ou na FNBC; 
 
• Uma estratégia muito usada consiste em normalizar para a FNBC em iterações 
sucessivas, utilizando a análise de dependências funcionais. 
 
 
 
 
Estratégia de decomposição usando a análise de 
dependências funcionais 
Determinar todas as dependências funcionais
Desenvolver relação universal
Decompor a relação em duas
A relação
está na FNBC ?
S
N
Modelo
Concluído
 
 
2.4 -TM Dados: Dependênciasentre atributos e normalização 10 
Decomposição de uma relação com vista à obtenção de 
relações na FNBC 
• Consideramos a relação R (A, B, C, D, E, ...), que não está na FNBC; 
 
• Procura-se uma DF C → D que seja responsável por a relação não estar na 
FNBC; 
 
• Criam-se duas relações: R1(A, B, C, E, ...) e R2(C, D); 
 
• Verifica-se se R1 está na FNBC; 
 
• O processo continua até todas as relações obtidas por decomposição estarem na 
FNBC. 
 
 
 
 
Diagrama de dependências funcionais 
 Notação Simbólica Diagrama de dependência funcional 
 
 
#Produto
#Fornecedor
Preço#Produto, #Fornecedor > Preço
 
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 11 
Exemplo de normalização usando a análise de dependências 
funcionais 
#Produto
#Fornecedor
Tipo
Preço
Q_alerta
Morada
Telefone
Existências Chave candidata:
 #Produto, #Fornecedor
Determinantes:
 #Produto, #Fornecedor
 #Produto
 #Fornecedor
 Tipo
Não está na FNBC porque existem determinantes que não são chave
Decompor a relação em duas
 
 
#Produto
#Fornecedor
Tipo
Preço
Morada
Telefone
Existências
Chave candidata:
 #Produto, #Fornecedor
Determinantes:
 #Produto, #Fornecedor
 #Produto
 #Fornecedor
Tipo Q_alerta
R1 R2
Chave candidata:
 Tipo
Determinantes:
 Tipo
Não está na FNBC Está na FNBC
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 12 
 
#Produto
Tipo
Existências
Chave candidata:
 #Produto, #Fornecedor
Determinantes:
 #Produto, #Fornecedor
R3
R4
Chave candidata:
 #Produto
Determinantes:
 #Produto
Está na FNBC
#Produto
#Fornecedor
Preço
#Fornecedor
Morada
Telefone
Chave candidata:
 #Fornecedor
Determinantes:
 #Fornecedor
Está na FNBC
Está na FNBC
R5
 
 
 
 
 
 
Modelo de dados final 
R2 (Tipo, Q_alerta) 
R3 (#Produto, Existências, Tipo) 
R4 (#Fornecedor, Morada, Telefone) 
R5 (#Produto, #Fornecedor, Preço) 
 
2.4 -TM Dados: Dependências entre atributos e normalização 13 
Regras de inferência de dependências funcionais 
Regras utilizadas para reduzir, ou alterar, um dado conjunto de dependências 
funcionais num outro conjunto de DFs equivalentes. 
 
Dado um conjunto de dependências funcionais, utilizando as regras de inferência, 
é possível inferir quais são as dependências logicamente implicadas. 
 
 
Algumas regras de inferência de DFs: 
 
• Transitividade (T); 
 
• Junção de Dfs (J); 
 
• Decomposição de Dfs (D); 
 
• Acrescento de atributos (A); 
 
• Pseudotransitividade (P). 
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 14 
Transitividade 
Se X→ Y e Y → Z, então X → Z é uma dependência transitiva. 
 
Notar que: 
• X → Z é uma DF válida; 
• Se X → Y, Y → Z e X → Z pertencem todas a um mesmo conjunto de DFs, 
então X →→→→ Z é redundante. 
 
As DFs redundantes devem ser eliminadas antes de iniciar o processo de 
decomposição. 
 
 
Exemplo de eliminação de DF transitivas: 
A
D
B C A
D
B C
 
1) Conjunto original de DF 2) A→C é removida, uma vez que 
A→B e B→C 
 
A
D
B C A
D
B C
 
3) D→C é removida, uma vez que 
D→B e B→C 
4) A→B é removida, uma vez que 
A→D e D→B 
 
2.4 -TM Dados: Dependências entre atributos e normalização 15 
 Junção de DFs 
Se X → Y e X → Z, então X → Y,Z. 
 
 
Exemplo: 
BI
Nome
Morada
Se:
BI
Nome
Morada
Então
 
 
 
 
 
 
 
 
 
 
Decomposição de DFs 
Se X → Y,Z então X → Y e X → Z. 
 
 
Exemplos: 
BI
Nome
Morada
Se: Então
BI
Nome
Morada
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 16 
Acrescento de atributos 
O conceito de acrescento de atributos também gera DFs redundantes. 
Duas situações: 
• Se X → Y, então X,Z → Y é uma DF válida mas redundante; 
• Se X → Y, então X,Z → Y,Z é uma DF válida mas redundante. 
 
A
Z
B A
Z
B
AZ-> B 
acrescentada 
é redundante
AZ-> BZ 
acrescentada 
é redundante
Exemplos:
 
 
 
 
 
Pseudotransitividade 
Se X → Y e Y,W → Z então X,W → Z é uma DF redundante pseudotransitiva. 
 
 
Exemplo: 
Docente, Horário -> Sala
DF pseudotransitiva
(redundante)
Disciplina
HorárioDocente
Sala
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 17 
Cobertura Mínima 
O conjunto de DFs obtidas através da remoção de todas as DFs redundantes é 
designado por Cobertura Mínima. 
 
A cobertura mínima pode depender da ordem pela qual as DFs redundantes vão 
sendo eliminadas, pelo que o mesmo conjunto de DFs pode originar várias 
Coberturas Mínimas. 
 
A cobertura mínima deve ser obtida antes de se iniciar o processo de 
decomposição. 
 
 
 
 
Verificar o resultado final 
• A mesma DF não deve aparecer em mais do que uma relação; 
 
• O conjunto de DFs obtidas deve ser o mesmo existente na Cobertura Mínima 
Inicial ou deve poder ser deduzido a partir deste usando as regras de inferência; 
 
• Não devem existir relações redundantes. 
 
2.4 -TM Dados: Dependências entre atributos e normalização 18 
Propriedades da decomposição 
A decomposição deve: 
• deixar todas as relações na forma normal adequada (que não cause anomalias); 
• preservar todos os atributos; 
• preservar as dependências funcionais; 
• conduzir a junção sem perdas (não aditiva). 
 
 
Preservação de atributos 
Cada atributo da Relação Universal deve aparecer em pelo menos uma das 
relações R1, R2, ..., Rn, ou seja, não se pode “perder” atributos durante o processo 
de normalização. 
 
 
Preservação de DF 
As dependências funcionais existentes entre os atributos da relação universal 
devem aparecer directamente, ou devem poder ser deduzidas através das regras de 
inferência, numa das relações R1, R2, ..., Rn. 
 
 
Porquê preservar as DF ? 
• As DF representam restrições e podem e devem ser usadas para garantir a 
integridade; 
• Se, após a normalização, uma dada DF não aparece directamente numa única 
relação, deixa de ser possível verificar facilmente a restrição representada por 
essa DF; Seria necessário fazer a junção de duas ou mais relações para poder 
verificar essa restrição, o que se tornaria incomportável num sistema real. 
 
2.4 -TM Dados: Dependências entre atributos e normalização 19 
Violação da propriedade de preservação de DF: Exemplo 
Lotes 
ID_propriedade Concelho N_lote Área 
 
 
Supor que: 
• O número de identificação de cada propriedade é estabelecido a nível 
nacional; 
• As instâncias da entidade só contemplam 2 concelhos: Coimbra e Soure; 
• As áreas dos lotes em Coimbra só podem ser de 500, 700 ou 1000 m2; 
• As áreas dos lotes em Soure só podem ser 1200 m2; 
 
 
 
DF´s: 
a) ID_propriedade → todos os atributos 
b) Área → Concelho 
c) N_lote, Concelho → Área 
d) N_lote, Concelho → ID_propriedade 
 
Utilizando a FNBC obtém-se: 
Lotes 
ID_propriedade N_lote Área Área Concelho 
 
 
As DF c) e d) perderam-se no processo de decomposição. 
 
2.4 -TM Dados: Dependências entre atributos e normalização 20 
Junção sem perdas ou junção não aditiva 
Se a decomposição preserva informação da relação inicial, a junção da projecção 
das instâncias originais deve produzir as instâncias iniciais, pois: 
• a decomposição de uma relação em várias relações normalizadas não pode levar 
a perda de informação; 
• há perda de informação quando, após o processo de normalização, há o risco de 
a junçãodas relações dar origem a registos espúrios (com informação errada). 
 
Esta propriedade é também chamada junção não aditiva (JNA) porque garante que 
a operação de junção não gera registos adicionais contendo informação errónea. 
 
 
 
Violação da propriedade da junção não aditiva: exemplo 
Proj_Emp 
Nome_emp BI Nproj Nomeproj Local Horas 
José 1154324 1 Hércules Coimbra 200 
José 1154324 2 Viriato Viseu 35 
Maria 5367222 3 Safira Braga 120 
Sofia 2373672 1 Hércules Coimbra 80 
Sofia 2373672 2 Viriato Viseu 70 
Marta 6263533 2 Viriato Viseu 100 
 
DF 
{BI→NomeE Nproj→NomeP, Local BI, Nproj → Horas} 
 
2.4 -TM Dados: Dependências entre atributos e normalização 21 
Decompondo a relação Proj_Emp nas relações Emp_Locais e Proj_Emp1, ou seja, 
projectando a relação universal segundo (Nome_Emp, Local) e (BI, Nproj, 
Nomeproj, Local e Horas), obtém-se: 
 
Emp_Locais Proj_Emp1 
Nome_emp Local BI Nproj Nomeproj Local Horas 
José Coimbra 1154324 1 Hércules Coimbra 200 
José Viseu 1154324 2 Viriato Viseu 35 
Maria Braga 5367222 3 Safira Braga 120 
Sofia Coimbra 2373672 1 Hércules Coimbra 80 
Sofia Viseu 2373672 2 Viriato Viseu 70 
Marta Viseu 6263533 2 Viriato Viseu 100 
 
A junção das duas relações Emp_Locais e Proj_Emp1, é efectuada a partir do 
atributo comum, ou seja, Local, combinando todas as instâncias, das duas relações, 
que possuem o mesmo valor para o atributo Local. 
 
O resultado da referida junção, apresentado parcialmente, é o seguinte: 
 
Nome_emp BI Nproj Nomeproj Local Horas 
José 1154324 1 Hércules Coimbra 200 
José 2373672 1 Hércules Coimbra 80 ! 
José 1154324 2 Viriato Viseu 35 
José 2373672 2 Viriato Viseu 70 ! 
José 6263533 2 Viriato Viseu 100 ! 
Maria 5367222 3 Safira Braga 120 
... ... ... ... ... ... 
 
! exemplos de registos espúrio
 
2.4 -TM Dados: Dependências entre atributos e normalização 22 
Algoritmo de verificação da propriedade de junção 
não_aditiva (JNA) 
 
Violação da JNA: Exemplo 
 
 DF 
Proj_Emp (BI, NomeE, Nproj, NomeP, Local, Horas) 
Emp_Local (NomeE, Local) 
Proj_Emp1(BI, Nproj, NomeP, Local, Horas) 
BI→NomeE 
Nproj→NomeP, Local 
BI, Nproj → Horas 
 
 
1ºPasso 
Construir uma matriz S que terá nas colunas os atributos da relação universal e nas 
linhas os nomes das relações de decomposição. 
 
 BI Nproj NomeP Local Horas 
Emp_Local 
Proj_Emp1 
 
 
 
2ºPasso 
Marcar os atributos de cada relação de decomposição com ai, sendo i o nº do 
atributo. 
 BI NomeE Nproj NomeP Local Horas 
Emp_Local a2 a5 
Proj_Emp1 a1 a3 a4 a5 a6 
 
2.4 -TM Dados: Dependências entre atributos e normalização 23 
 
 DF 
Proj_Emp (BI, NomeE, Nproj, NomeP, Local, Horas) 
Emp_Local (NomeE, Local) 
Proj_Emp1(BI, Nproj, NomeP, Local, Horas) 
BI→NomeE 
Nproj→NomeP, Local 
BI, Nproj → Horas 
 
 
3ºPasso 
Repetir 
Para cada DF X→Y 
Se (existe alguma linha na matriz S com os dois conjuntos de atributos X e 
Y, todos marcados com a´s) então 
Para cada linha da matriz S 
Se (os atributos contidos em X estão marcados com a´s) então 
Marcar com a´s todos os atributos contidos em Y 
fim se 
fim para 
fim se 
fim para 
Até ((existir uma linha só com a´s) ou (não haver alterações na matriz)) 
 
 
 BI NomeE Nproj NomeP Local Horas 
Emp_Local a2 a5 
Proj_Emp1 a1 a3 a4 a5 a6 
 
Não há alterações na matriz, nem nenhuma linha só com a´s ⇒ viola JNA 
 
2.4 -TM Dados: Dependências entre atributos e normalização 24 
Verificação de JNA: Exemplo 
 
Proj_Emp (BI, NomeE, Nproj, NomeP, Local, Horas) DF 
Emp (BI, NomeE) BI→NomeE 
Proj (Nproj, NomeP, Local) Nproj→NomeP, Local 
Trab_em (BI, Nproj, Horas) BI, Nproj → Horas 
 
 
1ºPasso e 2ºPasso 
 BI NomeE Nproj NomeP Local Horas 
Emp a1 a2 
Proj a3 a4 a5 
Trab_em a1 a3 a6 
 
 
3ºPasso 
• BI → NomeE 
 BI NomeE Nproj NomeP Local Horas 
Emp a1 a2 
Proj a3 a4 a5 
Trab_em a1 a2 a3 a6 
 
• Nproj→NomeP, Local 
 BI NomeE Nproj NomeP Local Horas 
Emp a1 a2 
Proj a3 a4 a5 
Trab_em a1 a2 a3 a4 a5 a6 
 
Linha só com a´s ⇒ verifica JNA 
 
2.4 -TM Dados: Dependências entre atributos e normalização 25 
O processo de decomposição (feito intuitivamente) pode dar origem à violação da 
propriedade da JNA. 
 
Haverá algum algoritmo de decomposição que garanta essa propriedade? 
Sim, mas é usado raramente porque: 
• é bastante complexo; 
• tem como ponto de partida a cobertura mínima, pelo que não é 
determinístico, pois para o mesmo conjunto de atributos pode haver várias 
coberturas mínimas; 
• é praticamente inviável para grandes projectos. 
 
 
 
 
A solução mais utilizada 
• Construir o modelo conceptual de dados (DER); 
• Derivar o modelo lógico a partir do modelo conceptual; 
• Verificar o resultado usando a teoria da normalização (ver se as relações estão 
na FNBC ou superior); 
• Verificar se as seguintes propriedades são respeitadas: 
- preservação dos atributos; 
- preservação das dependências funcionais; 
- verificação de junções não aditivas. 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 26 
Formas mais avançadas de normalização 
 
 
 
• Quarta Forma Normal (4FN); 
• Quinta Forma Normal (5FN); 
• Outras (não abordadas). 
 
 
 
 
Formas Normais Tipo de dependências em que se baseiam 
1FN 
2FN 
3FN 
 
Dependências funcionais (e chave primária) 
FNBC Dependências funcionais (e chaves candidatas) 
4FN Dependências multivalor 
5FN ou FNPJ Dependências de junção 
 
 
 
 
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 27 
 
Dependências Multivalor 
Uma dependência multivalor (DM) é outro tipo de dependência entre dados que 
consiste em associações de muitos para muitos entre atributos. 
 
 
Exemplo: Uma pessoa (Id_pessoa) pode ter vários números de telefone 
(N_telefone) e um número de telefone pode ser partilhado por várias pessoas. 
 
DF 
• Id_pessoa → N_telefone 
 
• N_telefone → Id_pessoa 
 
As DF são falsas 
 
 
⇒⇒⇒⇒ Existem situações que não podem ser explicadas por DF. 
 
 
A forma correcta de representar esta situação é através da dependência 
multivalor (DM) : 
 
Id_pessoa →→→→→→→→ N_telefone 
 
e diz-se que N_telefone é funcionalmente multidependente de Id_pessoa, ou, que 
Id_pessoa multidetermina N_telefone. 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 28 
 Dependência Multivalor: Exemplo de situação clássica 
• As DM são uma consequência da 1FN que não permite que um atributo tenha 
um conjunto de valores; 
 
• Se tivermos um ou mais atributos multivalor independentes na mesma relação, 
temos de os repetir, gerando todas as combinações entre os atributos, para 
manter as instâncias consistentes. 
 
 
 
Funcionário Projecto Dependente 
Pires Alfa Rita Funcionário →→ Projecto 
Pires Alfa João Funcionário→→ Dependente 
Pires Alfa Ana 
Pires Beta Rita e 
Pires Beta João Projecto e Dependente 
Pires Beta Ana sem relacionamento 
 
 
 
Numa relação R {A, B, C} se existe a DM A→→→→→→→→B, então também existe A→→→→→→→→C 
(ou seja, A→→ R-AB). Como neste caso, as DM surgem sempre aos pares e 
representam-se por: A →→→→→→→→ B | C 
 
2.4 -TM Dados: Dependências entre atributos e normalização 29 
 
Dependência Multivalor: Definição informal 
 
Sendo A, B, e C subconjuntos do conjunto de atributos da relação R, diz-se que 
A→→→→→→→→B se e só se o conjunto dos valores de B que corresponde a um dado 
conjunto devalores de um par (A, C) depende unicamente do valor de A e é 
independente do valor de C. 
 
 
Se A →→→→→→→→ B | C, então a relação deve conter todas as combinações possíveis dos 
dois conjuntos de valores de B e de C, associados ao mesmo valor de A. 
 
Dependências funcionais e dependências multivalor 
• Muitas vezes é possível exprimir o mesmo facto através de DF ou de DM; 
• Deve representar-se primeiro todas as DF; 
• Só no caso de as DF se mostrarem insuficientes para representar certos 
factos, é que se deve procurar as DM. 
 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 30 
Dependências Multivalor e 4ª Forma Normal 
• Uma relação na FNBC pode ainda conter redundância; 
Exemplo: R(Funcionário, Projecto, Dependente) 
• A decomposição não se pode basear em DF (pois não existem DF na relação). 
 
⇒ É necessária uma regra para o tratamento destas situações, que possa ser 
usada para decompor a relação sem perda de informação. 
 
 
4ª Forma Normal (4FN): Definição informal 
Uma relação está na 4FN se para qualquer DM X→→Y a relação não tem outros 
atributos para além dos que fazem parte de X e de Y. 
 
Passagem de uma relação à 4FN: 
Separar os atributos multidependentes, decompondo a relação em duas relações. 
 
Exemplo: 
A relação R decompõe-se em duas relações na 4FN: 
 
Func_proj Func_dependente 
Funcionário Projecto Funcionário Dependente 
Pires Alfa Pires Rita 
Pires Beta Pires João 
 Pires Ana 
 
 
2.4 -TM Dados: Dependências entre atributos e normalização 31 
Formas Normais e Dependências Multivalor 
Exemplo: Se um representante representa um conjunto de produtos e se possui um 
dado conjunto de clientes, então este vende esses produtos a esses clientes. 
 
Revendas 
 Representante Cliente Produto 
1 Martins Sá e filhos Louça Chave da relação 
2 Martins Sá e filhos Talheres Representante, Cliente, Produto 
3 Martins DMI, Lda Louça 
4 Martins DMI, Lda Talheres Está na FNBC, mas tem 
5 Castro Sá e filhos Cintos redundância 
6 Castro Sá e filhos Meias 
7 Castro Sá e filhos Lenços A redundância resulta de: 
8 Castro YSL Cintos Representante→→Cliente 
9 Castro YSL Meias Representante→→Produto 
10 Castro YSL Lenços 
 
De acordo com a 4FN, a relação Revendas decompõe-se em duas relações: 
 
Clientes_Representante Representação 
Representante Cliente Representante Produto 
Martins Sá e filhos Martins Louça 
Martins DMI, Lda Martins Talheres 
Castro Sá e filhos Castro Cintos 
Castro YSL Castro Meias 
 Castro Lenços 
 
2.4 -TM Dados: Dependências entre atributos e normalização 32 
 Dependências de Junção 
Supondo que se acrescentava à relação Revendas a restrição que indica que uma 
dada loja só revende certos produtos: 
Por exemplo, a loja Sá e filhos não vende talheres nem Meias e a loja YSL não 
vende Cintos. Neste caso: 
• as instâncias nº 2, 6 e 8 seriam retiradas pois deixariam de existir; 
• a decomposição de Revendas em duas relações (4FN) não se alterava; 
• a decomposição de Revendas em duas relações (4FN) violaria a propriedade 
da junção não aditiva, aparecendo os registos retirados como espúrios; 
• a DM Representante→→Produto | Cliente, deixa de ser verdadeira. 
 
As DM são uma tentativa de detectar decomposições sem perdas que se apliquem 
a todas as relações de um dado esquema. Se não é possível reconhecer qualquer 
DM em R, não existe decomposição sem perdas em duas relações. 
 
No entanto, o facto de R não se decompor sem perdas em 2 relações não significa 
que R não se decompõe sem perdas em 3 ou mais relações. Isto porque existem 
dependências directamente associadas a decomposição sem perdas, 
denominadas dependências de junção. 
 
Dependências de Junção (DJ) 
Uma DJ, representada por DJ(R1, R2, ..., Rp) ou por *[R1, R2, ..., Rp], especifica 
uma restrição das instâncias de R, e define que as instâncias de R têm uma 
decomposição sem perdas em R1, R2, ... e Rp. 
 
Note-se que, uma DM X→→Y é um caso particular de uma DJ com p=2 
representada por *[ XY , X ( R - XY )] 
 
2.4 -TM Dados: Dependências entre atributos e normalização 33 
Dependências de Junção e 5ªForma Normal (5FN) ou Forma 
Normal de Projecção Junção (FNPJ) 
Com a introdução de uma restrição que indica que uma dada loja só vende certos 
produtos é necessário definir a seguinte DJ[R1, R2, R3] sendo: 
R1(Representante, Cliente), R2(Representante, Produto) e R3(Cliente, Produto). 
 
Clientes_Representante Representação Vendas_Clientes 
Represen. Cliente Represen. Produto Cliente Produto 
Martins Sá e filhos Martins Louça Sá e filhos Louça 
Martins DMI, Lda Martins Talheres Sá e filhos Cintos 
Castro Sá e filhos Castro Cintos Sá e filhos Lenços 
Castro YSL Castro Meias DMI, Lda Louça 
 Castro Lenços DMI, Lda Talheres 
 YSL Meias 
 YSL Lenços 
 
A junção deve ser aplicada, simultaneamente, a todas as relações, pois a junção de 
qualquer par de relações pode dar origem a registos espúrios. 
 
 
A aplicação da 5FN consiste em encontrar a DJ *[R1, R2, ..., Rp] que permite 
decompor uma relação sem perdas. 
 
Note-se que, os casos que necessitam da 5FN são raros e difíceis de detectar, pois 
resultam da existência de regras ou condições especiais, que tornam algumas 
instâncias inválidas.

Outros materiais