Você está na página 1de 46

Dependências Funcionais

e
Formas Normais

Formas Normais Pedro Sousa 1


Introdução
— As dependências funcionais e as formas normais estabelecem critérios
de qualidade de desenho no modelo Relacional.
— Permitem detectar e prevenir a redundância e garantir a coerência da
informação.
— Fundamenta-se nas dependências entre os atributos das relações

— Ao nível do modelo Relacional, deve ser usado para detectar eventuais


problemas associados à redundância e coerência da informação.
— Ao nível do modelo Entidade Associação, deve ser usado para
identifcar entidades e determinar os seus atributos.

Formas Normais Pedro Sousa 2


O problema da Redundância dos Dados

— A redundância dos dados tem implicações ao nível da coerência e da


completude da informação neles contidas
— São bem conhecidos os seguintes problemas, designados por
anomalias:
— Anomalia de inserção: quando os factos (conhecimento) independentes
não podem ser inseridos independentemente na base de dados.
— Anomalia de eliminação: quando se elimina uma instância de um facto,
perde-se instâncias de outros factos independentes.
— Anomalia de actualização: quando a actualização de um facto implica a
alteração de uma série de instâncias de outros factos independentes.

Formas Normais Pedro Sousa 3


Exemplo Introdutório
Consideremos a seguinte Entidade /Relação

Quantidade Encomenda
Nº Encomenda NºEncomenda | Nº Peça | Quantidade| Preço Unitário
| | |
Encomenda Nº da Peça
| | |

Preço Unitário

— Anomalia de inserção: Só podemos indicar o preço de cada peça se


existirem encomendas pendentes.
— Anomalia de eliminação: Ao eliminar uma encomenda, perde-se a
informação relativa ao preço de cada peça.
— Anomalia de actualização: A alteração do preço de uma peça implica a
alteração do mesmo em todas as encomendas existentes.

Formas Normais Pedro Sousa 4


Exemplo Introdutório
Dependências Funcionais

Quantidade Encomenda
Nº Encomenda NºEncomenda | Nº Peça | Quantidade| Preço Unitário
| | |
Encomenda Nº da Peça
| | |

Preço Unitário
Diagrama de Dependências Funcionais
— O problema reside nas relações de
dependências entre os atributos da Quantidade
Entidade/Relação:
— o Nº da encomenda determina Nº Nº Encomenda Preço Unitário
da peça, a Quantidade e o Preço
Unitário.
— O Nº da peça determina o Preço Nº Peça
Unitário.

Formas Normais Pedro Sousa 5


Diagrama de Dependências Funcionais
Outro Exemplo
Que informação está contida neste
Diagrama de Dependências Funcionais?
Nome-Director
Endereço-Armazém

Nome-Armazém

Peça Nº Nome-Fornecedor Nº-Encomenda

Data-Inventário De que modo essa informação


QuantidadeEntregue pode ser útil no desenvolvimento
de esquemas Relacionais ou
QuantidadeExistente mesmo Conceptuais (ER)?

Formas Normais Pedro Sousa 6


Dependência funcional
— Seja uma relação R com conjuntos de atributos X e Y:
Diz-se que X determina Y se para todo o valor
de X existe um só valor de Y.

— Por outras palavras, sempre que dois tuplos têm um valor de X comum,
têm também o valor de Y em comum.
— Diz-se também que X é determinante, e representa-se graficamente por
X-> Y.
— A dependência funcional é um questão semântica. Não pode ser deduzida
com base num conjunto de tuplos. Estes apenas podem confirmar que
determinada dependência não existe.
— X é uma super-chave se X->R, sendo R o conjunto de todos os atributos
da relação R

Formas Normais Pedro Sousa 7


Propriedades das Dependências Funcionais
(regras de Armstrong)

— Reflexividade
— Se Y está contido em X, então X-> Y

— Incremento
— Se X -> Y, então X Z -> YZ

— Transitividade
— Se X -> Y e Y -> Z, então X-> Z

Formas Normais Pedro Sousa 8


Regras Derivadas

— Auto-Reflexividade
— X -> X

— Decomposição
— Se X -> Y Z, então X-> Y e X -> Z

— União
— Se X-> Y e X -> Z então X -> YZ

— Composição
— Se X-> Y e A -> B então XA -> YB

Formas Normais Pedro Sousa 9


Dependência total e atributos chaves

• Seja X um atributo e Y o conjunto de atributos { y1, y2, ...yn} tal


