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



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

Introdução às Bases de Dados

Exercício de Normalização Escola Secundária de Emídio Navarro 2002/2003 Aplicações Informáticas 11º ano

Diagrama de Entidade Associação ou Relacionamento

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

Depois de obtido o diagrama E/A há que estabelecer o esquema relacional correspondente.

Databases. Dependências Funcionais

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

Banco de Dados Lista de Exercícios 01

MODELO DE DADOS. 1. Modelo de Dados. É uma imagem gráfica de toda a base de informações necessárias para um determinado empreendimento.

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

MODELO DE DADOS. É uma imagem gráfica de toda a base de informações necessárias para um determinado empreendimento.

MODELAGEM DE DADOS - NORMALIZAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

Dependência funcional

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

ferramentas de produtividade

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

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

Teoria De Bases de dados

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Introdução às Bases de Dados

BANCO DE DADOS. Eliminar redundâncias e inconsistências de um banco de dados, com reorganização mínima dos dados.

Dependências Funcionais

Modelo de Entidade e Relacionamento (MER) - Parte 07

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

UML (Unified Modelling Language) Diagrama de Classes

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

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

ATIVIDADE 11. Questão 1 Para as relações apresentadas a seguir, indique a forma normal em que cada uma delas se encontra.

Obrigatoriedade de participação de uma entidade numa associação. Uma entidade pode participar numa associação de duas formas:

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional

Prof. Alexandre Unterstell Banco de Dados I

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Sistemas de Informação

Departamento de Engenharia de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Disciplina: Unidade III: Prof.: Período:

Manual de Serviços WEB

MD Teoria dos Conjuntos 1

MEMOREX BANCO DE DADOS por Paulo Marcelo

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

BANCO DE DADOS I AULA 6. Wlllamys Araújo willamysaraujo7@gmail.com

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

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Criação de Páginas Web - MS Word 2000

1- Identifique para cada questão abaixo, se o enunciado se refere a View, Stored Procedures, Trigger ou Function. Apenas um por questão.

Profa. Daniela Barreiro Claro

Orientação a Objetos

Capítulo 5 Complemento. 5.1 Laudon, Cap. 5

Instituto Politécnico de Beja Escola Superior de Tecnologia e Gestão. GesStock. Engenharia Informática. Base de Dados II

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Algoritmos e Estrutura de Dados III. Árvores

Transição de POC para SNC

Uma Aplicação de gestão de stocks com data bases hierárquicos, relações lógicas e indexação secundária, e sua exploração em Teleprocessamento.

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Ficheiros de dados, registos e campos pág. 2 Limitações das bases de dados baseadas numa só tabela pág. 2 Sistemas de Gestão de Base de Dados pág.

Tecnologias e Linguagens para Banco de Dados I. Expressão do Relacionamento. Expressão do Relacionamento

Dependências Multi-Valor, 4 a Forma Normal

Figura 1. Figura 2. Prova Escrita de Base de Dados 5 Novembro V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos)

a 1 x a n x n = b,

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

8. Perguntas e Respostas

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Manual de Utilização de Certificados Digitais. Microsoft Word 2003

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/ Junho 2005 duração: 2h30m

P S I 3. º A N O F 0 F I C H A I N F O R M A T I V A

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber

Engenharia de Software III

Construir um modelo de dados é: - Identificar, Analisar e Registar a política da organização acerca dos dados

Bases de Dados. Parte III: O Modelo Relacional

UD 4: Sistema de Gerenciamento de Banco de Dados

Prof.: Clayton Maciel Costa

Análise e Resolução da prova de Auditor Fiscal da Fazenda Estadual do Piauí Disciplina: Matemática Financeira Professor: Custódio Nascimento

Importação de Notas pelo Código de Barras DANFE... 12

Breve referência à Teoria de Anéis. Álgebra (Curso de CC) Ano lectivo 2005/ / 204

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

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

Definida pelo American National Standard Institute (ANSI) em 1986

Refinamento de Esquemas e Formas Normais

INF1383 -Bancos de Dados

Roteiro 3 Modelagem relacional

Curso Superior em Tecnologia de Análise e Desenvolvimento de Sistemas. Campus Alegrete. Banco de Dados I. Cristhiano Bossardi de Vasconcellos.

Manual do GesFiliais

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

Data Encomenda, Data Entrega; tem também o código Artigo, Descrição, Quantidade e Preço para cada artigo; bem como o Total Encomenda.

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

Exercícios de Lógica Exercícios de Fixação 08

Sistema para Oficina Eletro-mecânica de Veículos

Desenvolvimento de Sistema de Software

Núcleo de Pós Graduação Pitágoras

MIG - Metadados para Informação Geográfica

Processo de desenvolvimento de sistema de informação - DSI

