Qualidade de projeto de BD relacional

Documentos relacionados
ENGENHARIA REVERSA DE ARQUIVOS

Engenharia Reversa e Normalização

Engenharia Reversa e Normalização

Objetivos:

Normalização de Tabelas. Prof. Antonio Almeida de Barros Junior

Normalização de BD 19:08:54. Fundamentos de Banco de Dados - Normalização 1

Engenharia reversa de arquivos e documentos. Capítulo 6

Engenharia reversa de arquivos e documentos. Capítulo 6

Técnicas de Modelação de Dados

Engenharia Reversa de Arquivos e Normalização

Banco de Dados - Senado

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

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

Projeto de Banco de Dados. Carlos Alberto Heuser

LINGUAGEM DE BANCO DE DADOS PROFESSORA LUCÉLIA. Normalização

Engenharia reversa de arquivos e documentos. Capítulo 6

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

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

Dependência Funcional e Normalizaçã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

Modelo Entidade Relacionamento Estendido (ERE)

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

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

SISTEMAS DE INFORMAÇÃO

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

Teoria e Metodologia de Projeto de Banco de Dados

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

Normalização para Bancos de Dados Relacionais

NORMALIZAÇÃO. Adão de Melo Neto

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

Banco de Dados I Engenharia Reversa e Normalização

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

INF1383 -Bancos de Dados

Profa. Flávia Cristina Bernardini

Normalização para Bancos de Dados Relacionais

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

Análise de Sistemas de Informação

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

Projeto Bottom-Up de BD

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

Banco de Dados. Professora: Luciana Faria

Transformação de Diagramas MER em Diagramas DR

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

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

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

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

Processo de Normalização

Unidade 4 Projeto de BD Relacional

MODELAGEM DE DADOS MODELO RELACIONAL

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

Bases de Dados. Parte VIII: Normalização

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

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

Normalização de Dados. Bancos de Dados I Normalização Principais Conceitos

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

Banco de Dados Aula 02

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

Bases de Dados. Parte VII Normalização

Processo de Normalização

Normalização. 123 Régua acr. 30 cm un 1 0,80 0, Penal escolar ref.1 un 1 2,60 2, Gramplos 0.08 cx 2 1,50 3,00. Total da Nota 6,40

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

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

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

Processo de Normalização

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

Forma Normal de Boyce Codd 3 a Forma Normal

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)

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

11 NORMALIZAÇÃO: FORMAS NORMAIS

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

Banco de Dados I 3 Modelagem de Dados Lógico e Físico

Banco de Dados I 4 Normalização

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

Banco de Dados Modelagem e Normalização

Normalização. Curso: Técnico em Informática (Integrado) Disciplina: Banco de Dados Prof. Abrahão Lopes

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

Análise e Projeto de Sistemas

Fundamentos de Banco de Dados e Modelagem de Dados

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

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

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

INE 5623 Projeto de Banco de Dados

Modelo Relacional. Relacionamento. Processo de Projeto de. Programa. Modelo Entidade Relacionamento

DCC011 Introdução a Banco de Dados

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

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

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

DER NORMALIZAÇÃO DE DADOS

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

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

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

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

Fundamentos de Bancos de Dados Prova 3

Bancos de Dados Relacionais

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

SIN5001 Organização de Sistemas de Informação. Prof. Luciano Antonio Digiampietri

Transcrição:

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton Prof. Nilton nilton@comp.uems.br 1

Qualidade de projeto de BD relacional 1ª) Projetar esquemas fáceis de serem explicados - dados e relacionamentos. 2ª) Projetar esquemas para que anomalias de atualização não ocorram. 3ª) Evitar acréscimo de campo em tabela cujo valor pode ser nulo. 2

Tabela não Normalizada ou não 1FN (forma normal) Possui tabela aninhada; Conhecida também grupo repetido, coluna multi-valorada ou coluna não atômica Ex: lay-out de um relatório ou tela Proj(CodProj, Tipo, Descr, (CodEmpr, Nome, Cat, Sal, DatIni, TempAl)) 3

