Processo de Normalização

Documentos relacionados
Processo de Normalização

Processo de Normalização

ENGENHARIA REVERSA DE ARQUIVOS

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

Engenharia Reversa e Normalização

Engenharia Reversa e Normalização

Engenharia reversa de arquivos e documentos. Capítulo 6

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

Engenharia reversa de arquivos e documentos. Capítulo 6

Projeto de Banco de Dados. Carlos Alberto Heuser

Banco de Dados I 4 Normalização

Objetivos:

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

Análise de Sistemas de Informação

Teoria e Metodologia de Projeto de Banco de Dados

NORMALIZAÇÃO. Adão de Melo Neto

Engenharia reversa de arquivos e documentos. Capítulo 6

Banco de Dados I. Normalização

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

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

Qualidade de projeto de BD relacional

Unidade 4 Projeto de BD Relacional

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

Mapeamento Modelo Entidade Relacionamento para Modelo Relacional. Evandro E.S Ruiz, Ph.D.

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

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

INF1383 -Bancos de Dados

NORMALIZAÇÃO. Quantidade do Produto. Produto

Normalização para Bancos de Dados Relacionais

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

Engenharia Reversa de Arquivos e Normalização

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

Normalização para Bancos de Dados Relacionais

Banco de Dados Aula 02

Dependência Funcional e Normalização)

Banco de Dados Modelagem e Normalização

Modelo Relacional Wendel Melo

Normalização. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri.

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

DER NORMALIZAÇÃO DE DADOS

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

Modelo Lógico de Dados. Modelo Relacional

Transformação de Diagramas MER em Diagramas DR

2. Revisão e Dicas de Modelagem Conceitual

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

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

Modelagem de Dados (Estrutura Relacional)

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Profa. Flávia Cristina Bernardini

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

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

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

Fundamentos de Banco de Dados e Modelagem de Dados

Banco de Dados I Engenharia Reversa e Normalização

Modelagem de Dados. Conceitos de Normalização. Prof. Esp. Andrew Rodrigues

Análise e Projeto de Sistemas I

Projeto de Banco de Dados

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

BANCO DE DADOS. Bacharelado em Sistemas de Informação MODELAGEM DE DADOS. Profº Luciano Roberto Rocha. Itararé, 2º período

Projeto de Banco de Dados

Tópico: Normalização

O que é modelo lógico. Tipos de modelo

Modelo Entidade Relacionamento Estendido (ERE)

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Análise e Projeto de Sistemas

Banco de Dados I (MAB489)

Banco de Dados. André Luís Duarte Capítulo 2. exatasfepi.com.br

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

MODELAGEM DE DADOS -PROJETO CONCEITUAL DE BD. Prof. Angelo Augusto Frozza, M.Sc.

Modelo Entidade-Relacionamento (E-R)

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

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

Sistema de Banco de Dados

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

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

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)

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

Unidade 2 Modelo Conceitual

1) Defina os seguintes termos: domínio, grau de uma relação, n-tupla, esquema de relação, esquema de um banco de dados relacional.

Transcrição:

Processo de Normalização Entrada fonte de dados estruturados da organização relatório, fichário, documento estruturado,... Saída esquema relacional para a fonte de dados Objetivos obtenção de um esquema relacional livre de redundâncias validação do projeto de um BD relacional Processo de Normalização Baseado no conceito de formas normais processo sistemático de geração de tabelas Uma tabela T está em uma forma normal se atende uma certa regra se T está na Forma Normal (FN) i, então T está automaticamente nas FNs i - 1, i - 2,... Três FNs são mais utilizadas na prática A teoria nem sempre é ideal do ponto de vista prático proliferação de tabelas! 1

