Refinamento de Esquemas
Problemas causados pelas Dependências
Funcionais (FDs)
Formas Normais
Decomposição de Relações para eliminar FDs
indesejáveis
Dependências Multivaloradas
Decomposição de Relações para eliminar MDs
indesejáveis
Anomalias de Atualização
ENOME #CI DNO DNOME DGER
João Silva 620.042 D1 Pessoal Tereza Costa Maria Alves 328.345 D2 Brinquedos Marcia Mendes Ana Pereira 245.980 D2 Brinquedos Marcia Mendes Fabio Costa 567.987 D3 Roupas Iris Pereira
Jane Lima 456.321 D1 Pessoal Tereza Costa
Problemas:
- Desperdício de espaço de memória - Anomalias de atualização
- Anomalias de Inserção
- Anomalias de modificação - Anomalias de Deleção
Anomalias de Atualização
ENOME #CI DNO João Silva 620.042 D1 Maria Alves 328.345 D2 Ana Pereira 245.980 D2 Fabio Costa 567.987 D3 Jane Lima 456.321 D1
DNO DNOME DGER
D1 Pessoal Tereza Costa D2 Brinquedos Marcia Mendes D3 Roupas Iris Pereira
Exemplo
ID Nome Endereço Hobby
1111 Joe 123 Main biking 1111 Joe 123 Main hiking
……….
ID Nome Endereço Hobby
1111 Joe 123 Main {biking, hiking} ER Model
Relational Model
Redundância
ID Nome
Dependência Funcional
Dada uma relação R com atributos A1,...,An,B1,...,Bm,C1,...,Cl,
Dizemos que
A1,...,An determina funcionalmente B1,...,Bm ( A1, ..., A n) B1,...,Bm
Se sempre que duas tuplas tiverem os mesmos valores para A1,...,An, então elas terão o mesmo valor para B1,...,Bm.
Dependência Funcional
MATRÍCULAS (disciplina, estudante, semestre, nota) {disciplina, estudante} semestre, nota
Estudante Disciplina Semestre Nota João Silva Banco de Dados I 94-2 8,5 João Silva Banco de Dados I 94-2 7,5
- FDs ocorrem muito frequentemente.
- Os SGBDs só permite a manutenção de FDs que ...
- Durante o projeto do esquema, deve-se identificar todas as FDs pois isto ajuda a identificar esquemas ruins
Boyce Codd Normal Form
-- Em outras palavras, as únicas dependência funcionais em R (de interesse) envolve suas chaves.
-- Isto é chamado de ‘Boyce Codd Normal Form’ (BCNF) para esquemas de relação.
Se A1,...,An B1,...,Bn em uma relação R, então A1,...,An é uma superchave.
Chave de Relação
A chave de uma relação determina funcionalmente todos
os atributos da relação
Suponha R ( A1, A2, ..., An ) e conjunto de FDs F e X {A1, A2, ..., An}.
- X é uma superchave de R sss X {A1, A2, ..., An} F +
- X é uma chave de R sss:
1. X {A1, A2, ..., An} F +
Boyce Codd Normal Form
Um esquema de relação R está em BCNF sss para todas FDs válidas em R
A1 ... An B1 ... Bm,
uma das condições abaixo é satisfeita:
(a) A FD é trivial (B1 ... Bm A1 ... A n) ou (b) A1 ... An é uma superchave de R.
Boyce Codd Normal Form
MATRÍCULA (s#, c#, semestre, nota) - S#, c#, semestre nota
Os esquemas estão em BCNF?
EMPREGADO (emp, dept, sal) - emp sal
- suponha que um empregado pode trabalhar em mais de um departamento.
Boyce Codd Normal Form
EMPREGADO (emp, dept, sal)
O que fazer quando um esquema não está em BCNF?
DECOMPÕE !!!
Implicação lógica de FDs
Dado um conjunto F de FDs podemos provar que
outras FDs são válidas
Ex: Seja o conjunto de FDs: {AB, B H}, a FD
AH é implicada logicamente.
Nós dizemos que o conjunto de FDs F (sobre R)
implica logicamente a FD XY sss
para qualquer instancia r de R que satisfaz todas
as FDs em F, então XY é também satisfeita em r.
REGRAS DE INFERÊNCIA PARA FDs
Axiomas de Armstrong
RI1:Regra da reflexidade: Se X Y então XY
RI2:Regra do acréscimo: Se XY então WX WY
RI3:Regra da Transitividade: Se X Y e Y Z então X Z
Os axiomas de Armstrong são legítimos e completos
Regras adicionais:
RI4:Regra da União: Se X Y e X Z então X YZ
RI2:Regra da Decomposição: Se X YZ então X Y e X Z
Fecho de um conjunto de FDs F (F
+)
O Fecho de F (F+) é o conjunto de todas as FDs implicadas por F.
Algorítmo para obtenção de X
+("o fecho de X sob F”).
(X+ é o conjunto de atributos que são funcionalmente determinados
pelo conjunto de atributos X.) X+=X;
Repita
X':=X+
Para cada FD Y Z em F faça Se Y X+ então X+=X+ Z;
EXEMPLO: Seja F formado das seguintes FDs: AB C D EG C A BE C BC D CG BD ACD B CE AG Seja X=BD. (BD)+=???
Fecho de um conjunto de FDs F (F
+)
Decomposição de Relação
Propriedades Desejáveis
– Não tem perda de Informação (junção sem Perda)
– Preserva as restrições de Integridade
Decomposição de Relação
Sem perda na Junção
Esquema 2 tem todos os atributos do esquema 1, mas foi perdido o relacionamento de em que curso um estudante tirou aquela nota.
Esquema 1:
EST-CURSOS (estudante, curso, semestre, nota) Esquema 2:
NOTAS (estudante, semestre, nota) EST-CURSOS2 (estudante, curso)
Estudante Curso Semestre Nota
João Silva Banco de Dados I 94-2 8,5 João Silva Compiladores 93-1 7,5 Fabio Costa Análise Numérica 94-2 9,3 Fabio Costa Banco de Dados I 94-2 5.2 Jane Lima Eng. Software 93-1 7.6
Estudante Curso
João Silva Banco de Dados I João Silva Compiladores
Fabio Costa Análise Numérica Fabio Costa Banco de Dados I Jane Lima Eng. Software
Estudante Semestre Nota
João Silva 94-2 8,5 João Silva 93-1 7,5 Fabio Costa 94-2 9,3 Fabio Costa 94-2 5.2 Jane Lima 93-1 7.6 EST-CURSOS NOTAS EST-CURSOS2
Estudante Curso Semestre Nota
João Silva Banco de Dados I 94-2 8,5 * João Silva Banco de Dados I 93-1 7,5 * João Silva Compiladores 94-2 8,5 João Silva Compiladores 93-1 7,5 Fabio Costa Análise Numérica 94-2 9,3 * Fabio Costa Análise Numérica 94-2 5.2 * Fabio Costa Banco de Dados I 94-2 9,3 Fabio Costa Banco de Dados I 94-2 5.2 Jane Lima Eng. Software 93-1 7.6
Dica: Devemos projetar esquemas de relação de forma que a "junção das relações" com as condições de igualdade de atributos sejam chaves primárias ou estrangeiras, de maneira que podemos garantir que a relação original pode ser recuperada pela junção natural.
(relacionamento 1-1 ou 1-n entre as relações)
Junção sem perdas
A decomposição D={R1, ..., Rn} de R tem junção sem
perdas sss para qualquer instância válida r de R temos
que r pode ser recuperada da junção natural das
relações r1, r2, ..., rn as quais foram obtidas da projeção de r nos atributos de R1, ..., Rn respectivamente; ou seja r = r1 * r 2 .... * r n.
Junção sem perdas
Propriedade #1: A decomposição D ={R1, R2} de R com conj. de FDs F tem junção sem perdas sss
- A FD (R1 R2) (R1- R2) está em F+, ou
- A FD (R1 R2) (R2- R1) está em F+
Propriedade #2: Se a decomposição D={R1, ..., Rm} de R tem junção sem perda e se a decomposição
D1={Q1, ..., Qk} de Ri tem junção sem perda, então a
decomposição D2={R1, ..., Ri-1,Q1, ..., Qk, Ri+1, ..., Rm} de R tem junção sem perda.
Algorítmo para decomposição em BCNF
sem perdas na junção
1. Faça D:= {R}
2. Enquanto existir um esquema de relação Q em D que não está em BCNF faça:
- Escolha um um esquema de relação Q em D que não está em BCNF
- Encontre uma FD XY em Q que viola BCNF; - Substitua Q em D por dois esquemas (Q-Y) e (XY)
Decomposição de Relação
Propriedades Desejáveis
– Não tem perda de Informação (junção sem Perda)
– Preserva as restrições de Integridade
Preservação de Dependências
A decomposição D={R1, ..., Rn} de R preserva as
dependências de R sss o conjunto de FDs F de R é
implicado pela projeção de F nas Ri's.
Dado um conjunto de FDs F em R, a projeção de F em Ri, (F[Ri ]), é o conjunto de FDs X Y em F+ tal que os
atributos em XY estão contidos em Ri.
A decomposição D={R1, ..., Rn} de R preserva as dependências de R sss (F[R1 ], ... F[Rn ])+=F+
Em certos casos não é possivel obter um esquema que:
– está em BCNF
– tem junção sem perda (requerido!) – preserva dependencias
Nestes casos usa-se uma forma normal mais fraca.
Exemplo
LOTES (#Prop., N_Municipio, #Lote, Área)
FD1: #Prop. {N_Municipio, #Lote, Área} FD2: #Lote, N_Municipio Área, #Prop FD3: Área N_Municipio
Viola BCNF. Logo, Decomponha: LOTES1 (#Prop., #Lote, Área) LOTES2 (Área, N_Municipio) Mas, FD2 não é preservada.
Neste caso é melhor deixar como está.
Terceira Forma Normal
Uma relação R está em 3NF se para cada FD A1...An B1...Bm que é válida em R, uma das condiçoes é satisfeita:
– A1 ... An B1 ... Bm é trivial (Bi’sAi’s), – A1 ... An inclui uma chave de R, ou
– Cada Bi ocorre na chave de R.
Todo esquema de relação pode ser
decomposto em um conjunto de relações que: – está em 3NF
– Preserva dependências – tem junção sem perda
CONJUNTO MÍNIMO DE FDs
Um conjunto de FDs F é mínimo se satisfaz as seguintes condições: 1) Todas as FDs em F tem um único atributo do lado direito.
2) Não se pode remover uma FD de F e ainda ter um conjunto de FDs que é equivalente a F.
3) Não se pode substituir uma FD X A em F por Y A, onde Y X e ainda ter um conjunto de FDs que é equivalente a F.
Podem existir várias coberturas (fecho) mínimo para um conjunto de FDs F. Não existe algoritmo simples para determinar uma
EQUIVALÊNCIA DE CONJUNTOS DE FDs
O conjunto de FDs F
"
cobre"
o conjunto de FDs E
sss E
+F
+.
Os conjuntos de FDs F e E
"
são equivalentes"
sss
F
+=E
+(i.e. E
+
F
+e F
+
E
+).
Algorítmo para decomp. em 3NF preservando
as dependências e sem perdas na junção
Entrada: Esquema de relação R e dependências F.
Saída: Uma decomp. D de R tal que D tem junção sem perdas, as dependências de R são preservadas, e todas as relações de D estão em 3NF.
Algorítmo para decomp. em 3NF preservando
as dependências e sem perdas na junção
1. Encontre a cobertura mínima G para F;
2. Para cada X do lado esquerdo de uma FD em G, crie um esquema de relação {XA1... An} em D, onde X A1, ...,
X An são todas as FDs em G com X do lado esquerdo. 3. Coloque todos os atributos restantes em uma única
relação.
4. Se uma chave de R não está contida em nenhum dos esquemas de relação, crie uma relação que contenha os atributos da chave.
CURSO HORA, SALA
Dependência Multivalorada
CURSO
PROF.
HORA
SALA
ALUNO
Cálculo I João
Seg. 9
318
Ana
Cálculo I João
Qua. 9
232
Ana
Cálculo I João
Sex. 9
560
Ana
Cálculo I João
Seg. 9
318
Mário
Cálculo I João
Qua. 9
232
Mário
Dependência Multivalorada
Dada uma relação R onde X e Y são subconjuntos de R, dizemos que X multidetermina Y ( X Y) se sempre que existirem duas tuplas t1 e t2 tais que t1[X] = t2[X], então
também devem existir duas tuplas t3 e t4 tais que:
» t3[X]=t4[X]=t1[X]=t2[X]
» t3[Y]=t1[Y], e t4[Y]=t2[Y]
Quarta Forma Normal (4nf)
Um esquema de relação R com dependências F está em 4NF se para qulquer dependências multivaloradas não trivial X Y X é uma superchave
CURSO PROF. ALUNO
Cálculo I João Ana
Cálculo I João Mário
CURSO HORA SALA
Cálculo I Seg. 9 318
Cálculo I Qua. 9 232
Resumo
Problemas causados pelas Dependências
Funcionais (FDs)
Formas Normais
Decomposição de Relações para eliminar FDs
indesejáveis
Dependências Multivaloradas