Documento de Análise e Projeto VideoSystem

Transcrição:

3. Teoria da Normalização 3.1. Dependências Funcionais 3.2. Normalização 3.2.1. Primeira Forma Normal (1FN) Uma relação está na 1ª Forma Normal se. Cada atributo contém apenas valores atómicos.. Não há conjuntos de atributos repetidos descrevendo a mesma característica. Exemplo de relações que não estão na 1ºForma Normal 1) PessoaCursos1 Nome Endereço NIF Cursos Artur Covilhã 123456789 Programador Ana Fundão 222222222 Operador, Programador Carlos Covilhã 222333444 Analista, Programador, Operador Paulo Guarda 555666777 Operador, Analista - O atributo Cursos contém valores não atómicos!!! 81

2) PessoaCursos2 Nome Endereço NIF Curso1 Curso2 Curso3 Artur Covilhã 123456789 Programador Ana Fundão 222222222 Operador Programador Carlos Covilhã 222333444 Analista Programador Operador Paulo Guarda 555666777 Operador Analista - São repetidos atributos do mesmo tipo, curso1, curso2, curso3. (Diz-se que a relação tem um grupo repetitivo) - Os tuplos correspondentes a alunos com apenas 1 ou dois cursos vão ter valores nulos para alguns atributos. - Como representar uma pessoa com mais do que três cursos? Suponhamos a relação, R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto, Preço_produto, Quantidade)* ) * - Os dados de cada produto encomendado (isto é, de cada linha da nota de encomenda) constituem um grupo de atributos que se repete. Como decompor a relação? 82

A uma nota de encomenda corresponde um único cliente (nº e nome) e uma única morada de cliente. Isto é, existe a Dependência Funcional, N_nota_enc Cod_cliente, Nome_cliente, Morada_cliente Podemos decompor a relação R nas relações: (ver secção 3.1 ponto 10 decomposição sem perda) Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) e Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_produto, Quantidade) A chave da relação Nota_de_enc é N_nota_enc. A chave da relação Linha_nota_enc é N_Nota_enc, Cod_produto Ambas as relações estão na 1ª Forma Normal (não têm grupos repetitivos). 3.2.2. Segunda Forma Normal (2FN) Seja a relação, R( Fornecedor, Peça, Cidade, Quantidade) em que Fornecedor Peça Peça Fornecedor Fornecedor Cidade 83

Num instante t, R Fornecedor Peça Cidade Quantidade Empresa A 1 Covilhã 100 Empresa A 2 Covilhã 200 Empresa A 3 Covilhã 300 Empresa B 1 Fundão 400 Empresa B 3 Fundão 500 Algumas anomalias: Inserção: Não é possível inserir um fornecedor sem que ele forneça alguma peça (Peça faz parte da chave). Eliminação: Se, por exemplo, a empresa B deixar de fornecer as peças 1 e 3, perdemos a informação sobre a cidade desse fornecedor. Modificação: Supondo que um fornecedor muda de cidade. Actualizar R significa actualizar todos os tuplos desse fornecedor. Se substituirmos R por R1 = <Fornecedor, Cidade> (R) R2 = <Fornecedor, Peça, Quantidade> (R) R1(Fornecedor, Cidade) R2 (Fornecedor, Peça, Quantidade) desaparecem as anomalias. A DF Fornecedor Cidade garante que R = R1 <Fornecedor = Fornecedor > R2 84

Definição: Dependência Funcional Elementar Seja R (X,Y,Z,...) com X, Y, Z conjuntos de atributos, a DF X Y é elementar se X X : X Y Definição: Dependência Funcional Parcial Se X Y e X Y (com X X ) diz-se que X Y é uma dependência funcional parcial. Definição: 2ª Forma Normal Seja R (A 1, A 2,..., A n ), R está na 2FN sse A i chave(s), X chave, se verifica que X A i é elementar De outra forma: - Uma relação está na 2ª forma normal se está na 1ª FN e os atributos que não são chave dependem da totalidade da chave. Nota: Um atributo pertencente a uma chave diz-se um atributo primo. 85

Exemplo: Linha_nota_enc (N_nota_enc, Cod_produto, Desc_produto, Preço_prod, Quantidade) As dependências funcionais, N_nota_enc, Cod_produto Desc_produto N_nota_enc, Cod_produto Preço_produto não são elementares, porque Cod_produto Desc_produto (1) Cod_produto Preço_produto (2) A relação Linha_nota_enc vai dar origem a: Linha_Nota_Enc ( N_nota_enc, Cod_produto, Quantidade) Produto ( Cod_produto, Desc_produto, Preço_produto) A DF Cod_produto Desc_produto, Preço_produto (obtida por união de (1) e (2)) garante que a decomposição é válida. 86

