Redundância é a causa de vários problemas com esquemas relacionais: armazenamento redundante, anomalias de inserção, de exclusão e de atualização.

Documentos relacionados
Banco de Dados - Senado

Normalização. Prof. Rogério Gonçalves Bittencourt, M.Sc.

INF1383 -Bancos de Dados

Banco de Dados - INE Projeto de Banco de Dados Relacionais. Prof. Mario Dantas

Aula 12 BD1 Dependências Funcionais e Normalização. Profa. Elaine Faria UFU

NORMALIZAÇÃO. Lílian Simão Oliveira

Refinamento de Esquemas e Normalização

DCC/UFRJ Bancos de Dados IPedro Manoel da Silveira. Projeto de BD Relacionais. Objetivos do Projeto de BD. PMS v2bancos de Dados Relacionais 1

Forma Normal de Boyce-Codd

Banco de Dados. Dependências Funcionais e Normalização de Bancos de Dados Relacionais. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

GES013 Sistema de Banco de Dados Normalização de Relações em Projeto de BD (1FN a FNBC)

Objectivos com o Desenho de Bases de Dados Dependências funcionais 1ª Forma Normal Decomposição Forma Normal de Boyce-Codd 3ª Forma Normal

Objectivos com o Desenho de Bases de Dados Dependências funcionais 1ª Forma Normal Decomposição Forma Normal de Boyce-Codd 3ª Forma Normal

Normalização: Noções Básicas

Dependências funcionais e normalização

. Um modelo que represente fielmente a realidade. Um modelo capaz de responder às funcionalidades que se pretendem

INTRODUÇÃO AO MODELO RELACIONAL

Normalização: 3 a Forma Normal

Bases de Dados. Parte VII Normalização

Forma Normal de Boyce Codd 3 a Forma Normal

Bases de Dados. Parte VIII: Normalização

Uma base de dados está num estado de integridade se contém apenas dados válidos. Os dados armazenados devem estar de acordo com a realidade

Banco de Dados. Dependências Funcionais e Normalização de Bancos de Dados Relacionais. João Eduardo Ferreira Osvaldo Kotaro Takai

Introdução ao Modelo Relacional

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 4) Clodis Boscarioli

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI

26/03/2012. É uma restrição entre dois conjuntos de atributos do banco de dados. Definição formal: Significa que: Exemplos

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 5) Clodis Boscarioli

GBC043 Sistemas de Banco de Dados Normalização de Relações em Projeto de BD

Normalização para Bancos de Dados Relacionais

Dependência Funcional e Normalização)

Roteiro. Normalização. BCC321 - Banco de Dados I. Ementa. Para que serve a normalização? Posicionamento

1FN: os atributos de uma relação têm que ser atómicos. FNBC: para qualquer dependência funcional α β numa relação, ou α β é trivial ou α é super-chave

MODELO DE BANCO DE DADOS RELACIONAL

Dependências Multi-Valor, 4 a Forma Normal

Profa. Flávia Cristina Bernardini

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

UERJ Oscar Luiz Monteiro de Farias 1. Bancos de Dados. Mestrado em Engenharia de Computação área de concentração Geomática

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

MySQL & PHP. MySQL & PHP ODBC ODBC/C

Dependência Funcional e Normalização. Relembrando: Primeira Forma Normal (1FN) Relembrando: Segunda Forma Normal (2FN) Terceira Forma Normal (3FN)

Dependências Funcionais e Formas Normais. Formas Normais Pedro Sousa 1

Normalização. Normalização. Noção central: qualidade do projeto. Normalização : na Prática. Qual o problema desta imagem? Zoom

Restrições do modelo relacional

BA B SES DE DADOS I SES DE D LEI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2009/2010

Introdução aos Sistemas de Bancos de Dados 1 a versão - MAC5760 DCC-IME-USP J.E.FERREIRA e O.TAKAI Terceira Forma Normal (3FN)

Técnicas de Modelação de Dados

Bases de Dados. Normalização. Formas Normais. 1FN : atomicidade dos atributos. 2FN : proíbe dependência parcial de chaves

SISTEMAS DE INFORMAÇÃO

Bases de Dados 2012/2013 Dependências Funcionais e Normalização. Helena Galhardas 2013 IST. Bibliografia

Normalização de Esquemas de Banco de Dados. Prof. Carlos Bazilio

Bancos (Bases) de Dados Aula #6 Dependência Funcional Dependência Multivalorada

Forma Normal de Boyce-Codd

