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

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

INF1383 -Bancos de Dados

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

Banco de Dados - Senado

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

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

Base de Dados. Sistemas de Informação. Base de Dados - Índice Introdução Componentes Base de Dados. Introdução. Introdução. Introdução.

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

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

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 3 a Forma Normal

Dependências funcionais e normalização

2010 Diagrama Entidade - Associação

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

Dependência Funcional e Normalização)

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

Modelo Lógico de Dados (MLD) Origens do modelo relacional

conteúdos. bases de dados, SGBD e aplicações. conceitos. modelo relacional (DER) conceitos

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

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

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

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

Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade.

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

Bases de Dados. Parte VII Normalização

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

Bases de Dados. Parte VIII: Normalização

Normalização para Bancos de Dados Relacionais

Informática II Cap. 5-1 Modelo Relacional, Normalização e Diagramas E-R

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

Introdução ao Modelo Relacional

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

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

Técnicas de Modelação de Dados

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

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

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

INTRODUÇÃO AO MODELO RELACIONAL

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

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

Modelo Entidade Relacionamento Estendido (ERE)

Normalização para Bancos de Dados Relacionais

Restrições do modelo relacional

Tecnologia de Base de Dados Processo de Normalização. MSc. Eugénio Alberto Macumbe

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

Modelo Relacional. Comparação entre Tipos de Diagramas. Modelos de registos. Exemplo de uma Relação

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

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

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

Cadeira de Tecnologias de Informação. Normalização Relacional

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)

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

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

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

Parte NORMALIZAÇÃO. As regras mais importantes oferecidas pelo Sistema Gerenciador de Banco de Dados. são:

Forma Normal de Boyce-Codd

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

MODELO RELACIONAL PARTE 2

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

Profa. Flávia Cristina Bernardini

Objetivos:

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

Fundamentos de Banco de Dados e Modelagem de Dados

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas

MODELO RELACIONAL Prof.: Jacson Tiola Técnico em Redes de Computadores

Banco de Dados Aula 02

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

Ciência da Computação MODELAGEM DE DADOS Professor Décio Jorge Craveiro Machado

Modelo Relacional. Banco de Dados 2º trimestre Prof. Patrícia Lucas

Normalização de Dados. Disciplina: Fundamentos de Banco de dados Docente: Kelyn Schenatto

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

Normalização: 3 a Forma Normal

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

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

Banco de dados. Conteúdo: Modelo relacional Prof. Patrícia Lucas

MÓDULO 2 GESTÃO DE BASE DE DADOS

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

Modelo Lógico de Dados. Modelo Relacional

Refinamento de Esquemas e Normalização

Banco de Dados. Modelo de Dados Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Qualidade de projeto de BD relacional

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

MODELO DE BANCO DE DADOS RELACIONAL

Engenharia Reversa de Arquivos e Normalização

Informática. Banco de Dados Relacional. Professor Julio Alves.

Teoria e Metodologia de Projeto de Banco de Dados

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Ano: 2014 Banca: FCC Órgão: TJ-AP Prova: Analista Judiciário - Área Apoio Especializado - Tecnologia da Informação

Modelo Relacional (Parte 1) Abordagem Relacional

Curso Profissional de Técnico de Multimédia 11ºAno. Disciplina: Sistemas de Informação

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

MySQL & PHP. MySQL & PHP ODBC ODBC/C

!" # Modelos de dados. 1ª geração. 2ª geração. 3ª geração. Modelo Hierárquico Modelo Rede. Modelo Relacional

Modelo Relacional e Normalização de Dados. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

Abordagem relacional. Capítulo 4

SISTEMAS DE INFORMAÇÃO

Análise de Sistemas de Informação

Transcrição:

2. Modelo Relacional... 2.1. Estrutura de Dados Relacional 2.2. Álgebra Relacional 2.3. Linguagens Relacionais 2.4. Restrições de integridade 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 Empregado (Emp#, Nome, Categoria, Salário, Dep#) Não pode ser negativo Emp# Nome Categoria Salário Dep# Data_Nasc 1 António Sousa Programador -1000 5 20-03-1980 2 Ana Amaral Programador 1000 6 22-03-1970 3 Analista 2000 7 12-04-1964 4 Carlos Silva Operador 1 5 20-08-2060 O campo não pode ser nulo Demasiado pequeno Data inválida Restrições de integridade são regras, que definem a validade dos dados Por exemplo, para a relação anterior: - O campo Nome não pode ser nulo - O Salário tem que ser superior ao valor do salário mínimo nacional - A Data de nascimento tem que ser maior que 01-01-1920 e menor que 01-01-2000!!. Estas regras vão fazer parte da definição da tabela. 63

. Quando um dado é inserido, alterado ou apagado o SGBD vai verificar se as regras definidas são respeitadas. As regras do exemplo anterior denominam-se restrições de Integridade de domínio São regras que se aplicam aos atributos de uma dada tabela, definindo o domínio de cada atributo. Integridade de entidade Emp# Nome Categoria Salário Dep# Data_Nasc 1 António Sousa Programador 1000 5 20-03-1980 2 Ana Amaral Programador 1000 6 22-03-1970 3 José Costa Analista 2000 7 12-04-1964 2 Carlos Silva Operador 500 5 20-08-1980 Um campo que é chave primária não pode ter valores duplicados (nem ter valor nulo) - Ao declararmos um atributo como chave primária da relação o SGBD não deixa que a relação tenha dois tuplos com o mesmo valor nesse atributo 64

Integridade referencial Restrição de integridade que relaciona duas relações Empregado Emp# Nome Categoria Salário Dep# Data_Nasc 1 António Sousa Programador 1000 5 20-03-1980 2 Ana Amaral Programador 1000 6 22-03-1970 3 José Costa Analista 2000 7 12-04-1964 4 Carlos Silva Operador 500 5 20-08-1980 Departamento Dep# Nome Local 5 D1 Lisboa 6 D2 Porto 7 D3 Lisboa O atributo Dep# na tabela Empregado é chave estrangeira (ou externa) sendo chave primária na tabela Departamento Se, se indica que Dep# é chave estrangeira da relação Empregado então cada valor do Atributo Dep# na tabela Empregado tem obrigatoriamente que existir na tabela Departamento. O que acontece quando se tenta apagar na tabela Departamento o Departamento cujo Dep# = 5? - Ou o SGBD não deixa apagar - Ou apaga o registo e depois apaga na tabela Empregado todos os Empregados cujo número de departamento é 5 (apagamento em cascata) 65

Regras de negócio Restrições de integridade mais complexas que não podem ser definidas na estrutura da base de dados. São verificadas pelos programas de aplicação. Exemplos. O salário de um empregado não pode diminuir, só aumentar. Um empregado não pode ganhar mais do que o seu chefe... 66

3. Teoria da Normalização Ao modelar a informação procura-se:. Um modelo que represente fielmente a realidade. Um modelo capaz de responder às funcionalidades que se pretendem Queremos obter um modelo com propriedades que garantam:. Redundância mínima. Facilidade de Manutenção. Estabilidade face a futuras alterações Dados redundantes EmpregadoDepartamento NumEmp Nome Categoria Salário Dep TelDep LocalDep 10 José da Silva Programador 2500 1 213334555 Lisboa 20 Maria Costa Analista 5000 2 224446888 Porto 30 João Fonseca Operador 600 1 213334555 Lisboa 40 Ana Faria Analista 5200 4 275222333 Covilhã Nesta tabela existem dados redundantes. Os dados de um dado departamento são repetidos para cada empregado desse departamento. Se apagarmos este número de departamento deixamos de saber qual o departamento do empregado 30. Dado duplicado mas não redundante Dados redundantes. Se apagarmos esta informação continuamos a saber os dados do departamento 1!! 67

Relações que têm dados redundantes podem vir a ter anomalias de inserção, eliminação ou modificação. Anomalias de inserção:. Para inserir um novo empregado temos que inserir toda a informação do departamento a que pertence tendo o cuidado de não criar inconsistências com a informação já existente.. Não é possível criar um departamento que ainda não tenha empregados. Note-se que o atributo NumEmp é chave da relação logo o seu valor não pode ser nulo. Anomalias de eliminação:. Se eliminarmos um empregado que seja o único empregado de um dado departamento perdemos a informação desse departamento. Anomalias de modificação:. Se quisermos alterar um atributo de um dado departamento (por ex. o telefone do dep. 1) temos que actualizar o valor do atributo em todos os empregados que pertencem a esse departamento. Podemos evitar as anomalias anteriores se decompusermos a relação EmpregadoDepartamento nas relações: 68

Empregado (NumEmp, Nome, Categoria, Salário, Dep) e Departamento(Dep, TelDep, LocalDep). A teoria da normalização, desenvolvida por Edgar Codd no âmbito do modelo relacional, define um processo de estruturar as tabelas de uma base de dados de forma a minimizar a redundância de dados. A teoria da normalização utiliza o conceito da Dependência Funcional que vamos começar por estudar: 3.1. Dependências Funcionais Seja a relação: Morada ( Nome, Endereço, Cidade, CodPostal, Telefone ) Assumindo que todos os nomes são diferentes, podemos descrever as seguintes dependências entre os atributos da relação morada: i) Dado um Nome específico, este determina um único tuplo da relação Morada (isto é, determina valores únicos para os atributos Endereço, Cidade, CodPostal, Telefone) ii) Dados valores dos atributos Endereço e Cidade, todos os tuplos da relação Morada com esses valores (se existirem) têm o mesmo valor do atributo CodPostal. 69