Exemplo de Fonte de Dados: Relatório RE LATÓ RIO D E A LO CA ÇÃ O A P RO JE TO CÓ D IG O DO PR OJE TO : LSC 001 DE S CR IÇ ÃO : S istem a de Estoque CÓDIGO DO NO M E CATEG O RIA EMPR EGADO FUNCION AL SALÁRIO TIPO : N ovo D esenv. DATA DE INÍCIO NO P RO JETO TEM P O ALOCADO AO PRO JE TO 2146 João A1 4 1/11/91 24 3145 S ílvio A2 4 2/10/91 24 6126 José B1 9 3/10/92 18 1214 Carlos A2 4 4/10/92 18 8191 M ário A1 4 1/11/92 12 CÓ D IG O DO PR OJE TO : PA G 02 DE S CR IÇ ÃO : S istem a de RH CÓDIGO DO NO M E CATEG O RIA EMPR EGADO FUNCIO NAL SALÁRIO DATA DE INÍCIO NO P RO JETO TIP O: M anutenção TEM PO ALO CADO AO PROJETO 8191 M ário A1 4 1/05/93 12 4112 João A2 4 4/01/91 24 6126 José B1 9 1/11/92 12 Passo1 Conversão para Tabela ÑN Objetivo obtenção de uma representação padrão para as fontes de dados facilita o processo de normalização Forma de representação: Tabela ÑN pode ter uma ou mais tabelas aninhadas tabela aninhada possui atributos multivalorados atributo que ao invés de conter valores atômicos, contém múltiplos valores ou contém uma tabela que pode, por sua vez, ser aninhada 2

Exemplo de Tabela ÑN CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Desenv. Sistema de 2146 João A1 4 1/11/91 24 Estoque 3145 Sílvio A2 4 2/10/91 24 6126 José B1 9 3/10/92 18 1214 Carlos A2 4 4/10/92 18 8191 Mário A1 4 1/11/92 12 PAG02 Manutenção Sistema de 8191 Mário A1 4 1/05/93 12 RH 4112 João A2 4 4/01/91 24 6126 José B1 9 1/11/92 12 Tabela aninhada em uma linha de projeto Representação na Forma de Tabela ÑN Projetos (codproj, tipo, descr, (codemp, nome, categ, sal, dataini, tempoaloc)) indicam-se as chaves primárias (CPs) de cada tabela 3

1 a Forma Normal (1FN) Uma tabela está na 1FN sse ela não possui tabelas aninhadas Procedimento usual gerar uma tabela para cada aninhamento 1FN - Aplicação ÑN: Projetos (codproj, tipo, descr, (codemp, nome, categ, sal, dataini, tempoaloc)) 1FN: Projetos (codproj, tipo, descr) Alocações (codproj, codemp, nome, categ, sal, dataini, tempoaloc) CP da tabela externa migra para a tabela aninhada Qual a CP da tabela aninhada? 4

1FN - Aplicação ÑN: Projetos (codproj, tipo, descr, (codemp, nome, categ, sal, dataini, tempoaloc)) 1FN: Projetos (codproj, tipo, descr) Alocações (codproj, codemp, nome, categ, sal, dataini, tempoaloc) CP da tabela aninhada codemp identifica unicamente uma tupla em Alocações? (analisar os dados da tabela aninhada na fonte de dados como um todo) 1FN - Aplicação ÑN: Projetos (codproj, tipo, descr, (codemp, nome, categ, sal, dataini, tempoaloc)) 1FN: Projetos (codproj, tipo, descr) Alocações (codproj, codemp, nome, categ, sal, dataini, tempoaloc) CP da tabela aninhada codemp identifica unicamente uma tupla em Alocações? resposta: NÃO logo, codproj deve fazer parte da CP da tabela aninhada 5

1 FN Outro Exemplo ÑN: Departamentos (codd, nome, (RG, nome, salário)) 1FN: Departamentos (codd, nome) (codd, RG, nome, salário) CP da tabela aninhada (Empregados) RG identifica unicamente uma tupla em Empregados? resposta: SIM logo, RG é suficiente como CP da tabela aninhada Dependência Funcional (DF) Conceito necessário para o entendimento da segunda e terceira formas normais Definição um atributo A 2 depende funcionalmente de um atributo A 1 (ou um atributo A 1 determina um atributo A 2 ) quando, em todas linhas da tabela, para cada valor de A 1 que aparece na tabela, aparece o mesmo valor de A 2 6

