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
3 / 26
Problemas
1. Redundcia a
a morada de um estdio aparece repetida vrias vezes. u a
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 . . .
7 / 26
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 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
X A1 A2 . . . An E equivalente a:
X A1 X A2 ... X An
12 / 26
Porqu? e
13 / 26
14 / 26
De onde vm as DFs e
15 / 26
Exemplo: casos 1 e 2
ano
duracao aCores
nome
morada
Filmes( nome, ano, durao, aCores, nomeEstdio ) ca u nome ano durao aCores ca nome ano nomeEstdio u
16 / 26
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
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)+
= = = = =
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
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
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
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
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
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