Vous êtes sur la page 1sur 31
D e p e n d ê n c i a F u n c
D e p e n d ê n c i a F u n c
D e p e n d ê n c i a
F u n c i o n a l
e Normalizações

Prof. Alexandre Denes

Monday, May 2, 2011

D e p e n d ê n c i a F u n c i

Monday, May 2, 2011

Uma tabela (relação) é composta de colunas (atributos).

Cada relação deve ser interpretada como um conjunto de fatos.

A semântica deve ser explicada em termos das relações e não dos atributos da relações

como um conjunto de fatos. A semântica deve ser explicada em termos das relações e não

Diretriz

Diretriz Projetar um esquema de relação de maneira que seja simples descrever seu significado. • Não

Projetar um esquema de relação de maneira que seja simples descrever seu significado.

Não misturar atributos de múltiplas entidades em uma única relação

seu significado. • Não misturar atributos de múltiplas entidades em uma única relação Monday, May 2,

Monday, May 2, 2011

seu significado. • Não misturar atributos de múltiplas entidades em uma única relação Monday, May 2,

Anomalia de Inserção

Anomalia de Inserção Para inserir uma nova tupla em EMP_DEPT, deve-se incluir os valores do departamento,

Para inserir uma nova tupla em EMP_DEPT, deve-se incluir os valores do departamento, garantindo que esses valores serão consistentes com os outros valores de outras tuplas que se referem ao mesmo departamento.

Para inserir um novo departamento sem empregados, é necessário inserir null nos dados do empregado, o que não é possível porque NSS é chave primária.

inserir null nos dados do empregado, o que não é possível porque NSS é chave primária.

Monday, May 2, 2011

Anomalia de Remoção

Anomalia de Remoção Se for removido o último empregado de um departamento, os dados desse departamento

Se for removido o último empregado de um departamento, os dados desse departamento serão perdidos.

Monday, May 2, 2011

Se for removido o último empregado de um departamento, os dados desse departamento serão perdidos. Monday,

Anomalia de Modificação

Anomalia de Modificação Se o gerente de um departamento mudar, isso terá de ser feito em

Se o gerente de um departamento mudar, isso terá de ser feito em todas as tuplas de empregados referentes àquele departamento, ou a base se tornará inconsistente.

Monday, May 2, 2011

em todas as tuplas de empregados referentes àquele departamento, ou a base se tornará inconsistente. Monday,

Diretriz

Diretriz Projetar esquemas que quando aplicadas operações join-naturais não sejam geradas tuplas espúrias Monday, May

Projetar esquemas que quando aplicadas operações join-naturais não sejam geradas tuplas espúrias

Projetar esquemas que quando aplicadas operações join-naturais não sejam geradas tuplas espúrias Monday, May 2, 2011

Monday, May 2, 2011

Projetar esquemas que quando aplicadas operações join-naturais não sejam geradas tuplas espúrias Monday, May 2, 2011

Diretriz

Diretriz Eviter criar atributos cujos valores possam ser null Isso causa vários problemas: - Funções agregadoras

Eviter criar atributos cujos valores possam ser null

Isso causa vários problemas:

- Funções agregadoras tem problemas com null

- Múltiplas interpretações do que significa null:

- Não pode ser aplicado?

- É desconhecido?

- Vai ser preenchido ainda?

Monday, May 2, 2011

do que significa null: - Não pode ser aplicado? - É desconhecido? - Vai ser preenchido

E como fazer?

E como fazer? A chave formal para aplicação dessas diretrizes no projeto de relações estão nos

A chave formal para aplicação dessas diretrizes no projeto de relações estão nos conceitos de Dependência Funcional e Normalização

Monday, May 2, 2011

diretrizes no projeto de relações estão nos conceitos de Dependência Funcional e Normalização Monday, May 2,

Monday, May 2, 2011

Seja R uma variável de relação (tabela), e sejam X e Y subconjuntos arbitrários do conjunto de atributos de R. Então, dizemos que Y é funcionalmente dependente de X

X Y

se, e somente se, em todo valor possível de R, cada valor X tem associado a ele exatamente um valor Y.

Diz-se então que X determina funcionalmente Y.

possível de R , cada valor X tem associado a ele exatamente um valor Y. Diz-se

Exemplo

Exemplo   RE MESSA   ID CIDADE JID QDE 1 Londres 1 100 1 Londres 2
 

RE MESSA

 

ID

CIDADE

JID

QDE

1

Londres

1

100

1

Londres

2

100

2

Paris

1

200