Normalização Regras para obter uma tabela bem projetada, isto é, eliminar redundâncias; Processo de decomposição de relação em relações menores com propriedades desejáveis para garantir qualidade ao projeto de BD; Objetivo: evitar anomalias de atualização; Formas normais oferecem Uma maneira de analisar as relações em função das chaves e dependências funcionais. Restrições para testar se a relação está normalizada. Aplica-se a normalização no esquema conceitual; 1FN, 2FN, 3FN, FNBC, 4FN e 5FN. 4

Normalização 5

Primeira Forma Normal (1FN) Condição: o domínio dos atributos deve ser atômico (atributos simples) e monovalorado, não podendo existir relações aninhadas. Proj(CodProj, Tipo, Descr, (CodEmpr, Nome, Cat, Sal, DatIni, TempAl)) Opção 1: Construir uma única relação com redundância de dados No exemplo os dados das linhas externa à tabela aninhada são repetidos para cada linha da tabela aninhada ProjEmp(CodProj, Tipo, Descr, CodEmpr, Nome, Cat, Sal, DatIni, TempAl) Opção 2: Construir uma relação para cada relação aninhada No exemplo cria-se uma tabela referente a própria tabela que está sendo normalizada e uma tabela para cada tabela aninhada Proj(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmpr, Nome, Cat, Sal, DatIni, TempAl) 6

Exercícios Passar para 1FN as relações não 1FN. 1) Alunos(CodAluno, NomeAluno, (CodCurso, SemIngresso), (CodDisc,(SemDiscCursada, NotaDisc))) 2) Candidatos(CodCurso, NomeCurso, NumeroVagasCurso, (CodCand, NomeCand, EscoreCand)) 3) Faturas(NumeroFat, DataEmissao, DataVenc, (CNPJComprador, NomeComprador, EnderecoComprador, (DataCorrida, HorárioCorrida, NumeroBoleto, ValorCorrida))) 4) Notas(CodAluno, NomeAluno, (CodCurso, NomeCurso, (CodDisc, NomeDisc, (CodProf, NomeProf, CategoriaProf, Nota)))) 7

8

Dependência Funcional Restrição entre dois atributos de uma relação. Seja X e Y dois atributos de uma relação R. Uma dependência funcional entre X e Y é denotada por: X Y X determina Y ou Y é dependente funcional de X. Se X Y, então: Dada duas tuplas t1e t2 em R a seguinte afirmação deve ser verdadeira: t1[x] = t2[x] e t1[y] = t2[y]. Os valores do componente Y de uma tupla em R dependem de, ou são determinados por valores do componente X. 9

Exemplo de Dependência Funcional Código Salário 10

Exemplo de Dependência Funcional (A,B) C A D 11

Segunda Forma Normal (2FN) Condição: a relação está na 2FN quando, além de estar em 1FN, não contém dependências parciais. Dependência parcial: uma dependência (funcional) parcial ocorre quando um atributo depende apenas de parte de uma chave primária composta. Isso implica que: Relações que estão em 1FN e não tenham chave primária composta já estão em 2FN. O mesmo ocorre com relações que contém apenas atributos que são chave primária. 12

Segunda Forma Normal (2FN) Exemplo Proj(CodProj, Tipo, Descr) 1FN Chave primária simples, logo está em 2FN ProjEmp(CodProj, CodEmpr, Nome, Cat, Sal, DatIni, TempAl) 1FN Chave primária composta, logo procurar dependências parciais. CodEmpr Nome CodEmpr Cat dependência parcial CodEmpr Sal (CodProj,CodEmpr) DatIni (CodProj,CodEmpr) TempAl Para passar para 2FN é necessário dividir a relação ProjEmp em duas relações: ProjEmp(CodProj, CodEmpr, DatIni, TempAl) Emp(CodEmpr, Nome, Cat, Sal) 13

Segunda Forma Normal (2FN) Exemplo Assim o esquema em 2FN fica: Proj(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmpr, DatIni, TempAl) Emp(CodEmpr, Nome, Cat, Sal) 14

Exercícios Passar as relações para 2FN. 1) Alunos(CodAluno, NomeAluno) Aluno-Curso(CodAluno, CodCurso, NomeCurso, SemIngresso) 2) Aluno-Sem(CodAluno, SemDisc, BolsaSimNao) Aluno-Disc-Sem(CodAluno, CodDisc, SemDisc, NomeDisc, NotaDisc) 15