Dependência Funcional - Exemplo... Código... Salário E1 500 E3 450 E2 500 E1 500 E3 450 E2 500...... Código Salário Dependência Funcional - Exemplos A B C D x 1 r 5 y x z y 1 2 1 3 q s p r 10 5 5 10 A A D B x z 2 1 s p 5 5 (A,B) C y 3 r 10 y x x 1 1 2 q r s 10 5 5 DF pode ser composta! 7

DF Total e DF Parcial DF Total se um atributo A x depende funcionalmente de todos os atributos que compõem a CP de uma tabela T, diz-se que A x possui DF total da CP de T DF Parcial se um atributo A x depende funcionalmente apenas de alguns atributos (não todos!) que compõem a CP de uma tabela T, diz-se que A x possui DF parcial da CP de T 2 a Forma Normal (2FN) Uma tabela está na 2FN sse ela estiver na 1FN e não possuir DFs parciais tabelas com DFs parciais devem ser desmembradas em tabelas que possuam DFs totais Tabelas cuja CP possui apenas um atributo estão automaticamente na 2FN 8

2FN - Aplicação 1FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAloc) DFs: CodEmp Nome, Cat, Sal (DF Parcial!) (CodProj, CodEmp) DataIni, TempoAloc 2FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, DataIni, TempoAloc) Empregados (CodEmp, Nome, Cat, Sal) DF Transitiva ou Indireta Se um atributo não-chave A x possui DF total da CP de uma tabela T e também possui DF total de um ou mais atributos não-chave de T, então diz-se que A x possui DF transitiva ou indireta da CP de T 9

3 a Forma Normal (3FN) Uma tabela está na 3FN sse ela estiver na 2FN e não possuir DFs transitivas tabelas com DFs transitivas devem ser desmembradas em tabelas que não possuam tais DFs Tabelas que possuem zero ou apenas um atributo que não faz parte da CP estão automaticamente na 3FN 3FN - Aplicação 2FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, DataIni, TempoAloc) Empregados (CodEmp, Nome, Cat, Sal) DFs: CodEmp Sal CodEmp Cat Sal (DF Transitiva!) 3FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, DataIni, TempoAloc) Empregados (CodEmp, Nome, Cat) CategoriasFuncionais(Cat, Sal) 10

Normalização Questões Inexistência de CPs tabelas podem não ter atributos que realmente garantam identificação única de suas tuplas sugestão: definir uma CP ÑN: Projetos (CodProj, Tipo, Descr, (Nome, Cat, Sal, DataIni, TempoAloc)) ÑN: Projetos (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempoAloc)) Normalização Questões Dados irrelevantes tabelas podem ter atributos que não precisam ser mantidos necessariamente no BD sugestão: eliminar estes atributos ÑN: Projetos (CodProj, Tipo, Descr, NroEmps, DataRel, (CodEmp, Nome, Cat, Sal, DataIni, TempoAloc)) ÑN: Projetos (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempoAloc)) 11

Normalização Questões Dados relevantes, porém implícitos sugestão: definir tais dados a ordem determina a classificação do candidato ÑN: Aprovação (CodCurso, Nome, (CodCand, Nome, Endereço)) ÑN: Aprovação (CodCurso, Nome, (CodCand, Nome, Endereço, OrdemClass)) Normalização Questões Relacionamentos incorretos sugestão: validar as tabelas ao final do processo! Relatório de Pedidos ÑN: Pedidos (nroped, dataped, codcli, nomecli, (nrotel), (codpeça, descrpeça, qtdepedida)) 1FN: Pedidos (nroped, dataped, codcli, nomecli) Telefones (nroped, nrotel) Peças (nroped, codpeça, nomepeça, qtde))... (validação) Telefones (codcli, nrotel) 12