2

Paris

2

200

3

Paris

2

300

4

Londres

2

400

4

Londres

4

400

4

Londres

5

400

Monday, May 2, 2011

ID,JID QDE ID,JID CIDADE ID,JID CIDADE,QDE ID,JID ID ID,JID ID,CIDADE,JID,QDE ID QDE QDE ID

ID,JID → CIDADE ID,JID → CIDADE,QDE ID,JID → ID ID,JID → ID,CIDADE,JID,QDE ID → QDE QDE
ID,JID → CIDADE ID,JID → CIDADE,QDE ID,JID → ID ID,JID → ID,CIDADE,JID,QDE ID → QDE QDE
ID,JID → CIDADE ID,JID → CIDADE,QDE ID,JID → ID ID,JID → ID,CIDADE,JID,QDE ID → QDE QDE

Exemplo

Exemplo Emprestimo = (nome_agência, número_empréstimo,nome_cliente,total) Queremos garantir nesse esquema as DFs

Emprestimo = (nome_agência, número_empréstimo,nome_cliente,total)

Queremos garantir nesse esquema as DFs

número_empréstimo total número_empréstimo nome_agência

Mas não queremos a DF número_empréstimo nome_cliente

Monday, May 2, 2011

número_empréstimo → nome_agência Mas não queremos a DF número_empréstimo → nome_cliente Monday, May 2, 2011

DFs Triviais e Não Triviais

DFs Triviais e Não Triviais Uma DF é dita trivial se, e somente se, o lado

Uma DF é dita trivial se, e somente se, o lado direito é um subconjunto do lado esquerdo.

ID,PID ID

Como o nome indica, DFs triviais não tem interesse prático e portanto, podem ser eliminadas do conjunto de DFs em análise.

Monday, May 2, 2011

triviais não tem interesse prático e portanto, podem ser eliminadas do conjunto de DFs em análise.

Monday, May 2, 2011

Algumas dependências podem implicar outras:

ID,PID cidade,qde

implica em

ID,PID cidade ID,PID qde

2011 Algumas dependências podem implicar outras: ID,PID → cidade,qde implica em ID,PID → cidade ID,PID →

Fecho de DF

Fecho de DF O conjunto de todas as DFs implicadas por um determinado conjunto S de

O conjunto de todas as DFs implicadas por um determinado conjunto S de DFs é chamado fecho de S, representado por S +

As regras pelas quais novas DFs podem ser inferidas são conhecidas como Axiomas de Armstrong

Assim, sejam A, B e C subconjuntos arbitrários dos atributos de R, o seguinte se aplica:

Armstrong Assim, sejam A, B e C subconjuntos arbitrários dos atributos de R, o seguinte se

Monday, May 2, 2011

Axiomas de Armstrong

Axiomas de Armstrong Reflexividade (trivialidade) Se B é um subconjunto de A, então Monday, May 2,

Reflexividade (trivialidade)

Se B é um subconjunto de A, então

Monday, May 2, 2011

A B

Axiomas de Armstrong Reflexividade (trivialidade) Se B é um subconjunto de A, então Monday, May 2,

Axiomas de Armstrong

Axiomas de Armstrong Aumento Se então A → B AC → BC Onde XY denota a

Aumento

Se

então

A B

AC BC

Onde XY denota a união de X com Y

Monday, May 2, 2011

Axiomas de Armstrong Aumento Se então A → B AC → BC Onde XY denota a

Axiomas de Armstrong

Axiomas de Armstrong Transitividade Se A → B e B → C então Monday, May 2,

Transitividade

Se

A B e B C

então

Monday, May 2, 2011

A C

Axiomas de Armstrong Transitividade Se A → B e B → C então Monday, May 2,

Axiomas de Armstrong

Axiomas de Armstrong Autodeterminação Monday, May 2, 2011 A → A

Autodeterminação

Monday, May 2, 2011

A A

Axiomas de Armstrong Autodeterminação Monday, May 2, 2011 A → A

Axiomas de Armstrong

Axiomas de Armstrong Decomposição Se então A → BC A → B e A → C

Decomposição

Se

então

A BC

A B e A C

Monday, May 2, 2011

Axiomas de Armstrong Decomposição Se então A → BC A → B e A → C

Axiomas de Armstrong

Axiomas de Armstrong União Se A → B e A → C então Monday, May 2,

União

Se

A B e A C

então

Monday, May 2, 2011

A BC

Axiomas de Armstrong União Se A → B e A → C então Monday, May 2,

Axiomas de Armstrong

