Buscar

Aula_4- Normalização

Prévia do material em texto

1 
 
 
 
 
• 
 
 
• 
 
• 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Bases de dados 
 
Normalização de uma base de dados 
 
 
 
 
 
 
1 
2 
 
 
 
•
 
•
 
•
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1. 
2.
 
3. 
4. Normalizar as relações (tabelas) e remover as 
anomalias encontradas. 
5. 
 
3 
3 
 
 
Principal objetivos da Normalização: 
 
• Melhorar a performance da BD. 
•
(atualização/inserção/remoção de dados) 
• 
• 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
•
 
•
 
 
 
 
 
 
 
5 
4 
 
 
 
1. 
2. 
3. 
4. Boyce-Codd Normal Form (BCNF) 
5. 
6. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
•
 
•
 
• 
• A ordem dos campos dentro de uma tabela é indiferente. 
• 
•
 
7 
5 
 
 
 
 
1.
 
2.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
•
 
•
 
 
Não contém atributos compostos; 
Não contém grupos repetitivos (atributos multivalor); 
 
9 
6 
 
 
 
 
 
 
Exemplo 2: 
 
 
 
 
 
 
 
 
 
 
 
cod Nome Morada NIF 
1 Ana Silva Av. 5 Outubro, nº 23, 1000-003 Lisboa 9685985 
2 Artur Ribeiro Av. Da Liberdade, nº 145, 4000-010 
Porto 
9789685 
 
 
 
cod nome rua nPort 
a 
Cod_postal Desc_CPos 
tal 
NIF 
1 Ana Silva Av. 5 Outubro 23 1000-003 Lisboa 9685985 
2 Artur 
Ribeiro 
Av. Da 
Liberdade 
145 4000-010 Porto 9789685 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
numero nome disciplina pais 
15627 Ana Matemática 
programação I 
Bases de dados 
Portugal 
1342 Rui Biologia 
Matemática 
Portugal 
6453 Neringa Base de dados 
programação I 
Matemática 
Lituânia 
 
7 
 
 
 
 
 
 
 
 
1. 
2.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
numero nome pais 
15627 Ana Portugal 
1342 Rui Portugal 
6453 Neringa Lituania 
 
numeroAluno Disciplina 
15627 Matemática 
15627 programação I 
15627 Bases de Dados 
1342 Biologia 
1342 Matemática 
6453 Bases de Dados 
6453 programação I 
6453 Matemática 
 
8 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Base de dados 
 
 
Exemplo: Suponha a seguinte tabela de encomendas a fornecedores 
 
 
 
 
 
 
 
 
Na 2FN fica: 
 numEnc item Prod qtd preço 
 
 
 num 
Enc 
fornecedor 
120 1 FR1 20 2 
120 2 FR2 34 3 
120 Empresa farinhas lda. 
378 1 AC1 56 0,5 
378 Açucares & adoçantes sa 
 378 2 AD1 10 2,5 
15 378 3 AC2 450 1,2 
 
 
 
 
 
 
 
numEnc item Fornecedor Prod qtd preço 
120 1 Empresa farinhas lda. FR1 20 2 
120 2 Empresa farinhas lda. FR2 34 3 
378 1 Açucares & adoçantes sa AC1 56 0,5 
378 2 Açucares & adoçantes sa AD1 10 2,5 
378 3 Açucares & adoçantes sa AC2 450 1,2 
 
9 
 
 
 
 
1. 
2. Não existem dependências funcionais entre atributos não 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17 
10 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19 
11 
Dade de dados 
 
 
nome 
Emp 
num 
BI 
Endereço Dt_nasc num 
Dep 
Ana 12121 aa@mail.pt 25-09-90 1 
Rui 10232 rui@mail.pt 23-12-80 1 
Marta 34334 mt@mail.pt 26-09-60 1 
José 23323 ze@mail.pt 9-10-99 2 
rita 78787 rt@mail.pt 12-9-82 2 
 
num nomeDep Geren 
teBI 
1 Vendas 1234 
2 Marketing 6776 
 
 
 
 
 
nome 
Emp 
numBI Endereço Dt_nasc numD 
ep 
nomeDep GerenteBI 
Ana 12121 aa@mail.pt 25-09-90 1 Vendas 1234 
Rui 10232 rui@mail.pt 23-12-80 1 Vendas 1234 
Marta 34334 mt@mail.pt 26-09-60 1 Vendas 1234 
José 23323 ze@mail.pt 9-10-99 2 Marketing 6776 
Rita 78787 rt@mail.pt 12-9-82 2 Marketing 6776 
 
 
 
 
 
 
 
 
 
Dade de dados 
 
 
Exemplo 2: Suponha a tabela de encomendas e fornecedores 
 numEnc codFrn Nome Fornecedor Rua cidade telef 
120 10 Empresa farinhas lda. Rua desce Porto 96859 
333 10 Empresa farinhas lda. Rua desce Porto 96859 
450 20 Açucares & adoçantes Av. bonita Viana 87438 
378 20 Açucares & adoçantes Av. bonita Viana 87438 
780 20 Açucares & adoçantes Av. bonita Viana 87438 
 
Na 3FN fica: 
numEnc codFrn codFrn Nome Fornecedor Rua cidade telef 
120 10 10 Empresa farinhas lda. Rua desce Porto 96859 
333 10 20 Açucares & adoçantes Av. bonita Viana 87438 
450 20 
 
 
 