que {y1, y2, ...yn} determina X, i.e. {y1, y2, ...yn} -> X
•Dizemos que X é completamente dependente de Y, se qualquer
subconjunto dos elementos de Y não determina X.
•Dizemos que X é um atributo chave se pertence ao
identificador da Entidade ou à chave primária da Relação

Formas Normais Pedro Sousa 10


As Formas Normais

1 Forma Normal

2 Forma Normal
3 Forma Normal
Forma Normal Boyce Codd
4 Forma Normal

5 Forma Normal

Formas Normais Pedro Sousa 11


As Formas Normais

Seja uma entidade (ou associação) X com atributos


{i1,..,in, a1,...,am}
Seja {i1,..,in} os atributos que constituem a chave de X.

— A 1ª Forma Normal prende-se com a estrutura de cada atributo de


X.
— A 2ª Forma Normal prende-se com a dependência entre os
atributos {a1,...,am} e os atributos {i1,..,in}.
— A 3ª Forma Normal prende-se com as dependências mútuas entre
os atributos {a1,...,am}.
— A BCNF prende-se com a existência de várias chaves

Formas Normais Pedro Sousa 12


1ª Forma Normal

Uma relação está na 1ª Forma normal se todos os seus


atributos são valores escalares.

— Todas as relações “normalizadas” estão na 1ª Forma Normal


“Relação” não Normalizada Relação Normalizada

Pessoa Residência Pessoa Cidade Data


Cidade Data João Lisboa
João Lisboa 01-02-92 01-02-92
Faro 11-12-94 João Faro 11-12-94

Zé Cidade Data
Zé Lisboa 10-10-84
Lisboa 10-10-84

Formas Normais Pedro Sousa 13


Problemas com a 1ª Forma Normal
Exemplo
— A 1ª FN não assegura a resolução do problema das anomalias!

ID_Pessoa | Projecto | OrçamentoProjecto | TempoGastoProjecto


| | |
| | |

ID_Pessoa TempoGastoProjecto

Projecto
OrçamentoProjecto

— Esta relação está na 1ª FN mas apresenta as anomalias de inserção, de


actualização e de eliminação!

Formas Normais Pedro Sousa 14


Eliminação das Anomalias
do Exemplo Anterior
— A eliminação das anomalias implica a fragmentação da relação inicial
em duas novas relações
ID_Pessoa | Projecto | TempoGastoProjecto Projecto | OrçamentoProjecto
| | |
| | |

ID_Pessoa Projecto OrçamentoProjecto

Projecto
TempoGastoProjecto

— Estas relações já não têm as anomalias !

Formas Normais Pedro Sousa 15


A 1ª Forma Normal e os Modelos Conceptuais

— Qual a relação entre os atributos multivalor, os atributos compostos e


a 1ª Forma Normal ?
Nº Encomenda

Nr-da-Peça
Identificação
Ano
Encomenda

— Em ambos os casos, os atributos Nr-da-Peça e identificação não são


atributos escalares!
— Esta é a razão pela qual a conversão ER para Relacional implica a
conversão dos atributos multivalor e compostos em atributos simples

Formas Normais Pedro Sousa 16


A 2ª Forma Normal
Uma Relação está na 2ª Forma normal se está na 1ª
Forma Normal e cada atributo não chave é
irredutivelmente dependente dos atributos chave.

— Ou seja, todos os atributos que não pertencem a nenhuma chave são


irredutivelmente dependentes de pelo menos uma chave.
— Todas as relações na 1FN e com uma chave simples estão
necessariamente na 2FN.
— Nada se diz quanto às dependências mútuas entre os atributos que
pertencem às chaves.
— Nada se diz quanto às dependências mútuas entre os atributos que não
pertencem às chaves.

Formas Normais Pedro Sousa 17


2ª Forma Normal
Exemplo 1

Consideremos a Relação R(A,B,C,D) e a dependência A -> D


(as dependências AB ->C e AB ->D são implícitas)

— Esta relação não está na 2ª FN.


— A decomposição da relação R com vista à 2ª FN passa por criar as
seguintes Relações:

— R1(A,B,C) com a dependência AB -> C


— R2(A,D) com a dependência A -> D

cada atributo não chave é irredutivelmente dependente dos


atributos chave

Formas Normais Pedro Sousa 18


2ª Forma Normal - Exemplo 2

Estudante Nº
Estudante Nº

Professor
Exame Exame
Nota Nota

Cadeira Nome Professor