Dependência Funcional e Normalização. Qualidade de um Projeto. Semântica dos Atributos. Dependência Funcional e Normalização

Normalização. Anomalias Dependência e determinantes Normalização

GBC043 Sistemas de Banco de Dados

Unidade 4 Projeto de BD Relacional

4.1 Introdução. Unidade 4 Dependências funcionais e normalização para bancos de dados relacionais. Esta unidade tem como objetivo:

Cadeira de Tecnologias de Informação. Ano lectivo 2008/09. de Tabelas

Qualidade de projeto de BD relacional

Sistemas de Informação e Bases de Dados 2012/2013. Modelo Relacional. Alberto Sardinha 2012 IST

Normalização para Bancos de Dados Relacionais

Objetivos:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE NORMALIZAÇÃO

Refinamento de Esquemas e Formas Normais

Projeto de Bancos de Dados Relacional- Normalização. Vantagens da decomposição Normalização

Exemplo Seja a relação Inventário (peça, departamento, cor) com. Está na FNBC (não existem dependências funcionais). Mas, existem anomalias:

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional. Fernando Fonseca Ana Carolina

MC536. Modelo Relacional

Banco de Dados I 4 Normalização

Teoria e Metodologia de Projeto de Banco de Dados

Revisão e Exercícios. Relacionamento. Projeto de Bancos de Dados. Chave e Domínio. Tipos de Atributos

Base de Dados. BD 06 - Normalização. Vitor Vaz da Silva

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Parte II Modelo de Dados Relacional. Evandro E. S. Ruiz

Modelo Relacional Prof. Msc Denival A. dos Santos

Banco de Dados Aula 02

Modelo Relacional: Banco de Dados: coleção de relações cada relação tem um nome único.

Bancos (Bases) de Dados Aula #4 Modelo Relacional

DCC011 Introdução a Banco de Dados

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

Banco de Dados. Dependência Funcional e Normalização de Dados. Prof. Walteno Martins Parreira Jr 1

MATA60 BANCO DE DADOS Aula 5- Modelo Relacional. Prof. Daniela Barreiro Claro

Databases. Normalização. P. Serendero, (Todos os exercícios do aeroporto e marina são nossos)

Bases de Dados. Dependências funcionais. Menos tabelas com mais dados? loan_number amount L L

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

Modelo de Dados Relacional

Capítulo 2 Modelo Entidade- Relacionamento. Prof. Mario Dantas

Transformação de Diagramas MER em Diagramas DR

Banco de Dados. Aula 7 - Prof. Bruno Moreno 13/09/2011

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Modelo Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Roteiro da aula. Dependência Funcional e Normalização. Semântica dos Atributos. Qualidade de um Projeto. Dependência Funcional e Normalização

- O atributo Cursos contém valores não atómicos!!!

Modelo Relacional. Gerenciamento de Dados e Informação. Modelo Relacional Sejam os domínios D 1 (D- Pessoa) e D 2 (D- Endereço) Modelo Relacional

mod._1_teoria_sistemas de bancos de dados.doc

Transcrição:

1 Redundância é a causa de vários problemas com esquemas relacionais: armazenamento redundante, anomalias de inserção, de exclusão e de atualização. Restrições de integridade, particularmente dependências funcionais, podem ser usadas para identificar esquemas com esses problemas e para sugerir refinamentos. Principal técnica de refinamento: a decomposição de um esquema em sub-esquemas. A decomposição deve ser usada judiciosamente: Há motivos para se decompor uma relação? A decomposição pode causar problemas? 2 Copyright 1998, 1999 Francisco Reverbel 1

Considere o esquema: Pacientes(Id, Nome, Endereço, Telefone, Sexo, Data_nascimento, Sigla_convênio, Nome_convênio, Endereço_convênio, Telefone_convênio) Esse é um exemplo de mau projeto! Os dados de pacientes e os de convênios não deveriam estar na mesma tabela. Por que? Os dados de um convênio (nome, endereço e telefone do convênio) são repetidos para cada paciente associado a esse convênio. Por exemplo, os dados da AMIL serão repetidos para cada um de seus associados. 3 Copyright 1998, 1999 Francisco Reverbel Anomalia de inserção: Quando se inserir um paciente é preciso inserir também os dados do convênio, mesmo que já estejam cadastrados. Não é possível inserir um convênio sem inserir também um paciente. Anomalia de exclusão: Ao se excluir um paciente, se este for o único associado de um convênio então os dados do convênio serão perdidos. Anomalia de modificação: Para se modificar os dados de um convênio, é preciso atualizar os mesmos dados em todas as tuplas de pacientes que estejam associados àquele convênio. 4 Copyright 1998, 1999 Francisco Reverbel 2

