Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Slide Title Prof. Tavares – Banco de Dados I Derivação do Modelo Lógico Normalização 1 2 Slide Title Prof. Tavares – Banco de Dados I 2 Projetos Normalizados • Um projeto normalizado de uma tabela ou arquivo só contém dados sobre uma classe de entidades. • Estes projetos são fáceis de entender, fáceis de usar e fáceis de expandir quando houver necessidade de adicionar informações ( ou atributos) à classe de entidades. • Se o projeto agrupasse em uma só tabela informações sobre diversas classes de entidades estas facilidades seriam reduzidas substancialmente. Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 182.01.443-5 Gilda GCC4111 9,0 3 Slide Title Prof. Tavares – Banco de Dados I 3 • Um projeto normalizado é um projeto no qual cada fato tem seu lugar. • Pode-se dizer que cada atributo representa um fato a respeito da chave, de toda a chave e nada mais do que a chave ( ou sobre a entidade identificada pela chave primária da tabela que contém o atributo). Projetos Normalizados Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 182.01.443-5 Gilda GCC4111 9,0 4 Slide Title Prof. Tavares – Banco de Dados I 4 Problemas práticos • O processamento de sistemas de informações requer a interação de diversas classes de entidades. • Mesmo que o projeto das tabelas representando cada uma dessas classes de entidades seja normalizada existem informações relevantes que não são características de nenhuma delas em particular. • Existem atributos que pertencem não a uma classe de entidades primitiva e sim a uma classe de entidades gerada pelo relacionamento entre duas classes de entidades. Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 182.01.443-5 Gilda GCC4111 9,0 5 Slide Title Prof. Tavares – Banco de Dados I 5 Anomalias de Atualização • Um sistema integrado de tabelas ou arquivos pode apresentar anomalias de atualização quando ocorrerem inclusões, exclusões ou modificações de registros em algumas tabelas individuais. • Estas anomalias devem ser evitadas porque violam a semântica da informação representada pelos itens de dados das entidades. • As anomalias podem ser minimizadas por meio de uma judiciosa partição de atributos entre as tabelas . 6 Slide Title Prof. Tavares – Banco de Dados I 6 Tipos de Anomalias de Atualização • Anomalias de Atualização de Tabelas, Arquivos ou Relações: – De modificação – De exclusão – De inclusão Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 10 Slide Title Prof. Tavares – Banco de Dados I 10 Normalização • Processo utilizado para: – evitar a ocorrência das anomalias de atualização; – otimizar o processo de armazenamento de informações reduzindo a redundância e aumentando a confiabilidade do sistema. • Este processo de projeto transforma um conjunto de especificações de entidades em outro conjunto, sendo que: – Semântica original é preservada; – Dependências parciais, transitivas, de Boyce/Codd e de junção são eliminadas; – Redundância de dados é minimizada. 11 Slide Title Prof. Tavares – Banco de Dados I 11 Processo de Normalização • Processo iterativo. • Processo decomposto em vários níveis de normalização, chamados de segunda forma normal, terceira forma normal e assim por diante. • Cada forma normal é mais restritiva que a anterior. • A forma normal de ordem N + 1 está na forma normal de ordem N e não possui uma característica “não desejável” que a forma normal de ordem N possui. • A forma normal de ordem N + 1 é mais desejável do que a forma normal de ordem N. • O processo de normalização é um processo de redução da redundância. 12 Slide Title Prof. Tavares – Banco de Dados I O processo de normalização pode ser visto como o processo no qual são eliminados esquemas de relações (tabelas) não satisfatórios, decompondo-os, através da separação de seus atributos em esquemas de relações menos complexas mas que satisfaçam as propriedades desejadas. O processo de normalização como foi proposto inicialmente por Codd conduz um esquema de relação através de uma bateria de testes para certificar se o mesmo está nas Formas Normais. Normalização 12 13 Slide Title Prof. Tavares – Banco de Dados I 13 Universo das Relações (normalizadas e não-normalizadas) Relações 1NF (relações normalizadas) Relações 2NF Relações 3NF Relações BCNF Relações 4NF Relações PJ/NF (5NF) Formas Normais 14 Slide Title Prof. Tavares – Banco de Dados I Todos os atributos de uma tabela devem ser atômicos (indivisíveis), ou seja, não são permitidos atributos multivalorados, atributos compostos ou atributos multivalorados compostos. CLIENTE .Código .{ Telefone } .Endereço: ( Rua, Número, Cidade ) Telefone 1 Endereço Cliente Código Telefone n Rua No Cidade 1a Forma Normal 14 15 Slide Title Prof. Tavares – Banco de Dados I A tabela não está na 1a Forma Normal pois seus atributos não são atômicos. Para que a tabela acima fique na 1a Forma Normal temos que eliminar os atributos não atômicos, gerando as seguintes tabelas como resultado: Telefone 1 Endereço Cliente Código Telefone n Rua No Cidade Cliente Código Rua Número Cidade Cliente_Telefone Código_Cliente Telefone_Cliente 1a Forma Normal 15 16 Slide Title Prof. Tavares – Banco de Dados I Aplica o conceito da dependência funcional total. Uma dependência funcional X Y é total se removemos um atributo A qualquer do componente X e, desta forma, a dependência funcional deixa de existir. A dependência funcional X Y é uma dependência funcional parcial se existir um atributo A qualquer do componente X que pode ser removido e a dependência funcional X Y não deixa de existir. 2a Forma Normal 16 17 Slide Title Prof. Tavares – Banco de Dados I Chave Código do curso Código do aluno Data de inscrição Nome do Curso Nome do aluno Dependência total Dependência parcial Dependência parcial DEPENDÊNCIA FUNCIONAL Tabela INSCRIÇÃO 17 18 Slide Title Prof. Tavares – Banco de Dados I Uma tabela T está na 2a Forma Normal: Se estiver na 1a Forma Normal; Todo atributo que não compõem a chave primária C for totalmente funcionalmente dependente da chave primária C. Se uma tabela não está na 2a Forma Normal a mesma pode ser normalizada gerando outras tabelas cujos atributos que não façam parte da chave primária sejam totalmente funcionalmente dependente da mesma, ficando a tabela na 2a Forma Normal. 2a Forma Normal 18 19 Slide Title Prof. Tavares – Banco de Dados I 19 2a Forma Normal 20 Slide Title Prof. Tavares – Banco de Dados I Aplica o conceito de dependência transitiva. Uma dependência funcional X Y em uma tabela T é uma dependência transitiva se existir um conjunto de atributos Z que não é um subconjunto de chaves de T e as dependênciasX Z, Z Y, são válidas. Chave IdFunc NomeFunc EnderFunc NrDpto NomeDpto A determina B A determina C A determina D D determina E Tabela Funcionario_Departamento 3a Forma Normal 20 21 Slide Title Prof. Tavares – Banco de Dados I Chave NrDpto NomeDpto Tabela Funcionario 3a Forma Normal 21 Chave IdFunc NomeFunc EnderFunc NrDpto Tabela Departamento 22 Slide Title Prof. Tavares – Banco de Dados I Uma tabela está na 3a Forma Normal: Se estiver na 2a Forma Normal; não houver dependência transitiva entre atributos não chave. 3a Forma Normal 22 23 Slide Title Prof. Tavares – Banco de Dados I • O processo de normalização deve ser aplicado em uma relação por vez, pois durante o processo de normalização vamos obtendo quebras, e por conseguinte, novas relações. • No momento em que o sistema estiver satisfatório, do ponto de vista do analista, este processo iterativo é interrompido. Normalização 23 24 Slide Title Prof. Tavares – Banco de Dados I 24 Estudos de Casos 1 FN ? 25 Slide Title Prof. Tavares – Banco de Dados I 25 Estudos de Casos 26 Slide Title Prof. Tavares – Banco de Dados I 26 Estudos de Casos Resultados_versão1 Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 182.01.443-5 Gilda GCC4111 9,0 182.01.449-6 Andréa GCC3099 6,1 182.01.449-6 Andréa GCC4111 7,3 182.01.445-7 Marcelo GCC3032 8,9 182.01.445-7 Marcelo GCC4111 8,3 182.01.445-7 Marcelo GCC4040 9,1 Relações: 1NF? 2NF? 27 Slide Title Prof. Tavares – Banco de Dados I 27 Resultados_versão1 Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 182.01.443-5 Gilda GCC4111 9,0 182.01.449-6 Andréa GCC3099 6,1 182.01.449-6 Andréa GCC4111 7,3 182.01.445-7 Marcelo GCC3032 8,9 182.01.445-7 Marcelo GCC4111 8,3 182.01.445-7 Marcelo GCC4040 9,1 Relações: 1NF? -> não possui campo multivalorado Estudos de Casos 28 Slide Title Prof. Tavares – Banco de Dados I 28 Resultados_versão1 Chave Não chave Chave Não chave Aluno_# Aluno_Nome Disciplina_# Rendimento 182.01.442-4 Ernesto GCC3032 7,5 182.01.442-4 Ernesto GCC4111 8,2 182.01.443-5 Gilda GCC3045 9,2 182.01.443-5 Gilda GCC4111 9,0 182.01.449-6 Andréa GCC3099 6,1 182.01.449-6 Andréa GCC4111 7,3 182.01.445-7 Marcelo GCC3032 8,9 182.01.445-7 Marcelo GCC4111 8,3 182.01.445-7 Marcelo GCC4040 9,1 Relações não em 2NF dependência parcial Dependência total Estudos de Casos 29 Slide Title Prof. Tavares – Banco de Dados I 29 Alunos Chave Não chave Não chave Não chave Aluno_# Aluno_Nome Professor_# Departamento 182.01.442-4 Ernesto 1010 Básico 182.01.443-5 Gilda 1020 Básico 182.01.449-6 Andréa 1210 Eng. Elet. 182.01.445-7 Marcelo 1310 Teleinformática 182.01.447-8 Marisa 1410 SW básico Orientadores Chave Não chave Não chave Professor_# Professor_Nome Departamento 1010 Gabriel Básico 1020 Eleonora Básico 1210 Antenor Eng. Elet. 1310 Laura Teleinformática 1410 Violeta SW básico 1 FN? 2 FN? 3 FN? Estudos de Casos 30 Slide Title Prof. Tavares – Banco de Dados I 30 Alunos Chave Não chave Não chave Não chave Aluno_# Aluno_Nome Professor_# Departamento 182.01.442-4 Ernesto 1010 Básico 182.01.443-5 Gilda 1020 Básico 182.01.449-6 Andréa 1210 Eng. Elet. 182.01.445-7 Marcelo 1310 Teleinformática 182.01.447-8 Marisa 1410 SW básico Orientadores Chave Não chave Não chave Professor_# Professor_Nome Departamento 1010 Gabriel Básico 1020 Eleonora Básico 1210 Antenor Eng. Elet. 1310 Laura Teleinformática 1410 Violeta SW básico 1 FN - OK 2 FN - OK 3 FN - NÃO Estudos de Casos 31 Slide Title Prof. Tavares – Banco de Dados I 31 Alunos Chave Não chave Não chave Não chave Aluno_# Aluno_Nome Professor_# Departamento 182.01.442-4 Ernesto 1010 Básico 182.01.443-5 Gilda 1020 Básico 182.01.449-6 Andréa 1210 Eng. Elet. 182.01.445-7 Marcelo 1310 Teleinformática 182.01.447-8 Marisa 1410 SW básico Orientadores Chave Não chave Não chave Professor_# Professor_Nome Departamento 1010 Gabriel Básico 1020 Eleonora Básico 1210 Antenor Eng. Elet. 1310 Laura Teleinformática 1410 Violeta SW básico 1 FN - OK 2 FN - OK 3 FN - NÃO determina determina determina dependência transitiva Estudos de Casos 32 Slide Title Prof. Tavares – Banco de Dados I 32 Orientadores Chave Não chave Não chave Professor_# Professor_Nome Departamento 1010 Gabriel Básico 1020 Eleonora Básico 1210 Antenor Eng. Elet. 1310 Laura Teleinformática 1410 Violeta SW básico 1 FN - OK 2 FN - OK 3 FN - OK Estudos de Casos Alunos Chave Não chave Não chave Aluno_# Aluno_Nome Professor_# 182.01.442-4 Ernesto 1010 182.01.443-5 Gilda 1020 182.01.449-6 Andréa 1210 182.01.445-7 Marcelo 1310 182.01.447-8 Marisa 1410
Compartilhar