DF Multivalorada Se um atributo A x1 de T determina um conjunto finito de valores para os outros atributos A x2,..., A xn de T, então diz-se que A x2,..., A xn possuem DF multivalorada de A x1 em T Exemplo de Normalização até 3FN Ficha de Estante e seus Livros ÑN: Estantes (número, capacidade, (ISBN, título, ano (codautor, nome, nacionalidade))) 1FN: 2FN = 3FN: relacionamento contido em outra tabela! (pode ser removido) Estantes (número, capacidade) DistribuiçãoLivros (número, ISBN, título, ano) DistribuiçãoLivrosAutor (número, ISBN, codautor, nome, nacionalidade) Estantes (número, capacidade) Livros (ISBN, título, ano) DistribuiçãoLivros (número, ISBN) Autores (codautor, nome, nacionalidade) DistribuiçãoLivrosAutor(número, ISBN, codautor) 13

Exemplo de DF Multivalorada DistribuiçãoLivrosAutor número ISBN codautor E1 E1 E1 E1 E1 L1 L1 L2 L2 L2 A1 A2 A7 A8 A9 E2 L1 A1 E2 L1 A2 E3 L2 A7 E3 L2 A8 ISBN = L1 codautor = {A1, A2} ISBN = L2 codautor = {A7, A8, A9} Redundância de dados para representar as associações multivaloradas! DF multivalorada: ISBN codautor E3 L2 A9 4 a Forma Normal (4FN) Uma tabela está na 4FN sse ela estiver na 3FN e não possuir DFs multivaloradas tabelas com DFs multivaloradas devem ser desmembradas em tabelas que não possuam tais DFs Tabelas que possuem CP composta por um ou dois atributos, ou que possuem atributos não-chave estão automaticamente na 4FN 14

4FN - Aplicação 3FN: Estantes (número, capacidade) Livros (ISBN, título, ano) Autores (codautor, nome, nacionalidade) DistribuiçãoLivrosAutor(número, ISBN, codautor) DF Multivalorada: ISBN codautor 4FN: Estantes (número, capacidade) Livros (ISBN, título, ano) Autores (codautor, nome, nacionalidade) DistribuiçãoLivros(número, ISBN) Autoria(ISBN, codautor) Exercício 1 A tabela abaixo está na 1FN. Obtenha a 2FN, 3FN e 4FN Artigos (ID-artigo, título, ano, ID-autor, codevento, nomeevento, ID-revisor) 15

Exercício 2 Relatório de Reservas em uma Locadora de DVDs ID-cli Nome Telefone DVDs Reservados ID-DVD nome gênero duração categoria preço data retirada 0032 João Sá 3222.3344 D1 Casa de Areia drama 95 lançamento 5,00 12/08/06 D4 Rei Leão infantil 75 simples 2,00 15/08/06 D9 Platton guerra 105 simples 2,00 18/08/06 0051 Ana Luz 3221.1212 D2 Os Normais comédia 88 especial 3,00 14/08/06 D4 Rei Leão infantil 75 simples 2,00 12/08/06 D7 Star Wars III ficção 98 lançamento 5,00 13/08/06 D9 Platton guerra 105 simples 2,00 15/08/06 D26 Os Incríveis infantil 99 especial 3,00 15/08/06... Exercício 3 Arquivo XML: Roteiros de Viagem <?xml version = 1.0?> <roteiros> <roteiro codigo= R001 ><nome>serra Gaucha</nome><duracao>10</duracao> <pacotes> <pacote><datasaida>20-01</datasaida><vagas>40</vagas><preco>1200.00</preco></pacote> <pacote><datasaida>05-02</datasaida><vagas>50</vagas><preco>1000.00</preco></pacote>... </pacotes> <trechos> <cidade numeroordem= 01 ><codigo>105</codigo><nome>gramado</nome> <estado>rs</estado><populacao>35000</populacao><tempoestadia>2</tempoestadia> </cidade> <cidade numeroordem= 02 ><codigo>109</codigo><nome>caxias do Sul</nome> <estado>rs</estado><populacao>400000</populacao><tempoestadia>2</tempoestadia> </cidade>... <cidade numeroordem= 05 ><codigo>105</codigo><nome>gramado</nome> <estado>rs</estado><populacao>35000</populacao><tempoestadia>1</tempoestadia> </cidade> </trechos> </roteiro> <roteiro codigo= R002 ><nome>região dos Vinhos</nome><duracao>6</duracao> <pacotes> <pacote><datasaida>22-01</datasaida><vagas>45</vagas><preco>800.00</preco></pacote> <pacote><datasaida>05-02</datasaida><vagas>40</vagas><preco>900.00</preco></pacote>... </pacotes> <trechos> <cidade numeroordem= 01 ><codigo>109</codigo><nome>caxias do Sul</nome> <estado>rs</estado><populacao>400000</populacao><tempoestadia>2</tempoestadia> </cidade> <cidade numeroordem= 02 ><codigo>113</codigo><nome>bento Goncalves</nome> <estado>rs</estado><populacao>235000</populacao><tempoestadia>2</tempoestadia> </cidade>... </trechos> </roteiro>... </roteiros> 16