iii) A um determinado valor de CodPostal corresponde um único valor do atributo Cidade. As associações lógicas descritas entre os atributos da relação Morada são denominadas dependências lógicas. Tipos de dependências lógicas:. Dependências Funcionais. Dependências Multivalor (a estudar mais tarde). Dependências de Junção (a estudar mais tarde) (1) Definição de Dependência Funcional (DF) Seja R (A 1, A 2,..., A n ) um esquema de relação e X e Y subconjuntos de { A 1, A 2,..., A n } Dizemos que existe uma Dependência Funcional entre X e Y e escrevemos X Y (X determina Y) sse em qualquer instante t, quaisquer tuplos de R com o mesmo valor de X têm necessariamente o mesmo valor de Y. Diagrama de Dependência Funcional X Y. X determina Y. Y depende de X 70

(2) Exemplo Nome Endereço Nome Cidade Nome CodPostal Nome Telefone Nome Endereço Cidade Endereço, Cidade CodPostal CodPostal Cidade CodPostal Telefone (3) Chave (candidata) Seja a relação R (A 1, A 2,..., A n ) e X um conjunto de atributos de R (X { A 1, A 2,..., A n } ) X é chave de R sse (i) i X A i i = 1,2, n X determina funcionalmente todos os atributos de R (ii) y x : i Y A i i = 1,2, n Não existe um subconjunto de X que determine todos os atributos de R Nome é a única chave da relação morada 71

(4) Super-chave Se um conjunto de atributos X satisfaz a condição (1) mas não a (2) é denominado Super-chave da relação. Qualquer conjunto de atributos que contenha o atributo Nome é super-chave da relação morada (5) Toda a relação tem uma chave Demonstração: Dada uma relação R (A 1, A 2,..., A n ) verifica-se que A 1, A 2,..., A n A i i = 1,2, n Se não existe um X {A 1, A 2,..., A n } tal que X A i então A 1, A 2,..., A n é a chave de R. Caso contrário X contém uma chave. (6) Chave Primária - É a chave candidata escolhida. - Nenhuma das suas ocorrências pode ter valor nulo. 72

(7) Propriedades básicas das DF s (i) Unicidade Sejam f: X Y e g: X Y, dependências funcionais, então f = g (ii) Reflexibilidade Se X Y então existe a dependência funcional Y X Dependência Funcional Trivial: todo o conjunto de atributos determina todos os seus subconjuntos. (iii) Transitividade Se X Y e Y Z então X Z (iv) União Se X Y e X Z então X YZ Exemplo: Voltando à relação Morada, Morada ( Nome, Endereço, Cidade, CodPostal, Telefone ). Vimos que existiam as Df s: Nome Endereço 73

Nome Cidade Nome CodPostal Nome Telefone Endereço, Cidade CodPostal CodPostal Cidade A Por reflexibilidade, Endereço, Cidade Endereço Endereço, Cidade Cidade [1] B De Endereço, Cidade CodPostal e CodPostal Cidade, por transitividade obtemos Endereço, Cidade Cidade [2] C Pela unicidade [1] e [2] são a mesma dependência funcional. D De Nome Telefone e Nome Endereço obtemos por união Nome Telefone, Endereço Por união obtemos também Nome Cidade, CodPostal Novamente por união Nome Telefone, Endereço, Cidade, CodPostal 74

