Vous êtes sur la page 1sur 13

Dependncias Funcionais e

Fernando Lobo
Base de Dados, aula 8

1 / 26

Motivao: Normalizao ca ca

Por vezes o esquema relacional tem falhas. Geralmente so derivadas de falhas no modelo conceptual. a Vamos aprender a teoria de Normalizao de relaes, a ca co qual permite eliminar certo tipo de falhas.

2 / 26

Exemplo

Filmes1( nome, ano, durao, nomeEstdio, moradaEstdio ) ca u u


nome Star Wars Empire Strikes Back Gone With the Wind Lion King Return of the Jedi Pocahontas ano 1977 1980 1939 1994 1983 1995 durao ca 124 143 181 124 165 115 nomeEstdio u Fox Fox Paramount Disney Fox Disney moradaEstdio u 10 Elm St., Los Angeles 10 Elm St., Los Angeles 44 Pine St., Los Angeles 56 Oak St., Los Angeles 10 Elm St., Los Angeles 56 Oak St., Los Angeles

Qual o problema desta relao? ca

3 / 26

Problemas

1. Redundcia a
a morada de um estdio aparece repetida vrias vezes. u a

2. Pode dar origem a anomalias em updates.


ex: actualizar a morada no 1o tuplo e no o fazer no 2o e 5o a tuplo.

3. Pode dar origem a anomalias em deletes.


ex: se apagarmos o lme Gone With the Wind, o estdio u Paramount desaparece da BD!

4 / 26

Normalizao ca

Estudo de Normalizao de relaes permite-nos decompor ca co uma relao em vrias relaes de modo a que no haja este ca a co a tipo de anomalias. Antes de aprender a faz-lo, precisamos de aprender o e conceito de Dependncia Funcional. e

5 / 26

Dependncias Funcionais e

Generalizao do conceito de chave. ca Notao: X Y ca Signicado: se xarmos valores para os atributos X , os valores dos atributos Y so unicos (i.e., no h repetidos). a a a
Nota: X e Y so conjuntos de atributos. a Usaremos . . ., X , Y , Z para representar conjuntos de atributos; A, B, C , . . . para atributos individuais. Por vezes vamos omitir o uso de chavetas para representar conjuntos, i.e. usaremos ABC em vez de {A,B,C }.

6 / 26

No nosso exemplo . . .

Filmes1( nome, ano, durao, nomeEstdio, moradaEstdio ) ca u u


nome Star Wars Empire Strikes Back Gone With the Wind Lion King Return of the Jedi Pocahontas ano 1977 1980 1939 1994 1983 1995 durao ca 124 143 181 124 165 115 nomeEstdio u Fox Fox Paramount Disney Fox Disney moradaEstdio u 10 Elm St., Los Angeles 10 Elm St., Los Angeles 44 Pine St., Los Angeles 56 Oak St., Los Angeles 10 Elm St., Los Angeles 56 Oak St., Los Angeles

nome ano durao nomeEstdio moradaEstdio ca u u nomeEstdio moradaEstdio u u

7 / 26

Denio independente da instncia ca e a

A denio de DF independente da instncia da relao. ca e a ca Uma DF uma assero que obedecida por todas as e ca e poss veis instncias de uma relao. a ca O mesmo acontece com o conceito de chave.

8 / 26

Chaves e Superchaves

X uma superchave da relao R se: e ca


X todos os atributos de R.

X uma chave da relao R, se nenhum subconjunto prprio e ca o de X for superchave de R (i.e., X uma superchave e m nima). X chave de R X superchave de R. e e

9 / 26

Exemplo

Filmes1( nome, ano, durao, nomeEstdio, moradaEstdio ) ca u u Com DFs: nome ano durao nomeEstdio moradaEstdio ca u u nomeEstdio moradaEstdio u u {nome,ano} chave de Filmes1. Porqu? e e Quantas superchaves h na relao Filmes1? a ca

10 / 26

DFs triviais

X Y trivial se Y X e Exemplos
nome ano nome nome nome

11 / 26

Regras sobre DFs

X A1 A2 . . . An E equivalente a:
X A1 X A2 ... X An

Em ingls, Splitting Rule. e

12 / 26

No se pode fazer o mesmo do lado esquerdo a

Exemplo: nome ano durao ca no equivalente a: a e