Exercícios 3) 16

Exercícios 4) Faturas(CodConveniada, CodFatura, DataEmissão, DataVenc, NomeConveniada, CNPJConveniada, EnderecoConveniada, SubTotal, TaxaAdmin, Total) Fatura-Item(CodConveniada, CodFatura, NumeroBoleto, DataBoleto, ValorCorrida) 17

18

Terceira Forma Normal (3FN) Condição: a relação está na 3FN quando, além de estar em 2FN, não contém dependências transitivas. Dependência transitiva ou indireta: uma dependência (funcional) transitiva ocorre quando um atributo, além de depender da chave primária da relação, depende de outro atributo ou conjunto de atributos da relação não chave primária. Ex: Emp(CodEmpr, Nome, Cat, Sal) dependência transitiva 19

Terceira Forma Normal (3FN) O processo de transformação é: eliminar a dependência transitiva Emp(CodEmpr, Nome, Cat, Sal) ficando: Emp(CodEmpr, Nome, Cat) Categ(Cat, Sal) 20

Terceira Forma Normal (3FN) Exemplo Assim o esquema em 3FN fica: Proj(CodProj, Tipo, Descr) ProjEmp(CodProj, CodEmpr, DatIni, TempAl) Emp(CodEmpr, Nome, Cat) Categ(Cat, Sal) 21

Exercícios Passar as relações para 3FN. 1) Conveniadas(CodConveniada, NomeConveniada, CNPJConveniada, TituloLogradouro*, NomeLogradouro, NumeroLogradouro, Bairro, CEP, Cidade, UF) *Avenida, Rua, Rodovia, 2) Veiculo(Placa, Modelo, NomeProprietario, HabilitacaoMotorista, Cor, AnoFabricacao, AnoModelo, Fabricante, Chassi) 22

Exercícios 3) 23

Exercícios 4) Produto(CodProd, NomProd, CodCateg, NomeCateg, QuantEstoque) 5) 24

25

Forma Normal de Boyce-Codd (FNBC) 2FN: A chave primária B não chave primária 3FN: A chave primária B não chave primária B não chave primária C não chave primária FNBC: A chave candidata B Se o atributo for dependente de uma chave candidata a 3FN não resolve certas anomalias FNBC é uma forma de normalização mais forte do que a 3FN, logo uma relação em FNBC também está em 3FN, mas o inverso não é necessariamente verdadeiro. Condição: a relação está na FNBC se todo determinante for uma chave candidata. 26

Forma Normal de Boyce-Codd (FNBC) - Exemplo Chaves candidatas (Nome_Logradouro, Bairro) * é possível localizar CEP (Nome_Logradouro, Cidade) * é possível localizar CEP Dependências (Nome_Logradouro, Bairro) CEP (Nome_Logradouro, Cidade) CEP As chaves candidatas compartilham o mesmo atributo Nome_Logradouro Uma decomposição: Endereco(CEP, Nome_Logradouro, CodBairro) Bairro(CodBairro, NomeBairro, Cidade, Estado) Outra decomposição Endereco(CEP, Nome_Logradouro, CodCidade) Bairro(CodCidade, NomeCidade, Bairro, Estado) 27

Forma Normal de Boyce-Codd (FNBC) - Exemplo Para cada disciplina, cada estudante recebe aula de apenas um professor; Cada professor ensina somente uma disciplina Uma disciplina pode ser ensinada por diversos professores Chaves candidatas (Estudante, Disciplina) (Estudante, Professor) Dependências (Estudante, Disciplina) Professor Professor Disciplina Se chave primária for uma das chaves candidatas, então 3FN, mas não em FNBC porque Professor não é chave candidata. 28

Forma Normal de Boyce-Codd (FNBC) - Exemplo Aplicando a FNBC na relação Ensino 1. Identificar as dependências funcionais que violem a BCNF. 2. Para cada dependência funcional achada em 1, criar uma relação com a PK igual ao determinante. 3. As colunas que têm seu valor determinado em 1, são excluídas da relação original. (1) Professor Disciplina (2) (3) 29

30

