Escolar Documentos
Profissional Documentos
Cultura Documentos
Endereo
NIF
Cursos
Artur
Covilh
123456789
Programador
Ana
Fundo
222222222
Operador, Programador
Carlos
Covilh
222333444
Paulo
Guarda
555666777
Operador, Analista
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
81
Apontamentos de BD I
2)
PessoaCursos2
Nome
Endereo
NIF
Curso1
Curso2
Artur
Covilh
123456789
Programador
Ana
Fundo
222222222
Operador
Programador
Carlos
Covilh
222333444
Analista
Programador
Paulo
Guarda
555666777
Operador
Analista
Curso3
Operador
82
Apontamentos de BD I
83
Apontamentos de BD I
Num instante t,
R
Fornecedor
Pea
Cidade
Quantidade
Empresa A
Covilh
100
Empresa A
Covilh
200
Empresa A
Covilh
300
Empresa B
Fundo
400
Empresa B
Fundo
500
Algumas anomalias:
Insero: No possvel inserir um fornecedor sem que ele fornea alguma
pea (Pea faz parte da chave).
Eliminao: Se, por exemplo, a empresa B deixar de fornecer as peas 1 e
3, perdemos a informao sobre a cidade desse fornecedor.
Modificao: Supondo que um fornecedor muda de cidade. Actualizar R
significa actualizar todos os tuplos desse fornecedor.
Se substituirmos R por
R1 = <Fornecedor, Cidade> (R)
R1(Fornecedor, Cidade)
desaparecem as anomalias.
A DF Fornecedor Cidade
garante que R = R1
R2
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
84
Apontamentos de BD I
X Ai elementar
De outra forma:
- Uma relao est na 2 forma normal se est na 1 FN e os atributos
que no so chave dependem da totalidade da chave.
Nota:
Um atributo pertencente a uma chave diz-se um atributo primo.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
85
Apontamentos de BD I
Exemplo:
Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preo_prod,
Quantidade)
As dependncias funcionais,
N_nota_enc, Cod_produto Desc_produto
N_nota_enc, Cod_produto Preo_produto
no so elementares, porque
Cod_produto Desc_produto (1)
Cod_produto Preo_produto (2)
A relao Linha_nota_enc vai dar origem a:
Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade)
Produto ( Cod_produto, Desc_produto, Preo_produto)
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
86
Apontamentos de BD I
87
Apontamentos de BD I
88
Apontamentos de BD I
Dep
Cidade
Anomalias
Insero: no podemos inserir um departamento se no tem empregados
Eliminao: Se eliminamos o ltimo empregado de um departamento
perdemos a informao do departamento
Modificao: O atributo cidade repetido para cada empregado de um
dado departamento; Uma alterao da localizao de um departamento
implica alterar a localizao de todos os empregados desse departamento.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
89
Apontamentos de BD I
<Dep=Dep>
Departamento
(no trivial)
X Z directa
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
90
Apontamentos de BD I
91
Apontamentos de BD I
Decomposio:
Cliente ( Cod_cliente , Nome_cliente, Morada_cliente)
Nota_enc ( N_nota_enc, Cod_cliente )
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
92
Apontamentos de BD I
Exemplo 2:
Cliente ( Cdigo, Nome, Morada, Cod_postal)
com, Cdigo Nome
Nome Cdigo
Cdigo Morada
Cdigo Morada - Esta dependncia funcional directa ?
A relao est na 3 forma normal?
Resposta: _____________
Exerccio: Normalize em 3FN o esquema relacional abaixo.
Clientes ( N_cliente, (Endereos_para_remessa) * , Saldo,
Limite_de_crdito, Desconto)
* - grupo repetitivo
Peas ( N_pea, Cod_armazm, Qtd_stock_armazm,
Min_stock_armazm, Desc_pea, Cor)
- Uma pea pode existir em vrios armazns.
Encomendas ( N_enc, Cod_cliente, Endereo_remessa, Data,
(N_pea, Qtd_pedida, Qtd_enviada)* )
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
93
Apontamentos de BD I
Endereo
Cod_postal
c1
e1
p1
c1
e2
p2
c1
e3
p2
c2
e4
p3
94
Apontamentos de BD I
95
Apontamentos de BD I
Exemplo 1:
E ( Emp, Dep, Cidade)
Emp Dep
Dep Emp
Dep Cidade
Cidade Dep
No est na 3FN ( porque a DF Emp Cidade no directa)
No est na FNBC ( porque na DF Dep Cidade o determinante (Dep)
no chave candidata).
Decomposio:
(1)
E1 ( Emp, Dep)
E2 ( Emp, Cidade)
Emp Dep
Emp Cidade
ou
(2)
E1 (Emp, Dep )
E2 (Dep, Cidade)
Emp Dep
Dep Cidade
96
Apontamentos de BD I
Exemplo 2:
Nota_enc( N_nota_enc, Cod_cliente, Nome_Cliente, Morada_cliente)
Cod_cliente Nome_cliente
Cod_cliente Morada _cliente
No est na 3FN (ver pgina 92)
No est na FNBC
(Porque na DF Cod_cliente Nome_cliente, Morada_cliente
Cod_cliente no chave candidata)
Decomposio:
NE1 ( N_nota_enc, Cod_cliente)
NE2 ( Cod_cliente, Nome_cliente, Morada_cliente)
3FN
FNBC
Exemplo 3: Relao com duas Chaves candidatas no sobrepostas.
F( N_forn, Nome_forn, Cidade, Tipo)
N_forn Nome_forn
Nome_forn N_forn
N_forn Cidade, Tipo
Nome_forn Cidade, Tipo
3 FN? ____________________
Chaves candidatas:
N_forn
Nome_form
FNBC? ________________
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
97
Apontamentos de BD I
Chaves candidatas:
N_forn, N_pea
Nome_forn, N_pea
3FN ? sim
FNBC ? no, porque na DF
N_forn Nome_forn
N_forn no chave candidata.
Decompor em:
F1 ( N_forn, Nome_forn)
F2 ( N_forn, N_pea, Qtd)
Ambas esto na FNBC.
Se uma relao est na FNBC ento est na 3FN.
Dem. Seja R (A1, A2, ...An) na FNBC. Suponhamos que existe uma DF no
directa X Ai tal que X Y, Y X e Y Ai para algum Ai no primo e X
chave. (Isto , R no est na 3FN). Mas, se existe Y Ai (no trivial) ento
Y chave candidata de R (porque por hiptese R est na FNBC) e portanto
Y X.
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
98
Apontamentos de BD I
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
99
Apontamentos de BD I
_______________________________________________________________________________________
http://www.di.ubi.pt/~pprata/bd.htm
100
Apontamentos de BD I