nome durao ca ano durao ca

Porqu? e

13 / 26

Regras sobre DFs (cont.)

Transitividade: Se X Y e Y Z , ento X Z . a Augmentation: Se X Y , ento XZ Y . a

14 / 26

De onde vm as DFs e

1. Chaves obtidas no modelo conceptual. 2. Relaes muitos-um. co 3. Conhecimento do problema.

15 / 26

Exemplo: casos 1 e 2

ano

duracao aCores

nome

morada

nome Filmes produzido por Estudios

Filmes( nome, ano, durao, aCores, nomeEstdio ) ca u nome ano durao aCores ca nome ano nomeEstdio u

16 / 26

Exemplo: conhecimento sobre o problema (caso 3)

No pode haver 2 disciplinas que funcionam no mesmo dia da a semana, ` mesma hora, e na mesma sala. a
sala dia hora disciplina

17 / 26

Fecho de um conjunto de atributos

Notao: o fecho de X designa-se por X + . ca Signicado: X + o conjunto de todos os atributos que so e a funcionalmente determinados por X . Algoritmo para calcular X + :
1. X + = X 2. Se A1 , A2 , . . . , Am B, e todos os A s esto contidos em X + , a + adicionar B a X . 3. Termina quando no conseguirmos adicionar mais nada a X + . a

18 / 26

Exemplo
Dada a relao R(ABCDEF ) com as seguintes DFs: ca
AB C BC A BC D DE CF B

(AB)+

= = = = =

? AB ABC ABCD ABCDE

// porque AB C // porque BC D // porque D E

19 / 26

Projeco de DFs ca

Nota: Projeco = eliminar algumas colunas. ca Motivao: Normalizao, o processo de partir um esquema ca ca relacional em 2 ou mais esquemas. Exemplo:
R(ABCD) com DFs: AB C , C D, e D A. Decompor em R1 (ABC ) e R2 (AD). Quais as DFs em R1 ? AB C , mas tambm C A. e

20 / 26

Projeco de DFs (cont.) ca

Dada uma relao R com um conjunto de DFs, projectar R em ca R1 . Quais as DFs de R1 ? 1. Comear com as DFs de R e encontrar todas as DFs no c a triviais que se podem deduzir a partir delas. 2. Ficar apenas com as DFs cujos atributos faam parte do c esquema de R1 .

21 / 26

Algoritmo para projectar as DFs de uma relao R numa ca relao R1 ca

1. Seja T o eventual output. Inicialmente, T = {}. 2. Para cada subconjunto X de atributos de R1 , calcular X + (usando as DFs de R). 3. Inserir X A em T , para todo o A (X + X ), desde que A seja atributo de R1 .

22 / 26

Simplicao ca

Calcular o fecho de todos os subconjuntos de atributos e trabalhoso. Simplicao no 1: ca


No necessrio calcular o fecho do conjunto vazio, nem do a e a conjunto de todos os atributos.

Simplicao no 2: ca
Se X + = todos os atributos, no necessrio calcular o fecho a e a de subconjuntos que contenham X .

23 / 26

Exemplo
Seja R(ABCD) com DFs A B, B C , C D. Projectar R em R1 (ACD) (i.e., eliminar o atributo B). Fechos A+ = ABC D C + = CD D+ = D (CD)+ = CD T A C, A D C D

T o conjunto de DFs de R1 . Mas podemos eliminar A D e porque pode ser deduzida a partir das outras duas. DFs de R1 : A C , C D.

24 / 26

Equivalncia de conjuntos de DFs e

Dois conjuntos de DFs S e T so equivalentes, se o conjunto a de instncias que satisfaz S for o mesmo que o conjunto de a instncias que satisfaz T . a No exemplo que vimos h pouco: a
{A C , A D, C D} equivalente a {A C , C D} e

25 / 26

Base m nima de DFs

Seja S um conjunto de DFs para uma relao R. ca Qualquer conjunto de DFs equivalente a S uma base para e S. Uma base m nima para uma relao R, uma base B que ca e satisfaa: c
1. Todas as DFs em B, tm no lado direito um s atributo. e o 2. Se removermos uma das DFs de B, deixa-se de ter uma base. 3. Se removermos um atributo do lado esquerdo de uma das DFs de B, deixa-se de ter uma base.

26 / 26