Quarta Forma Normal (4FN) Condição: a relação está na 4FN quando, além de estar em 3FN ou FNBC, não contém dependências multi-valoradas. Dependência multi-valorada: um atributo ou conjunto de atributos depende multi-valoradamente de um atributo (determinante) da mesma relação quando um valor do atributo determinante identifica repetidas vezes um conjunto de valores do atributo dependente. Ex: 31

Quarta Forma Normal (4FN) O processo de transformação é: eliminar a dependência multivalorada. CodProj CodEmpr CodProj CodEquip ficando: ProjEmp(CodProj, CodEmpr) ProjEquip(CodProj, CodEquip) 32

33

Quinta Forma Normal (5FN) Forma normal projeção-junção Condição: a relação está na 5FN quando estiver na 4FN e se não puder ser mais decomposta sem perda de informação. Aplica-se em relacionamentos ternários ou n-ários observando a dependência de junção. Para relacionamento ternário: um-para-um-para-um: três chaves compostas sobrepostas, garante pelo menos a FNBC um-para-um-para-muitos: duas chaves compostas sobrepostas, garante pelo menos a FNBC um-para-muitos-para-muitos: uma chave composta, garante pelo menos a FBNC muitos-para-muitos-para-muitos: uma chave composta com três atributos, garante pelo menos a FNBC; em alguns casos, também pode garantir a 4FN, ou mesmo a 5FN 34

Quinta Forma Normal (5FN) Formalmente Forma normal projeção-junção Seja R(A,B,C) uma relação em que foi identificada uma dependência de junção {AB} e {BC}. Significa que é possível reconstruir a relação inicial a partir das duas projecções anteriores. Nesse caso, pode-se decompor a relação em duas novas relações com atributos {A,B} e {B,C} sem perda de informação. A 5ª forma normal obriga a fazer essa decomposição. 35

Quinta Forma Normal (5FN) Forma normal projeção-junção Ex: A relação R está na 5FN? Aparentemente não existe dependência multivalor, logo na FNBC Verificar dependência de junção É possível executar 3 diferentes projeções: {Artista, Filme}, {Artista, Encenador}, {Filme, Encenador} Caso seja possível reconstruir a relação inicial a partir da junção de quaisquer duas projeções, pode-se concluir da existência de dependências de junção relativamente a essas projecções. 36

Quinta Forma Normal (5FN) Forma normal projeção-junção As 3 projeções {Artista, Filme}, {Artista, Encenador}, {Filme, Encenador} Se (R1 * R2) * R3 = R, logo R não 5FN 37

Quinta Forma Normal (5FN) Forma normal projeção-junção 38

Quinta Forma Normal (5FN) Forma normal projeção-junção 39

40

Considerações finais A normalização é considerada para cada relação Um BD é considerado normalizado para uma determinada FN quando todas suas relações estiverem nessa FN Normalização - decomposição de relações: Aumenta a consistência Reduz o desempenho: operação de junção 41

Considerações finais 42

43

Exercícios para casa 1) Apresente a 2FN e 3FN para o seguinte esquema: ItemVenda(NúmeroNF, CodigoTipoProd, NumeroProd, DescriçãoProd, DataVenda, CodCaixaRegistradora, CodEmp, QtdeItem, PreçoItem, NomeEmp, DescriçãoTipoProd) 2) Verifique se o esquema abaixo obedece a 2FN e 3FN. Caso não faça as transformações necessárias. Matricula(CodAluno, CodTurma, CodDisciplina, NomeDisciplina, NomeAluno, CodLocalNascAluno, NomeLocalNascAluno 44

3) Normalize o layout que representa a lista de artigos submetidos a um congresso mostrando cada uma das formas normais. 45

4) Considere o seguinte esquema: VendaCarros(Carro, DataVenda, Vendedor, Comissão, QuantDesconto) e DataVenda QuantDesconto Vendedor Comissão Com base na chave primária fornecida, esse esquema está na 1FN, 2FN ou 3FN? Por que sim, e por que não? Como a normaliza por completo? 5) Normalize a) Aluno(Codigo, Nome, Disciplina1, Disciplina2, Disciplina3, Telefone) b) Ord-Prod(Cod Prod, Nr-Ordem, Nome Prod, Data Fabr, Tipo Ordem, Preco Prod), onde, Cod Prod determina Nome Prod e Preco Prod Nr-Ordem determina Data Fabr e Tipo Ordem 46