Cadeira
Nome
Exame não está na 2FN Exame está na 2FN

Exame( Nº-Estudante,Nome-Cadeira, Professor,Nota)

Dependências da relação Exame:


Nº-Estudante, Nome-Cadeira Professor,Nota
Nome-Cadeira Professor
O atributo Professor não pode ser atributo de Exame!

Formas Normais Pedro Sousa 19


2ª Forma Normal – Exemplo 3
— Cada encomenda refere-se apenas a uma quantidade de uma única
peça.Considere a Relação (ou Entidade) Encomenda.

Encomenda(NrEncomenda, NºPeça,PreçoUnitário,
Quantidade Quantidade,PreçoTotal)
NrEncomenda

Encomenda Nº da Peça Preço Total

Preço Unitário Quantidade


NrEncomenda
Preço Total Preço Unitário

— Esta Entidade/Relação está na 2ª Forma Normal ? Nº Peça

Formas Normais Pedro Sousa 20


Problemas com a 2ª Forma Normal
— As 2ª Forma Normal não garante a
não redundância da informação,
sendo portanto possível que os
problemas das anomalias existam Preço Total
também nas relações na 2FN.
— Por exemplo, a informação sobre
o preço de cada peça. Quantidade
NrEncomenda
— A redundância surge devido às Preço Unitário
dependências entre os atributos
não chave.
Nº Peça

Formas Normais Pedro Sousa 21


Eliminação das Anomalias

— A eliminação das anomalias implica a eliminação das dependências entre os


atributos não chave.
— Tal implica a decomposição da Entidade/Relação original em duas.

Preço Total
Preço Total
Quantidade
NrEncomenda
Quantidade
Nº Peça
NrEncomenda
Preço Unitário

Nº Peça Nº Peça Preço Unitário

Está na 2FN Estão na 2FN

Formas Normais Pedro Sousa 22


A 3ª Forma Normal
Uma Relação está na 3ª Forma normal
se todos os atributos não chave são completamente
dependentes dos atributos chave
e são independentes entre si.
— Ou seja, a 3FN implica a 2FN e que não existam dependências entre
os atributos não chave.
— Todos os atributos não chave são não-transitivamente dependentes da
chave primária
— Todas as relações que apenas têm um atributo não chave estão na 3FN,
se estiverem na 2FN.
— Nada se diz quanto às dependências mútuas entre os atributos que
pertencem às chaves.

Formas Normais Pedro Sousa 23


3ª Forma Normal: Exemplo 1

Consideremos a Relação R(A,B,C) e a dependência B-> C

— Esta relação não está na 3ª FN.


— A decomposição da relação R com vista à 3ª FN passa por criar as
seguintes Relações:

— R1(B,C) com a dependência B -> C


— R2(A,B) com a dependência A -> B

cada atributo não chave é completamente independente dos


restantes atributos não chave

Formas Normais Pedro Sousa 24


3ª Forma Normal: Exemplo 2

Nº Empregado
Nº Empregado Empregado
Nome
Nome Do
Empregado Departamento
v
Departamento Departamento
Divisão
Chefe Da
Chefe
Divisão
não está na 3FN Divisão
Nº Empregado Nome, Departamento, Divisão,Chefe
Departamento Divisão está na 3FN
Divisão Chefe

Formas Normais Pedro Sousa 25


3ª Forma Normal: Exemplo 3
Nº Empregado

Empregado Nome
Nº Horas Nº Projecto
Nº Horas
Trabalha Orçamento
Trabalha Projecto
Nº Projecto
Orçamento
Departamento Nº Departamento
Piso

Trabalha( Nº Empregado, Nº Departamento, Orçamento, Nº Horas, Nº Projecto)

Trabalha não está na 3FN, porque Projecto determina Orçamento e não é chave
Nº Empregado, Nº Departamento Orçamento, Nº Horas, Nº Projecto
Nº Projecto Orçamento

Formas Normais Pedro Sousa 26


Problemas com a 3ª Forma Normal

Seja a Entidade/Relação X
— Os problemas da 3FN surgem quando:
com os seguintes atributos — Existem dependências entre os atributos
e chaves das chaves, por exemplo:
a1
a2 a3 a1 chavesa1 a3
— Existem várias compostas, com
X a3 pelo menos um atributo comum, por
exemplo:
a4

a1,a2 a3,a4
X(a1, a2, a3, a4)
a3,a2 a1,a4

Formas Normais Pedro Sousa 27