Casos especiais de relações em 2FN:. Se todos os atributos de uma relação são primos. ou. A chave da relação consiste num único atributo. Então a relação está na 2ª forma normal. Nota: A definição de 2FN não proíbe a existência de DF parciais entre atributos primos. Decomposição em 2ª Forma Normal Toda a relação R que não esteja na 2FN pode ser decomposta num conjunto de projecções que estão na 2FN. Dem. Suponhamos que R (A 1, A 2,..., A n ) não está na 2FN. Então existem subconjuntos disjuntos de { A 1, A 2,..., A n }, X e Y, tais que: - Y não tem atributos chave - X é chave - Existe a DF parcial X Y Seja Z o conjunto de atributos que não pertençam nem a X nem a Y. R pode ser representada por R(X,Y,Z) 87

Se X Y é uma DF parcial, então X pode ser representado por X X onde X Y é uma DF elementar. Num primeiro passo da decomposição substituímos R(XYZ) por <X, Y> (R) e <X, Z> (R) - <X, Y> (R) está na 2FN porque. X Y é elementar. Y contém todos os atributos não primos - Se <X, Z> (R) não está na 2FN aplicamos novamente o procedimento anterior. Resumindo, para vermos se uma relação está na 2FN: 1 Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN. 2 Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN. Se houver, então decompor de acordo com o esquema anterior. 88

3.2.3. Terceira Forma Normal (3FN) Seja E ( N_emp, Dep, Cidade) com N_emp Dep Dep N_emp Dep Cidade Cidade Dep E N_emp Dep Cidade a A X b A X c A X d B Y e B Y f C X g C X Anomalias Inserção: não podemos inserir um departamento se não tem empregados Eliminação: Se eliminamos o último empregado de um departamento perdemos a informação do departamento Modificação: O atributo cidade é repetido para cada empregado de um dado departamento; Uma alteração da localização de um departamento implica alterar a localização de todos os empregados desse departamento. 89

E( N_emp, Dep, Cidade) está na 2ª forma normal! Se substituirmos E por Empregado = <N_emp, Dep> (E) e Departamento = <Dep, Cidade> (E) desaparecem as anomalias. A DF Dep Cidade garante que E = Empregado <Dep=Dep> Departamento Ficamos com o esquema relacional Empregado (N_emp, Dep) Departamento (Dep, Cidade) Definição: Dependência Funcional Directa Seja R(X,Y,Z,...) X Z é directa sse Y R : Y X, X Y e Y Z (não trivial) X Y Z X Z é directa 90

Definição: 3ª Forma Normal Seja R (A 1, A 2,..., A n ), R está na 3FN sse A i chave(s), X chave, se verifica que X A i é directa De outra forma: - Uma relação está na 3FN se está na 2FN e nenhum dos atributos não chave depende de outro também não chave.! Exercício: provar que se uma relação está na 3FN então está também na 2FN Resolução: Suponhamos que R está na 3FN mas que tem um atributo A i (não chave) que depende parcialmente de um conjunto de atributos X, com X chave de R (Isto é, não está na 2FN). Para algum X X, X X A i logo X A i não é directa e portanto R não está na 3FN. Decomposição em 3ª Forma Normal Toda a relação R que não esteja na 3FN pode ser decomposta num conjunto de projecções que estão na 3FN. Se X Y ( com X chave), Y X e Y Z (não trivial) 91