22 
378 20 
780 20 
 
mailto:aa@mail.pt
mailto:rui@mail.pt
mailto:mt@mail.pt
mailto:ze@mail.pt
mailto:rt@mail.pt
mailto:aa@mail.pt
mailto:rui@mail.pt
mailto:mt@mail.pt
mailto:ze@mail.pt
mailto:rt@mail.pt
12 
 
 
 
 
•
 
• O campo linha_fatura é composto por: código do produto, 
 
• 
 
 
 
 
 
 
 
 
 
 
 
 
 
Databases 
 
 
 
 
 
 
 
 
 
 
 
 
 
23 
Exercício: 
 
 
 
 
13 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fatura(n_factura, data, total_fact, dados_cliente, {linha_factura}) 
Para ficar na 1FN é necessário decompor os atributos compostos em 
atributos atómicos. 
 
 
 
 
 
 
 
25 
14 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
n_Fa 
ct 
Cod_pr 
od 
Des_produto qtd preç 
o 
valor valorI 
va 
total 
23 19 Arroz carolino 2 1,00 2,00 0,12 2,12 
23 21 Azeite suave 4 3,00 12,00 0,72 12,72 
23 42 Laranja algarve 2 1,50 3,00 0,18 3,18 
24 21 Massa nacional 6 0,5 3,00 0,18 3,18 
24 19 Arroz carolino 1 1,00 1 0,06 1,06 
24 21 Azeite suave 2 3,00 6,00 0,36 6,36 
24 42 Laranja algarve 2 1,50 3,00 0,18 3,18 
25 19 Arroz carolino 2 1,00 2,00 0,12 2,12 
25 21 Azeite suave 4 3,00 12,00 0,72 12,72 
 
 
 
 
Linha_factura(n_factura, cod_produto, des_produto, Qtd, preço, valor, 
valorIVA, total) 
 
 
 
 
 
 
 
27 
15 
 
 
 
 
 
 
 
 
 
 
 
Base de dados 
 
 
Na 2FN ficaria: 
Linha_factura(num_factura, cod_produto, Qtd, preço, valor, IVA, total) 
produto(cod_produto, des_produto, …); 
N_f 
act 
Cod_ 
prod 
qtd preço Valor Iva total 
23 19 2 1,0 2,0 0,12 2,12 Cod_ 
Prod 
Desc_prod 
23 21 4 3,0 12,0 0,72 12,72 
19 Arroz carolino 
23 42 2 1,50 3,0 0,18 3,18 
12 Azeite Alentejano 
24 12 6 0,5 3,0 0,18 3,18 
21 Massa nacional 
24 19 1 1,0 1 0,06 1,06 
42 Laranja algarve 
24 21 2 3,0 6,0 0,36 6,36 
 
 
 
 
29 
24 42 2 1,50 3,0 0,18 3,18 
25 19 2 1,0 2,0 0,12 2,12 
25 21 4 3,0 12,0 0,72 12,72 
 
 
 
 
 
 
 
16 
 
 
 
 
 
Linha_factura(num_factura, cod_produto, Qtd, preço, IVA) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31 
17 
 
 
 
Forma Normal de Boyce-codd (FNBC) 
 
 
 
• 
•
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33 
 
18 
Num_aluno Cod_formacao 
23 01 
24 01 
56 01 
 
Cod_formacao Cod_formador 
01 05 
 
 
 
 
BCFN 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Num_aluno Cod_formacao Cod_formador 
23 01 05 
24 01 05 
56 01 05 
 
 
 
 
 
 
 
 
 
 
 
 
 
35 
19 
 
 
 
 
 
 
 
• 
• 
 
 
 
 
37 
 
 
 
Exemplo: TrabalhosPraticos(projeto, aluno, sala) 
4FN 
 
Projeto Aluno 
P1 1245 
P1 3456 
P2 7890 
P2 3590 
 
Projeto Aluno Sala 
P1 1245 S1 
P1 3456 S1 
P1 1245 S2 
P1 3456 S2 
P2 7890 S3 
P2 3590 S3 
P2 7890 S2 
P2 3590 S2 
 
Projeto Sala 
P1 S1 
P1 S2 
P2 S3 
P2 S2 
 
20 
 
 
 
• se um fornecedor F fornece a componente C 
• e se um projeto P encomenda a componente C 
• 
• então o fornecedor F fornece a componente C ao projeto P. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
• 
•
 
 
 
 
39 
21 
 
 
 
•
 
•
 
1FN 2FN 3FN FNBC 4FN 
- 
+ 
Relações 
 
Redundância 
5FN 
+ 
- 
 
 
 
 
 
 
 
 
 
 
 
Objetivos da desnormalização: 
•
 
•
 
• 
•
 
 
 
41 
22 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43 
Exercício: 
 
 
 
Referências: 
SQL Structured Query Language, 13ª edição, 
Luís Damas, 
FCA – Editora de Informática, 
ISBN 978-972-722-443-2 
 
Database System Concepts, 5th Edition 
Abraham Silberschatz, Henry F. Korth and S. Sudarshan 
McGraw Hill, 2005 
ISBN 0-07-124476-X 
 
 
 
 
 
 
 
44

Continue navegando