Problemas com a 3ª Forma Normal: Exemplo
Relação Usa
Director
Projecto | Director | Peça | Quantidade
| | |
Peça
| | |
Quantidade
Projecto
Problemas:

— O director de cada projecto é armazenado várias


vezes Estes problemas resultam de:
• peça ser partilhada por
— O director de um projecto só é armazenado quando o
determinantes, e
projecto encomendar peças
• dependência entre Director e
— Um projecto não pode ser armazenado enquanto o Projecto
seu director não for conhecido
— A mudança de um director de um projecto implica a
mudança de vários tuplos

Formas Normais Pedro Sousa 28


A Forma Boyce Codd
(BCNF)

Uma Relação está na BCNF quando todos os determinantes são chave

— Não existem dependências entre os atributos não chave

— Não existem dependências entre sub-conjuntos dos atributos das


chaves.

— A BCNF só se distingue da 3FN quando:


— Existe mais do que uma chave
— As chaves são formadas por vários atributos

Formas Normais Pedro Sousa 29


Exemplo -1
Chaves Disjuntas

— Seja a Relação Fornecedor :


F# Estado
Fornecedor (F#, Nome, Estado, Cidade)
Nome Cidade

— Em que FN esta Relação está ?


— Que anomalias são possíveis na relação Fornecedor ?
— Que inconvenientes resultam da existência de 2 chaves
candidatas ?

Formas Normais Pedro Sousa 30


Exemplo - 2
Chaves Sobrepostas

— Seja a Relação Venda :


F#
Venda (F#, P#, Fnome,Quantidade) Quantidade
P#

FNome
— Em que FN esta Relação está ?
— Que anomalias são possíveis na relação ?
— Quais são as decomposições mais convenientes ?

Formas Normais Pedro Sousa 31


Exemplo -3

— Seja a Relação Aulas :


Aluno
Professor
Aulas (Disciplina,Professor,Aluno)
Disciplina

— Em que FN esta Relação está ?


— Que anomalias são possíveis na relação ?
— Quais são os inconvenientes das seguintes decomposições ?
— V1 (Aluno,Professor) e V2 (Professor,Disciplina)
— V1 (Aluno,Disciplina) e V2 (Professor,Disciplina)
— V1 (Aluno,Disciplina) e V2 (Professor,Aluno)

Formas Normais Pedro Sousa 32


Notas sobre a decomposição de Relações/Entidades

— A decomposição de uma relação ou entidade com vista à


sua normalização pode implicar a perda de informação.

O Problema da Perda de Informação


— Entre as decomposições que não implicam a perda de
informação, importa decidir sobre a mais correcta.

O Problema da Perda das Dependências

Formas Normais Pedro Sousa 33


Decomposição com perdas de informação
— Seja R1(A,B,C), e A-> B e C-> B.
— Consideremos a decomposição de R1 em R2(A,B) e R3(B,C) ,e a sua
posterior restituição em R´1. Existe perda de informação!

R´1
R3
A |B |C
R1 A |B |C
a1 | b1 | c1
B |C
a1 | b1 | c1 Decomposição a1 | b1 | c2
R2 b1 | c1
a3 | b1 | c2 a3 | b1 | c1
A |B b1 | c2
a2 | b2 | c3 a3 | b1 | c2
a1 | b1 b2 | c3
a4 | b2 | c4 a2 | b2 | c3
a3 | b1 b2 | c4 Junção
a2 | b2 | c4
a2 | b2
a4 | b2 | c3
a4 | b2
a4 | b2 | c4
Formas Normais Pedro Sousa 34
Decomposição sem perdas de informação

— A decomposição de uma relação diz-se sem perdas


(lossless-join decomposition) quando esta pode ser obtida a
partir do join natural das relações resultantes da
decomposição

— A decomposição de uma relação R(X,Y,Z) (em que X, Y,


Z são conjuntos de atributos) em R1(X,Y) e R2(X,Z) é
sem perdas se X->Y ou se X->Z. (Teorema de Heath´s)

Formas Normais Pedro Sousa 35


Decomposição sem perdas de Informação: Exemplo

R1: X-> Y, X-> Z, YZ-> X


R3: X-> Z
X |Y |Z R´1
X |Z
x1 | y1 | z1 Decomposição
x1 | z1 X |Y |Z
x2 | y2 | z2 R2: X-> Y
x2 | z2 x1 | y1 | z1
x3 | y2 | z1 X |Y
x3 | z1 x2 | y2 | z2
x4 | y1 | z2 x1 | y1
x4 | z2 x3 | y2 | z1
x2 | y2 Junção
x4 | y1 | z2
x3 | y2
x4 | y1

Formas Normais Pedro Sousa 36


Exemplos de Decomposições

— Seja a Relação
Fornecedor (F#, Estado, Cidade).

— Decomposição 1
F1 (F#, Estado) e F2(F#,Cidade)

— Decomposição 2
F1 (F#, Estado) e F2(Cidade,Estado)

— A 1ª não implica perdas, enquanto na segunda perde-se a


dependência F# ->Cidade
Formas Normais Pedro Sousa 37
Exemplo (1)

— Encomenda não está na 1FN.


— Porquê ?
— Quais são as anomalias que se podem verificar?

Codigo-Peça
Preço

Item NrEncomenda

Quantidade
Data
Encomenda
NrCliente

NomeCliente

Formas Normais Pedro Sousa 38


Exemplo (2)

— Este esquema está na 1FN, mas não está na 2FN.


— Porquê ?
— Quais são as anomalias que se podem verificar?

PreçoUnitário NrItem NrEncomenda

Detalhe Da Encomenda
Data

Quantidade NrCliente

NomeCliente

Detalhe(NrItem, NrEncomenda,PreçoUnitário, Quantidade)


Encomenda(NrEncomenda,Data,NrCliente,NomeCliente)

Formas Normais Pedro Sousa 39


Exemplo (3)
— Este esquema está na 2FN, mas não está na 3FN.
— Porquê ?
— Quais são as anomalias que se podem verificar?

Quantidade NrEncomenda

Item Detalhe Encomenda


Data

NrCliente
PreçoUnitário NrItem
NomeCliente

Detalhe(NrItem, NrEncomenda, Quantidade)


Item(NrItem, PreçoUnitário)
Encomenda(NrEncomenda,Data,NrCliente,NomeCliente)

Formas Normais Pedro Sousa 40


Exemplo (4)
— Este esquema está na 3FN

Quantidade NrEncomenda

Item Detalhe Encomenda


Data

PreçoUnitário Do
NrItem

Cliente
NrCliente
Detalhe(NrItem, NrEncomenda,PreçoUnitário, Quantidade)
NomeCliente
Item(NrItem, PreçoUnitário)
Encomenda(NrEncomenda,Data,NrCliente)
Cliente(NrCliente,NomeCliente)

Formas Normais Pedro Sousa 41


Formas Normais: Exercício 1

A B D Qual o Identificador ?
E1 B Em que FN está ?
AB C
C
D

A AB CE Qual o Identificador ?
E2 B Em que FN está ?
E AB
C
D C D
E

Formas Normais Pedro Sousa 42


Formas Normais: Exercício 2

A B D Qual o Identificador ?
E3 B Em que FN está ?
D B
C
ABD C
D

A A BCD Qual o Identificador ?


E4 B Em que FN está ?
B ACD
C
CD AB
D

Formas Normais Pedro Sousa 43


Exercício 3

Considere a relação R(a,b,c,d,e), em que {a,b} é a chave primária e


d->e .

- Indique todas as dependências da relação R.

- Qual a forma normal da relação R?

- Assuma agora que a chave primária R é {a,b,d}. Em que forma


normal a relação R passa a estar?

Formas Normais Pedro Sousa 44


Exercício 4
Considere a relação R(a,b,c,d), em que {a,b} é a chave primária.

- Indique uma dependência funcional entre os atributos de R de


forma a que R não esteja na 2ª forma normal.

- Indique uma dependência funcional entre os atributos de R de


forma a que R esteja na 2ª forma normal mas não esteja na 3ª
forma normal.

- Indique uma dependência funcional entre os atributos de R de


forma a que R esteja na 3ª forma normal mas não esteja na Boyce
Codd.

Formas Normais Pedro Sousa 45


Exercício 5

— Considere a relação R (a,b,c) e a sua decomposição nas


relações R1(b,c) e R2(a,c).

- Qual ou quais as dependências que têm necessariamente


que existir entre os atributos a, b e c para que a
decomposição de R em R1 e R2 não represente perda de
informação?

- Assumindo a existência da ou das dependências anteriores,


escreva uma expressão em álgebra relacional que permita
reconstituir R a partir de R1 e R2 ?

-
Formas Normais Pedro Sousa 46

Você também pode gostar