Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Tópicos: a) O que é normalização b) As regras da normalização c) Primeira forma normal (1ª NF) d) Exercícios e) Dependência Funcional f) Segunda forma normal (2ª NF) g) Terceira forma normal (3ª NF) h) Quarta e quinta formas normais i) Exercícios Normalização de Dados A normalização pode prejudicar o desempenho, porém ela é vantajosa para a evolução dos modelos. Capítulo 1 2UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução NORMALIZAÇÃO DE DADOS Os conceitos de normalização foram introduzidos por E. F. Codd em 1970 e 1972 e depois aperfeiçoados por diversos autores. Neste curso as formas normais são tratadas como uma ferramenta de verificação de modelos conceituais e, também, como um recurso para o aperfeiçoamento do projeto de modelos relacionais de banco de dados. O problema: “Como organizar em um esquema relacional de BD (relações e atributos) um conjunto de dados com a mínima redundância de dados ?” A normalização de dados é um processo que visa organizar os atributos das entidades de um modelo para aumentar a coesão dos atributos de dados e para reduzir o acoplamento entre o conjunto de entidades. Aumentar a coesão dos atributos significa: manter na mesma relação os atributos que são fortemente associados. Reduzir o acoplamento entre os conjuntos de entidades significa: separar em relações diferentes atributos fracamente associados. Relação: PEÇAS Atributo de fraca coesão 2 3UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Introdução NORMALIZAÇÃO DE DADOS 1) Reduzir ou eliminar a redundância de dados. • Significa que a informação deve ser guardada em apenas um lugar ���� EVITAR INCONSISTÊNCIAS. 2) Indicar problemas em modelos de dados. • Significa que pode ser usado como critério para análise de modelos ���� INDICAR MODELOS RUINS. Diz-se que uma relação está normalizada se satisfizer um conjunto específicos de regras ou limitações. AS REGRAS DAS TRÊS PRIMEIRAS FORMAS NORMAIS NIVEL REGRA Primeira forma normal (1FN) Uma relação está na 1ª FN se, e somente se, todos os seus atributos são atômicos e monovalorados. Segunda forma normal (2FN) Uma relação está na 2ª FN se, e apenas se, está na 1ª FN e todos os atributos não chave são DFs da chave primária. Terceira forma normal (3FN) (REGRA DA DEPENDÊNCIA TRANSITIVA) Uma relação está na 3ª FN se, e apenas se, está na 2ª FN e se não existir atributo não chave funcionalmente dependente de outro atributo não chave. Em 1974, um aperfeiçoamento da 3FN foi chamado de forma normal “Boyce-Codd”. “Fagin” publicou em 1977 a 4ªFN e em 1979 a 5ªFN. Objetivos da normalização: 4UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira 1ª FN O PEDIDO DE CLIENTES NÃO NORMALIZADO: o quadro apresenta a imagem da estrutura de uma “nota de pedido” de cliente com 10 itens (no máximo). O esquema de dados da nota de pedido. pedido = { idPedido, dataPedido, dataEntrega, 1 (pagamentoValor, pagamentoDescrição) 2, impostoFederal, impostoEstadual, totalSemImpostos, envioNome, envioEndereço, envioTelefone, cobrançaNome, cobrançaEndereço, cobrançaTelefone, 1 ( itemNome, itemUnidade, itemQuantidade, itemPreço) 10 } Os dois grupos de atributos colocados entre parênteses no esquema de dados são os itens repetitivos. Cada grupo está formando um conjunto de elementos compostos. AS DUAS PARCELAS DO PAGAMENTO É O PRIMEIRO GRUPO. OS ITENS DO PEDIDO FORMAM UM RELAÇÃO DENTRO DO PEDIDO. NORMALIZAÇÃO DE DADOS 3 5UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira 1ª FN Para se conseguir a normalização da 1FN [Cood 70] deve-se decompor a relação não normalizada em tantas relações quantos forem os tipos de itens não atômicos. Separando os itens da nota de pedido. pedido = idPedido, dataPedido, dataEntrega, pagamento1Valor, pagamento1Descrição, pagamento2Valor, pagamento2Descrição, envioNome, envioEndereço, envioTelefone, cobrançaNome, cobrançaEndereço, cobrançaTelefone ----------------------------------------------------------------------------------------------------------- itemPedido = idPedido, itemNome, itemUnidade, itemQuantidade, itemPreço NORMALIZAÇÃO DE DADOS UMA RELAÇÃO ESTÁ NA 1ª FN QUANDO TODOS OS SEUS ATRIBUTOS SÃO ATÔMICOS E MONOVALORADOS. • Atributo atômico é aquele que não é formado por partes separadas. • Atributo monovalorado é aquele que possui somente um valor (não uma lista de valores). - Para as duas parcelas do pagamento foi escolhida a solução mais óbvia, imediata e sem unanimidade entre os pesquisadores, que é a da repetição das colunas para torna-las monovalorados. Os atributos de pedido: “impostoFederal”, “impostoEstadual” e “subTotalSemImpostos” foram retirados do esquema de dados de pedidos porque eles são atributos derivados. Os dois primeiros atributos são percentuais do terceiro atributo e, este último, pode ser obtido pela soma dos valores dos itens do pedido (cada valor de item é calculado por “itemQuant” * “itemPreço”). Na primeira forma normal não existem atributos (campos) ou grupos de atributos repetidos. ou melhor 6UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira 1ª FN O endereço não é um item atômico, como pode ser observado na representação ao lado. Tornando atômicos os itens do endereço: pedido = idPedido, dataPedido, dataEntrega, pagamento1Valor, pagamento2Descrição, pagamento2Valor, pagamento2Descrição, envioNome, envioLocal, envioCEP, envioCidade, envioTelefone, cobrançaNome, cobrançaLocal, cobrançaCEP, cobrançaCidade, cobrançaTelefone ----------------------------------------------------------------------------------------------------------- itemPedido = idPedido, itemNome, itemUnidade, itemQuantidade, itemPreço Além disso, a relação itemPedido ainda possui redundância de dados, uma anomalia. Por exemplo uma alteração na unidade de um item (mesmo com pequena chance de acontecer) causaria alteração em varias tuplas da relação. NORMALIZAÇÃO DE DADOS - Os problemas de anomalia são estudados nas próximas regras de normalização. Endereço Cidade CEPLocal L&C Item Pedido possui N 1 4 7UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira NORMALIZAÇÃO DE DADOS ANOMALIAS EM RELAÇÕES QUE ESTÃO SOMENTE NA 1FN [Cood 72] ���� tabela de associado na 1FN (sistema da ZipCar) Relação com exemplos de anomalias ou problemas de operacionalização: • O plano ficou como atributo na tabela de associado. 1. Se o associado ASSO20 for excluído a informação do nome do plano será perdida pois só essa tupla é desse plano. (Anomalia de eliminação) 2. Se um novo plano precisar ser criado ele terá que esperar um novo associado que deseje fazer essa escolha. (Anomalia de inserção) 3. O plano “$125” possui dois valores (nomes), se uma busca pelo plano “$125” for feita tuplas poderão ser perdidas e não seriam consideradas na pesquisa. (Anomalia de atualização) 1ª FN 8UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Dependência Funcional NORMALIZAÇÃO DE DADOS DEPENDÊNCIA FUNCIONAL (DF): Dada uma relação R, diz-se que uma coluna B é dependente funcional de uma coluna A de R, denominando por A ���� B, se e somente se a cada valor v[A] ocorrer em linhas diferentes o mesmo valor v[B]. Por exemplo sempre que o item de pedido for do mesmo produto o valor da unidade será repetido. Diz–se que “unidade” é dependente funcional (DF) de “itemPedido” ou que “itemPedido” determina “unidade” (ou será o produto?). ----------------------------------------------------Você pode identificar outras DFs nas relações dos exemplos anteriores ? ---------------------------------------------------- Uma conclusão: Se B é subconjunto de atributos de A, evidentemente A ���� B; esta é chamada uma DF trivial. Exemplo: {idPedido, dataPedido, dataEntrega} � {idPedido} idPlano plano 5 9UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Exercícios de Revisão 1. Explique o que é normalização. 2. Cite duas maneiras de se organizar em um esquema relacional na 1FN. 3. Para a descrição do problema BD DE VENDEDORES, ÁREAS DE VENDA E PRODUTOS a) Elabore, para a aplicação, o projeto lógico (MER) e o projeto físico (com relações na primeira forma normal). b) Indique algumas dependências funcionais existentes no projeto. BD DE VENDEDORES, ÁREAS DE VENDA E PRODUTOS: Com a finalidade de pagar vendedores quinzenalmente, foi decidido organizar um BD de vendedores, áreas de venda e produtos. [Adaptado do exercício 17.6 do livro texto (Date).] i. Cada vendedor é responsável por uma ou mais áreas; cada área tem um ou mais vendedores. Cada vendedor pode vender vários produtos, e cada produto tem um ou mais vendedores coordenadores do produto. ii. Todos os produtos são vendidos em todas as áreas; porém, nenhum par de vendedores vende o mesmo produto em uma mesma área. iii. Cada vendedor vende o mesmo conjunto de produtos em todas as áreas nas quais ele é o vendedor responsável. 1ª FN e DF 10UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Exercícios de Revisão 4. Para a conta de cobrança ao lado, faça um trabalho de engenharia reversa: a) Elabore, para uma aplicação que tenha como objetivo cobrar mensalmente as contas de consumo de energia, o projeto lógico (MER) e o projeto físico (com relações na primeira forma normal). b) Indique algumas dependências funcionais existentes no projeto. 1ª FN e DF 6 11UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua OliveiraUERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira Exercícios de Revisão (solução) BD DE VENDEDORES, ÁREAS DE VENDA E PRODUTOS: Projeto Lógico - MER (soluções): 1ª FN e DF Vendedor Área Produto abrange M N é responsável por N M 1 vende ÁREA-PRODUTO NVendedor Área Produto M N é responsável por N M 1 vende abrange Projeto Físico – esquemas das relações: Vendedor = { cpfVendedor, nomeVendedor, local, CEP, Cidade } Area = { codArea, nomeArea, Cidade } Produto = { idProduto, descProduto, preçoUnitario, cor, tipo } Responsabilidades = { cpfVendedor, codArea } Vendas = { cpfVendedor, codArea, idProduto, dataVenda, quantidade } Abrangencias = { codArea, idProduto } Dependências funcionais: cpfVendedor ���� { nomeVendedor, local } codArea ���� { nomeArea } idProduto ���� { descProduto, preçoUnitario, cor, tipo } 12UERJ – CTC/IME – Banco de Dados 1 - 12-2 © Prof. A Padua Oliveira BIBLIOGRAFIA Chen, Peter; The Entity-Relationship Model - Toward a Unified View of Data, ACM Transactions on Database Systems 1 (1): 9–36. (March 1976). C. J. Date, “Introdução a Sistemas de Bancos de Dados” – 8ª Edição”, Editora Campus, 2003. Setzer, Valdemar; Banco de Dados – conceitos, modelos, gerenciadores, projeto lógico e projeto físico; Editora Edgard Blücher Ltda., SP, 1986. Silberschatz, Avi; Korth, H; Sudarshan, S; Database System Concepts, 6th Edition, McGraw-Hill, 2005.
Compartilhar