Dependências funcionais (DFs) são restrições de integridade mais gerais que as restrições de chave. Exemplo de dependência funcional: {Sigla_convênio} {Nome_convênio, Endereço_convênio, Leia-se: Sigla_convênio determina funcionalmente Nome_convênio, Endereço_convênio e Telefone_convênio. Significado: Se duas linhas da tabela Pacientes tiverem o mesmo valor de Sigla_convênio, então elas tem de ter o mesmo valor de Nome_convênio, de Endereço_convênio e de Telefone_convênio. Em outras palavras: Não é válida uma tabela que tenha duas linhas que coincidem na(s) coluna(s) listadas antes da seta ( ), mas são diferentes em alguma coluna listada depois da seta. 5 Copyright 1998, 1999 Francisco Reverbel Como toda restrição de integridade, DFs são baseadas na semântica da aplicação. Podemos checar uma instância de tabela e ver se uma DF é violada ou não. Mas examinando uma instância NUNCA podemos concluir uma DF deve ser imposta ou não. Uma DF diz respeito a todas as possíveis instâncias! Uma restrição de chave é um caso especial de DF: a chave (ou superchave) determina funcionalmente todos os outros atributos da tabela. Como Id é chave da tabela Pacientes, temos que {Id} {Nome, Endereço, Telefone, Sexo, Data_nascimento, Sigla_convênio, Nome_convênio, Endereço_convênio, 6 Copyright 1998, 1999 Francisco Reverbel 3

Dadas algumas DFs, podemos geralmente inferir outras. Dadas as DFs podemos inferir que {Id} {Sigla_convênio} {Sigla_convênio} {Endereço_convênio} {Id} {Endereço_convênio} Regras de inferência (X, Y e Z são conjuntos de atributos): Reflexividade: Se Y X então X Y. Aumentação: Se X Y, então XZ YZ. Transitividade: Se X Y e Y Z então X Z. União: Se X Y e X Z então X YZ. Decomposição: Se X YZ então X Y e X Z. 7 Copyright 1998, 1999 Francisco Reverbel O fecho (closure) de um conjunto de dependências funcionais F é o conjunto de todas as DFs que podem ser inferidas a partir de F. Não é preciso listar todas as DFs impostas sobre um esquema. Normalmente especificarmos um subconjunto dessas DFs e considerarmos o fecho desse subconjunto. Para o esquema Pacientes, é suficiente especificarmos as DFs: {Id} {Nome, Endereço, Telefone, Sexo, Data_nascimento, Sigla_convênio} {Sigla_convênio} {Nome_convênio, Endereço_convênio, O fecho inclui dependências funcionais triviais (aquelas que são satisfeitas por todas as instâncias de tabela possíveis). As dependências triviais tem a forma X Y, onde Y X. Exemplos: {Nome, Endereço} {Nome} {Nome} {Nome} 8 Copyright 1998, 1999 Francisco Reverbel 4

Certas DFs causam redundância! Para cada associado de um convênio, os dados do convênio são repetidos na tabela Pacientes. A causa desse problema é a DF {Sigla_convênio} {Nome_convênio, Endereço_convênio, Se uma relação estiver numa certa forma normal (FNBC ou 3FN), tais problemas são evitados ou minimizados. Essas formas normais são definidas em termos de dependências funcionais. Elas nos fornecem critérios para decidir o esquema de uma relação deve ser decomposto em sub-esquemas ou não. Existem várias formas normais: 2FN, 3FN, FNBC, 4FN. Estudaremos as que têm importância prática (FNBC e 3FN). 9 Copyright 1998, 1999 Francisco Reverbel Uma relação está na FNBC (BCNF) se todas as suas dependências funcionais não triviais forem da forma superchave conjunto-de-atributos Em outras palavras: além das dependências funcionais triviais, só podemos ter restrições de chave. Uma relação na FNBC está livre de redundâncias que podem ser detetadas usando DFs. O esquema Pacientes não está na FNBC: a dependência funcional {Sigla_convênio} {Nome_convênio, Endereço_convênio, é uma violação da FNBC, pois Sigla_convênio não é chave. 10 Copyright 1998, 1999 Francisco Reverbel 5

Decompomos Pacientes nas duas relações abaixo. Pacientes1(Id, Nome, Endereço, Telefone, Sexo, Data_nascimento, Sigla_convênio) Convênio(Sigla_convênio, Nome_convênio, Endereço_convênio, Telefone_convênio) Essas relações estão na FNBC com respeito ao conjunto de DFs {Id} {Nome, Endereço, Telefone, Sexo, Data_nascimento, Sigla_convênio} {Sigla_convênio} {Nome_convênio, Endereço_convênio, Agora a segunda dependência funcional não viola a FNBC, pois Sigla_convênio é chave de Convênios. Essa decomposição elimina a redundância do esquema original Pacientes. 11 Copyright 1998, 1999 Francisco Reverbel Três problemas potenciais devem ser considerados: ➊ Certas consultas requerem mais processamento (junções). Exemplo: Qual o telefone do convênio do paciente José da Silva? ➋ Perda de informação: Dadas instâncias das tabelas decompostas, pode não ser possível reconstruirmos a instância correspondente da tabela original! Isso é inaceitável e não acontece no caso de nosso exemplo. ➌ Custo de verificação de dependências: Para verificar se uma dependência é satisfeita pode ser preciso efetuar junções das tabelas decompostas (a verificação dessa dependência é custosa). Geralmente inaceitável, não acontece no caso de nosso exemplo. 12 Copyright 1998, 1999 Francisco Reverbel 6

Uma decomposição é sem perdas se for sempre possível reconstruir a instância da tabela original efetuando a junção das instâncias correspondentes das tabelas decompostas. Exemplo de decomposição com perdas: A B C 1 2 3 4 5 6 7 2 8 A B 1 2 4 5 7 2 B C 2 3 5 6 2 8 A B C 1 2 3 4 5 6 7 2 8 1 2 8 7 2 3 perda de informação (ganho de tuplas) 13 Copyright 1998, 1999 Francisco Reverbel A decomposição de um esquema R em sub-esquemas X e Y é sem perdas se e somente se pelo menos uma das duas DFs abaixo valer: X Y X, ou X Y Y.» Caso especial: se valer a dependência U V, então a decomposição de R em UV e R V é sem perdas. Neste exemplo nenhuma delas vale! A B C 1 2 3 4 5 6 7 2 8 Verifique que a decomposição de Pacientes satisfaz esta condição! A B 1 2 4 5 7 2 B C 2 3 5 6 2 8 A B C 1 2 3 4 5 6 7 2 8 1 2 8 7 2 3 perda de informação (ganho de tuplas) 14 Copyright 1998, 1999 Francisco Reverbel 7

Considere uma relação R e as DFs associadas a ela. Se X Y violar a FNBC, decomponha R em XY e R Y. Aplicando esta idéia repetidamente, obteremos uma decomposição sem perdas de R em uma coleção de relações na FNBC. Em geral, mais de uma DF pode violar a FNBC. Dependendo da ordem com que usarmos as dependências violadoras, podemos obter decomposições diferentes (e mesmo assim corretas). Exemplo: o esquema e as DFs Empréstimos1(Nome_agência, Ativos, Cidade_agência, Num_empréstimo, Nome_cliente, Quantia) ➊ ➋ {Nome_agência} {Ativos, Cidade_agência} {Num_empréstimo} {Quantia, Nome_agência} Note que {Num_empréstimo, Nome_cliente} é a única chave. 15 Copyright 1998, 1999 Francisco Reverbel Empréstimos1(Nome_agência, Ativos, Cidade_agência, Num_empréstimo, Nome_cliente, Quantia) ➊ ➋ {Nome_agência} {Ativos, Cidade_agência} {Num_empréstimo} {Quantia, Nome_agência} A DF ➊ viola a FNBC, pois Nome_agência não é superchave de Empréstimos1. Portanto decompomos essa tabela em Agências(Nome_agência, Ativos, Cidade_agência) Empréstimos2(Nome_agência, Num_empréstimo, Nome_cliente, Quantia) A DF ➋ viola a FNBC, pois Num_empréstimo não é superchave de Empréstimos2. Portanto decompomos essa tabela em Empréstimos(Num_empréstimo, Nome_agência, Quantia) Tomadores(Num_empréstimo, Nome_cliente) Resultado: 3 tabelas (Agências, Empréstimos e Tomadores). 16 Copyright 1998, 1999 Francisco Reverbel 8

Considere o esquema e as DFs: Gerentes(Nome_agência, Nome_cliente, Nome_gerente) ➊ ➋ {Nome_gerente} {Nome_agência} {Nome_cliente, Nome_agência} {Nome_gerente} (Cada cliente de uma agência tem um gerente pessoal na agência.) Uma decomposição FNBC é: Gerentes_agências(Nome_gerente, Nome_agência) Gerentes_clientes(Nome_cliente, Nome_gerente) Problema: É necessário fazer uma junção para verificar se a segunda DF é violada ou não. Inaceitável! Teríamos que fazer uma junção após cada atualização dessas tabelas, apenas para assegurarmos que a DF ➋ é cumprida. 17 Copyright 1998, 1999 Francisco Reverbel Decomposição com preservação de dependências: Considere uma relação R e as DFs associadas a ela, bem como uma decomposição de R em R1, R2,, Rn. Se, para cada Ri, assegurarmos que as DFs aplicáveis a Ri (aquelas que envolvem somente atributos de Ri) estão satisfeitas, então podemos ter certeza que todas as DFs associadas a R estão satisfeitas. Nossa decomposição FNBC da tabela Gerentes não tem esta propriedade. A dependência {Nome_cliente, Nome_agência} {Nome_gerente} foi perdida. É importante considerar o fecho do conjunto de DFs! Exemplo: R(A,B,C), com DFs {A} {B}, {B} {C} e {C} {A}. A decomposição de R em (A,B) e (B,C) é com preservação de dependências? A terceira DF é preservada ou não? 18 Copyright 1998, 1999 Francisco Reverbel 9

Uma relação R está na 3FN (3NF) se cada uma de suas dependências funcionais da forma X A cair num dos casos abaixo: ➀ A X (isto é, a DF é trivial), ou ➁ X é uma superchave de R, ou Aqui X é um conjunto de atributos e A é um atributo simples. ➂ A faz parte de alguma chave de R (A é um atributo primo). Em outras palavras: além das DFs triviais, só podemos ter restrições de chave ou dependências da forma conjunto-de-atributos atributo-primo A 3FN é uma forma normal mais fraca (menos restritiva) que a FNBC. Toda relação que estiver na FNBC estará também na 3FN, mas a recíproca não é verdadeira. 19 Copyright 1998, 1999 Francisco Reverbel!"$#&%&(')"+*-,. /"10)'2%&3'2"+,.5476 Considere novamente o exemplo do gerente pessoal : Gerentes(Nome_agência, Nome_cliente, Nome_gerente) ➊ ➋ {Nome_gerente} {Nome_agência} {Nome_cliente, Nome_agência} {Nome_gerente} A tabela tem as seguintes chaves candidatas: {Nome_cliente, Nome_agência} Todos os atributos são primos! {Nome_cliente, Nome_gerente} Essa tabela não está na FNBC, mas está na 3FN! A DF ➊ é uma violação da FNBC, pois Nome_gerente não é chave. Ela não viola a 3FN, pois Nome_agência é um atributo primo. Note que a tabela Gerentes não está livre de problemas de redundância. A associação entre um gerente e sua agência é repetida para cada cliente desse gerente. 20 Copyright 1998, 1999 Francisco Reverbel 10

A FNBC nos assegura que uma relação está livre de redundâncias detectáveis através de DFs. Com a 3FN, alguma redundância ainda é possível. A 3FN é uma solução de compromisso! Dada uma relação que não está na FNBC, nem sempre é possível conseguirmos uma decomposição FNBC que seja sem perdas e com preservação de dependências. Se insistirmos numa decomposição FNBC, poderemos ter que abrir mão da preservação de dependências. Mas é sempre possível uma decomposição 3FN que seja sem perdas e com preservação de dependências. Nos casos (raros) em que for necessário optar entre a FNBC e a preservação de dependências, ficamos com a preservação de dependências e com uma forma normal mais fraca, a 3FN. 21 Copyright 1998, 1999 Francisco Reverbel Como a FNBC nos garante que não temos redundância detectável através de DFs, devemos considerar essa forma normal como um objetivo desejável do projeto lógico. Se uma relação não estiver na FNBC, podemos tentar decompô-la num coleção de relações na FNBC. A decomposição deve ser sem perdas e com preservação de dependências. Se isso não for possível, considerar decomposição na 3FN. Lembrar que a decomposição tem um custo (junções). Não assuma a postura rígida, dogmática, de normalizar a todo custo! Decomposições devem ser efetuadas e reexaminadas tendo em mente os requisitos de desempenho da aplicação. 22 Copyright 1998, 1999 Francisco Reverbel 11