(isto é, existe X Z não directa, com Z não chave) Decompor em R(YZ) e R(XYW) onde W tem todos os atributos que não são de X, nem de Y nem de Z. Exemplo 1: Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente) Cod_cliente Nome_cliente Cod_cliente Morada_cliente por união, Cod_cliente Nome_cliente, Morada_cliente (logo a DF N_nota_enc Nome_cliente, Morada_cliente (não é directa) A relação não está na 3FN. Decomposição: Cliente ( Cod_cliente, Nome_cliente, Morada_cliente) Nota_enc ( N_nota_enc, Cod_cliente ) 92

Exemplo 2: Cliente ( Código, Nome, Morada, Cod_postal) com, Código Nome Nome Código Código Morada => (por transitividade) Nome Morada Código Morada - Esta dependência funcional é directa? A relação está na 3ª forma normal? Resposta: Exercício: Normalize em 3FN o esquema relacional abaixo. Clientes ( N_cliente, (Endereços_para_remessa) *, Saldo, * - grupo repetitivo Limite_de_crédito, Desconto) Peças ( N_peça, Cod_armazém, Qtd_stock_armazém, - Uma peça pode existir em vários armazéns. Min_stock_armazém, Desc_peça, Cor) Encomendas ( N_enc, Cod_cliente, Endereço_remessa, Data, (N_peça, Qtd_pedida, Qtd_enviada)* ) 93

3.2.4. Forma Normal de Boyce-Codd (FNBC) Seja R (Cidade, Endereço, Cod_postal) com Cidade, Endereço Cod_postal Cod_postal Cidade Chaves: Cidade, Endereço Endereço, Cod_postal A relação está na 3FN mas existem algumas anomalias: Cidade Endereço Cod_postal c1 e1 p1 c1 e2 p2 c1 e3 p2 c2 e4 p3 Inserção: Não podemos inserir o código postal de uma cidade se não especificarmos o endereço. Eliminação: Ao eliminarmos o último endereço de um dado código postal perdemos a cidade correspondente. Modificação: Se é alterado o código postal de uma cidade é necessário alterar o código postal de todos os endereços com esse código postal. 94

Definição: Forma Normal de Boyce-Codd Uma relação R (A 1, A 2,..., A n ) está na Forma Normal de Boyce-Codd sse X Y não trivial: X e Y conjuntos de atributos de R: X é chave candidata de R De outra forma: - Uma relação está na FNBC se e só se todo o determinante da relação for uma chave candidata. Voltando ao exemplo anterior: Chaves: Cidade, Endereço Endereço, Cod_postal e existe a DF Cod_postal Cidade Cod_postal não é chave candidata logo a relação não está na FNBC. Decomposição: R1 (Cod_postal, Cidade) R2 ( Endereço, Cod_postal) Observação: A FNBC só é diferente da 3FN se a relação tem mais do que uma chave. 95

Exemplo 1: E ( Emp, Dep, Cidade) Emp Dep Dep Emp Dep Cidade Cidade Dep Não está na 3FN ( porque a DF Emp Cidade não é directa) Não está na FNBC ( porque na DF Dep Cidade o determinante (Dep) não é chave candidata). Decomposição: Duas decomposições sem perda de informação. Qual escolher? (1) E1 ( Emp, Dep) E2 ( Emp, Cidade) Emp Dep Emp Cidade (2) ou E1 (Emp, Dep ) E2 (Dep, Cidade) Emp Dep Dep Cidade Em (1) perdemos a DF Dep Cidade. Em (2) preservamos as DF s (Emp Cidade obtém-se por transitividade). A decomposição (2) é portanto a decomposição correcta. 96

Exemplo 2: Nota_enc( N_nota_enc, Cod_cliente, Nome_Cliente, Morada_cliente) Cod_cliente Nome_cliente Cod_cliente Morada _cliente Não está na 3FN (ver página 92) Não está na FNBC (Porque na DF Cod_cliente Nome_cliente, Morada_cliente Cod_cliente não é chave candidata) Decomposição: NE1 ( N_nota_enc, Cod_cliente) NE2 ( Cod_cliente, Nome_cliente, Morada_cliente) 3FN FNBC Exemplo 3: Relação com duas Chaves candidatas não sobrepostas. F( N_forn, Nome_forn, Cidade, Tipo) N_forn Nome_forn Nome_forn N_forn Chaves candidatas: N_forn Cidade, Tipo N_forn Nome_forn Cidade, Tipo Nome_form 3 FN? FNBC? 97

Exemplo 4: Relação com duas Chaves candidatas sobrepostas. F( N_forn, Nome_forn, N_peça, Qtd) N_forn Nome_forn Nome_forn N_forn N_forn, N_Peça Qtd Chaves candidatas: N_forn, N_peça Nome_forn, N_peça 3FN? sim FNBC? não, porque na DF N_forn não é chave candidata. N_forn Nome_forn Decompor em: F1 ( N_forn, Nome_forn) F2 ( N_forn, N_peça, Qtd) Ambas estão na FNBC. Se uma relação está na FNBC então está na 3FN. Dem. Seja R (A 1, A 2,...A n ) na FNBC. Suponhamos que existe uma DF não directa X A i tal que X Y, Y X e Y A i para algum A i não primo e X chave. (Isto é, R não está na 3FN). Mas, se existe Y A i (não trivial) então Y é chave candidata de R (porque por hipótese R está na FNBC) e portanto Y X. 98

Se uma relação não está na FNBC pode ser decomposta num conjunto de Decomposição em FNBC. projecções. Seja R(X,Y,Z) uma relação que não está na FNBC, onde X, Y e Z são conjuntos de atributos tais que X Y (não trivial) e X Z (logo X não é chave candidata de R) - Substituir R(XYZ) por R(X,Y) e R(X,Z). - Se necessário repetir o processo. Exercício: Decomponha em 3FN a relação Proprietário( N_carro, Marca, Tipo, Cor, BI, Nome, Data, Preço) onde N_carro Cor, Tipo Tipo Marca, Preço BI Nome N_carro, Nome Data 99

100