o que significa que Nome é chave da relação Morada. (8) Propriedades derivadas das DF s (i) Distributividade (decomposição) Se X YZ então X Y e X Z Dem. YZ Y e YZ Z (por reflexibilidade) Se X YZ e YZ Y então por transitividade X Y q.e.d. 1 Se X YZ e YZ Z então por transitividade X Z q.e.d. (ii) Aumento Se X Y e W Z então XW YZ Dem. XW X (reflexibilidade) e X Y => (por transitividade) XW Y XW W (reflexibilidade) e W Z => ( por transitividade) XW Z XW Y e XW Z => (por união) XW YZ q.e.d. 1 "quod erat demonstrandum" 75

(iii) Pseudo transitividade Se X Y e YW Z então XW Z Dem. X Y e W W (por reflexibilidade) => (por aumento) XW YW XW YW e YW Z => (por transitividade) XW Z Exemplo: Aplicando a pseudo-tansitividade às dependências funcionais Nome Endereço e Endereço, Cidade CodPostal obtemos Nome, Cidade CodPostal (9) Perda de informação Seja a relação R (Nome, Telefone, Cidade) em que os atributos Telefone e Cidade não dependem funcionalmente do atributo Nome 76

Nome Telefone Nome Cidade (isto é, uma pessoa pode ter mais que um telefone numa ou mais cidades) Num dado instante podemos ter; R Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria As projecções R1 = <Nome, Telefone> (R) e R2 = <Nome, Cidade > (R), no mesmo instante de tempo, teriam como resultado R1 Nome Telefone Nome Cidade José da Silva 123456789 José da Silva Leiria José da Silva 222222222 José da Silva Faro António Costa 333333333 António Costa Leiria R2 A junção das duas projecções sobre o atributo Nome, R1 <Nome = Nome > R2, é representada pela tabela 77

Nome Telefone Cidade José da Silva 123456789 Leiria José da Silva 123456789 Faro José da Silva 222222222 Leiria José da Silva 222222222 Faro António Costa 333333333 Leiria A junção da decomposição não é igual à relação inicial!!! A relação não pode ser decomposta desta forma. (10) Decomposição sem perda (Lossless Join) Seja R( X, Y, Z) com X, Y e Z conjuntos de atributos. Se X Y ou X Z então R( X, Y, Z) = <X, Y> (R) <X = X > <X, Z> (R) Dem: 1) Observemos em primeiro lugar que R(X,Y,Z) é sempre um subconjunto de <X, Y> (R) <X = X > <X, Z> (R) A Seja xyz um tuplo de R(X,Y,Z), - se xyz está em R(XYZ) então xy está em <X, Y> (R) e xz está em <X, Z> (R) 78

- a junção dos tuplos xy e xz dá o tuplo xyz Portanto xyz <X, Y> (R) <X = X > <X, Z> (R) 2 ) Falta provar que se X Y ou X Z então <X, Y> (R) <X = X > <X, Z> (R) R(X, Y, Z) (i) Supondo que X Y, ( neste caso se xyz R(X, Y, Z) e xy z R(X, Y, Z) então y = y ) Se xyz <X, Y> (R) <X = X > <X, Z> (R) então existem y e z tais que xyz R(X, Y, Z) e xy z R(X, Y, Z) Mas X Y (i) => y = y logo xyz R(X, Y, Z) Portanto cada elemento de <X, Y> (R) é elemento de R(X, Y, Z) <X = X > <X, Z> (R) B A e B = > q.e.d. R( X, Y, Z) = <X, Y> (R) <X = X > <X, Z> (R) 79

3.2. Normalização A normalização de uma relação é obtida pela sua decomposição em duas ou mais relações de acordo com um procedimento bem definido. Três níveis de normalização foram definidos por Codd: 1ª Forma Normal 2ª Forma Normal 3ª Forma Normal Posteriormente R. Boyce e Codd definiram a Forma Normal de Boyce-Codd (FNBC) Mais tarde Fagin propôs: 4ª Forma Normal 5ª Forma Normal. Uma relação numa forma normal mais avançada tem menos dados redundantes.. Se uma relação está numa forma normal mais avançada também está nas formas normais anteriores. 5FN 1FN 2FN 4FN FNBC 3FN 2FN 1FN 80