Axiomas de Armstrong Composição Se A → B e C → D então Monday, May 2,

Composição

Se

A B e C D

então

Monday, May 2, 2011

AC BD

Axiomas de Armstrong Composição Se A → B e C → D então Monday, May 2,

Axiomas de Armstrong

Axiomas de Armstrong Exercício: Sejam as DFs A → BC B → E CD → EF

Exercício: Sejam as DFs

A BC B E CD EF

mostre que

AD F

é uma DF válida

Monday, May 2, 2011

Exercício: Sejam as DFs A → BC B → E CD → EF mostre que AD

Monday, May 2, 2011

Sejam S 1 e S 2 dois conjuntos de DFs. Se toda DF implicada por S 1 for implicada por S 2 (S 1 + S 2 + ), dizemos que S 2 cobre S 1 , ou seja, impondo das restrições S 2 no SGBD estaremos automaticamente impondo as restrições S 1 .

S 1 , ou seja, impondo das restrições S 2 no SGBD estaremos automaticamente impondo as

Conjuntos Irredutíveis

Conjuntos Irredutíveis Adicionalmente, se S 1 cobre S 2 e S 2 cobre S 1 ,

Adicionalmente, se S 1 cobre S 2 e S 2 cobre S 1 , dizemos que S 1 e S 2 são equivalentes

Monday, May 2, 2011

S 1 + = S 2 +

e S 2 cobre S 1 , dizemos que S 1 e S 2 são equivalentes

Conjuntos Irredutíveis

Conjuntos Irredutíveis Um conjunto S de DFs é dito irredutível se, e somente se, satisfaz às

Um conjunto S de DFs é dito irredutível se, e somente se, satisfaz às propriedades:

1. O lado direito de cada DF em S contém apenas um atributo

2. O lado esquerdo de cada DF em S é irredutível (nenhum atributo pode ser descartado sem mudar o fecho S + )

3. Nenhuma DF pode ser descartada de S sem alterar o fecho S +

Monday, May 2, 2011

descartado sem mudar o fecho S + ) 3. Nenhuma DF pode ser descartada de S

Conjuntos Irredutíveis

Conjuntos Irredutíveis Pode-se afirmar que para todo conjunto de DFs, existe pelo menos um conjunto equivalente

Pode-se afirmar que para todo conjunto de DFs, existe pelo menos um conjunto equivalente que é irredutível.

A partir das DFs do conjunto irredutível, as derivações na forma X A onde A é o conjunto de todos os atributos de R são as chaves candidatas de R.

Monday, May 2, 2011

na forma X → A onde A é o conjunto de todos os atributos de R

Procedimento

Procedimento Suponha a relação R com os atributos A, B, C, D e as DFs: A

Suponha a relação R com os atributos A, B, C, D e as DFs:

A BC

B C

A B

AB C AC D

Monday, May 2, 2011

R com os atributos A, B, C, D e as DFs: A → BC B →

Procedimento

Procedimento Passo 1: reescrever as DFs de modo que cada uma tenha um lado direito unitário.

Passo 1: reescrever as DFs de modo que cada uma tenha um lado direito unitário.

Passo 2: Eliminar redundâncias até não ser possível eliminar mais nada.

O resultado é o conjunto irredutível.

Monday, May 2, 2011

redundâncias até não ser possível eliminar mais nada. O resultado é o conjunto irredutível. Monday, May

Conjuntos Irredutíveis

Conjuntos Irredutíveis Seja R{A,B,C,D,E} e os conjuntos de DFs: DF1: A → B, AB → C,

Seja R{A,B,C,D,E} e os conjuntos de DFs:

DF1: A B, AB C, DAC, D E DF2: A BC, D AE Eles são equivalentes?

Seja Horário definida com os atributos

D

- Dia da Semana (1 a 5)

H

- Horário no dia (1 a 4)

S

- Sala de aula

P

- Nome do Professor

C

- Nome da Cadeira

Quais as dependências funcionais válidas? Quais a chaves candidatas?

C - Nome da Cadeira Quais as dependências funcionais válidas? Quais a chaves candidatas? Monday, May

Monday, May 2, 2011

Obrigado!
Obrigado!

denes. com

br

Obrigado! denes. com br @alexandredenes denes@denes.com.br Monday, May 2, 2011

@alexandredenesObrigado! denes. com br denes@denes.com.br Monday, May 2, 2011

Monday, May 2, 2011

Obrigado! denes. com br @alexandredenes denes@denes.com.br Monday, May 2, 2011