Baixe o app para aproveitar ainda mais
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
Compartilhar