Relatório de Consumo em Quartos do Hotel Data do Relatório: 16/06/04 Exercício 4 Quarto: 101 Tipo: AD Apto Duplo Andar: 1 Hóspedes: Nome: João Silva CPF: 1111100000 Entrada: 15/06/04 SaídaPrevista: 17/06/04 Nome: Mário Sá CPF: 1111111110 Entrada: 15/06/04 SaídaPrevista: 16/06/04 Consumo: Data: 15/06/04 Item: 01 Almoço Valor: R$ 15,00 Data: 15/06/04 Item: 22 Refrigerante Valor: R$ 1,50 Data: 16/06/04 Item: 06 Caviar Valor: R$ 18,50 Total: R$ 35,00 Quarto: 102 Tipo: AS Apto Simples Andar: 1 Hóspedes: Nome: Maria Souza CPF: 1010101010 Entrada: 14/06/04 SaídaPrevista: 18/06/04 Consumo: Data: 15/06/04 Item: 22 Refrigerante Valor: R$ 1,50 Data: 15/06/04 Item: 22 Refrigerante Valor: R$ 1,50 Data: 16/06/04 Item: 01 Almoço Valor: R$ 15,00 Data: 17/06/04 Item: 22 Refrigerante Valor: R$ 1,50 Total: R$ 19,50 Quarto:... Obs.: o hotel mantém histórico de hospedagens. Resposta Exercicio 4 Modelagem ER 17

Resposta Exercicio 4 Modelagem ER Roteiros (codrot, nome, descrição, duracao) Períodos (codper, nome) Pacote (codrot, codper, datasaida, dataretorno, preço, vagas, CPFGuiaEscalado) Justificativa1: Escalação como chave estrangeira pois relacionamento não tem atributos Cidades (codcid, nome, população, estado) Visitas (codrot, codcid, ordem, duracao) Guias (CPF, nome, endereço, foneres, fonecel, salário, dataadmissao) Clientes (CPF, nome, endereço, foneres, fonecel, renda) Justificativa2: no máximo 2 telefones são desejados para cadastro Justificativa3: tabelas apenas para as especializações pois pessoas não possui relacionamentos específicos e haverá pouca redundância entre Guias e Clientes; facilita determinação de chaves para os relacionamentos específicos de Guias e Clientes Línguas (CPFGuia, lingua) ExperienciaRoteiros (codrot, CPFGuia, nrovezes) Inscrição (codrot, codper, datasaida, CPFCliente, formaparcelamento, formapgto) Obs.: uma chave primária artificial pode ser definida para Pacote para evitar identificação longa. 18