Processo de Normalização

Documentos relacionados
Processo de Normalização

Processo de Normalização

ENGENHARIA REVERSA DE ARQUIVOS

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

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

Banco de Dados I 4 Normalização

Engenharia reversa de arquivos e documentos. Capítulo 6

Engenharia reversa de arquivos e documentos. Capítulo 6

Engenharia Reversa e Normalização

Engenharia Reversa e Normalização

Projeto de Banco de Dados. Carlos Alberto Heuser

Objetivos:

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

Análise de Sistemas de Informação

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

Engenharia reversa de arquivos e documentos. Capítulo 6

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

Qualidade de projeto de BD relacional

NORMALIZAÇÃO. Adão de Melo Neto

Teoria e Metodologia de Projeto de Banco de Dados

Engenharia Reversa de Arquivos e Normalização

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

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

Banco de Dados I. Normalização

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

Unidade 4 Projeto de BD Relacional

Banco de Dados I Engenharia Reversa e Normalização

Normalização para Bancos de Dados Relacionais

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

Análise e Projeto de Sistemas

2. Revisão e Dicas de Modelagem Conceitual

Normalização para Bancos de Dados Relacionais

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

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

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

Dependência Funcional e Normalização)

Banco de Dados Aula 02

Tópico: Normalização

NORMALIZAÇÃO. Quantidade do Produto. Produto

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

INF1383 -Bancos de Dados

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)

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

Banco de Dados Modelagem e Normalização

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

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

Profa. Flávia Cristina Bernardini

Transformação de Diagramas MER em Diagramas DR

Modelo Entidade Relacionamento Estendido (ERE)

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

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

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

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

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

Técnicas de Modelação de Dados

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)

Modelo Entidade-Relacionamento (E-R)

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

O que é modelo lógico. Tipos de modelo

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

18/03/2012. Independência de Dados: capacidade de modificar a definição dos esquemas em. determinado nível, sem afetar o esquema do nível superior;

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

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.

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

PCS3413 Engenharia de Software e Banco de Dados

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

Banco de Dados Modelagem e Normalização

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

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

DER NORMALIZAÇÃO DE DADOS

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

Conceitos Básicos de modelagem de dados Modelo conceitual Modelo Lógico Modelo Físico

Normalização de dados e as formas normais. Docente : Pedro F. Carvalho.

Abordagem relacional. Capítulo 4

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

Arquitetura dos SBDs Características e Benefícios Visão Geral de Projeto de BD MER: Entidades e Atributos Atividade.

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

Banco de Dados. Sistemas de Informação Engenharia de Produção

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.

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

Banco de Dados. Aula 3 - Prof. Bruno Moreno 26/08/2011

Modelo Lógico de Dados. Modelo Relacional

Banco de Dados. Professora: Luciana Faria

Transcrição:

Processo de Normalização Entrada fonte de dados estruturados da organização Relatório Fichário Tabela relacional ou outro tipo de documento estruturado,... Saída esquema relacional para a fonte de dados

Por quê Normalização? Objetivo esquema relacional livre de redundâncias E, consequentemente, livre de anomalias de atualização Aplicações Engenharia Reversa geração de um BDR a partir de fontes de dados legadas método de projeto bottom-up de BD validação de tabelas geradas a partir de um ER método de projeto tradicional (top-down) de BD

Projeto Bottom-Up de BD esquema conceitual do BD engenharia reversa do esquema relacional Passo4 esquema relacional integrado do BD (esquema global) integração Passo3 esquema relacional 1 normalização tabela ÑN 1 conversão para tabela ÑN esquema do arquivo/documento 1 esquema relacional 2 normalização tabela ÑN 2 conversão para tabela ÑN esquema do arquivo/documento 2... Passo2 Passo1

Projeto Bottom-Up - Exemplo Relatório da empresa CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH 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 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 Esquema conceitual Tabela Relacional ÑN Projetos (codproj, tipo, descr, (codemp, nome, cat, sal, dataini, tempal)) Processo de Normalização Esquema relacional (normalizado) Projetos (codproj, tipo, descr) Empregados (codemp, nome, cat) Alocações (codproj, codemp, dataini, tempal) CategoriasSalariais (cat, sal)

Validação de Tabelas - Exemplo Empregados ID Nome Salário Depto Andar E1 João 5000 Vendas 1 E2 Ana 4500 Vendas 1 E3 Pedro 5000 Pessoal 2 E4 Carlos 5000 Vendas 1 E5 Maria 3500 Pessoal 2 E6 José 5500 Pessoal 2............... Redundância de dados!

Validação de Tabelas - Exemplo Após o processo de Normalização: Empregados ID Nome Salário Depto E1 João 5000 D1 E2 Ana 4500 D1 E3 Pedro 5000 D2 E4 Carlos 5000 D1 E5 Maria 3500 D2 Departamentos ID Nome Andar D1 Vendas 1 D2 Pessoal 2......... E6 José 5500 D2............

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,... Quatro FNs são mais utilizadas na prática A teoria nem sempre é ideal do ponto de vista prático proliferação de tabelas!

Processo de Normalização Passagem a 4FN esquema na 3FN Passagem a 3FN esquema na 2FN esquema relacional normalizado Passagem a 2FN esquema na 1FN Tabela ÑN Passagem a 1FN

1 a Forma Normal (1FN) Uma tabela está na 1FN sse ela possui apenas atributos atômicos Não são permitidos Tabelas com aninhamento (tabelas aninhadas) Tabelas com atributos multivalorados

Passagem para a 1FN - Exemplo Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Atributo multivalorado Tabela não-normalizada - ÑN 11/30/10

Passagem para a 1FN - Exemplo Pedido Numero Cliente Data Produto Quantidade Preco Unitario P11 Ana 10/10/2006 Mochila 1 80 Tenis 1 120 Boné 2 45 P22 Juca 12/10/2007 Bermuda 2 95 Meia Branca 3 5 P33 Maria 13/10/2007 Camiseta Branca 1 86 Mochila 2 79,5 Tabela aninhada com dados de Produtos Tabela não-normalizada - ÑN 11/30/10

Passagem para 1FN Duas soluções: 1º..: criar uma nova tabela 2º..: criar mais atributos na tabela Com tabela aninhada Solução 1 Com atributo multivalorado Soluções 1 e 2 11/30/10

Passagem para 1FN Tabela aninhada 1ª Solução: Tabela aninhada vira nova tabela Atributos da nova tabela: Colunas da tabela aninhada + PK da tabela original PK própria da tabela aninhada deve ser definida Atributos da tabela original: Todas as colunas menos as colunas da tabela aninhada 11/30/10

Criação da nova tabela - Exemplo Tabela aninhada torna-se nova tabela com PK própria Pedido Numero Cliente Data NumeroProd Produto Quantidade Preco Unitario P11 Ana 10/10/2006 PROD01 Mochila 1 80 PROD02 Tenis 1 120 PROD03 Boné 2 45 P22 Juca 12/10/2007 PROD04 Bermuda 2 95 PROD12 Meia Branca 3 5 P33 Maria 13/10/2007 PROD76 Camiseta Bra 1 86 PROD01 Mochila 2 79,5 Numero NumeroProd Produto Quantidade Preco Unitario P11 PROD01 Mochila 1 80 P11 PROD02 Tenis 1 120 P11 PROD03 Boné 2 45 P22 PROD04 Bermuda 2 95 P22 PROD12 Meia Branca 3 5 P33 PROD76 Camiseta Branca 1 86 P33 PROD01 Mochila 2 79,5 11/30/10

Atributos da nova tabela - Exemplo Atributos: colunas da tabela aninhada + PK da tabela original Pedido Numero Cliente Data NumeroProd Produto Quantidade Preco Unitario P11 Ana 10/10/2006 PROD01 Mochila 1 80 PROD02 Tenis 1 120 PROD03 Boné 2 45 P22 Juca 12/10/2007 PROD04 Bermuda 2 95 PROD12 Meia Branca 3 5 P33 Maria 13/10/2007 PROD76 Camiseta Bra 1 86 PROD01 Mochila 2 79,5 Numero NumeroProd Produto Quantidade Preco Unitario P11 PROD01 Mochila 1 80 P11 PROD02 Tenis 1 120 P11 PROD03 Boné 2 45 P22 PROD04 Bermuda 2 95 P22 PROD12 Meia Branca 3 5 P33 PROD76 Camiseta Branca 1 86 P33 PROD01 Mochila 2 79,5 11/30/10

Tabela original - Exemplo Atributos: todas as colunas menos as colunas da tabela aninhada Pedido Numero Cliente Data NumeroProd Produto Quantidade Preco Unitario P11 Ana 10/10/2006 PROD01 Mochila 1 80 PROD02 Tenis 1 120 PROD03 Boné 2 45 P22 Juca 12/10/2007 PROD04 Bermuda 2 95 PROD12 Meia Branca 3 5 P33 Maria 13/10/2007 PROD76 Camiseta Bra 1 86 PROD01 Mochila 2 79,5 Numero Cliente Data P11 Ana 10/10/2006 P22 Juca 12/10/2007 P33 Maria 13/10/2007 11/30/10

Resumo: Passagem para 1FN de uma Tabela aninhada Tabela ÑN Pedido (numero, cliente, data, (NumeroProd, produto, quantidade, precounitario)) Tabela na 1FN Pedido Pedidos (numero, cliente, data) Numero Cliente Data NumeroProd Produto Quantidade Preco Unitario P11 Ana 10/10/2006 PROD01 Mochila 1 80 PROD02 Tenis 1 120 PROD03 Boné 2 45 P22 Juca 12/10/2007 PROD04 Bermuda 2 95 PROD12 Meia Branca 3 5 P33 Maria 13/10/2007 PROD76 Camiseta Bra 1 86 PROD01 Mochila 2 79,5 Produto_pedidos (numero#, NumeroProd, produto, quantidade, precounitario)) Pedido Numero Cliente Data P11 Ana 10/10/2006 P22 Juca 12/10/2007 P33 Maria 13/10/2007 Produto_Pedido Numero NumeroProd Produto Quantidade Preco Unitario P11 PROD01 Mochila 1 80 P11 PROD02 Tenis 1 120 P11 PROD03 Boné 2 45 P22 PROD04 Bermuda 2 95 P22 PROD12 Meia Branca 3 5 P33 PROD76 Camiseta Branca 1 86 P33 PROD01 Mochila 2 79,5 11/30/10

Passagem para 1FN Atributo multivalorado Solução: 1º..: criar uma nova tabela Usar quando o atributo multivalorado pode assumir um número indefinido de valores 11/30/10

Atributo Multivalorado Criar nova tabela Processo similar ao efetuado quando há tabela aninhada: Atributo multivalorado torna-se uma nova tabela, tendo como atributos Atributo multivalorado + PK Própria + PK da tabela original 11/30/10

Criação da nova tabela Atributo multivalorado torna-se nova tabela Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Numero CodLocal Localizacao 1DEP LC01 Floripa 1DEP LC02 Joinville 1DEP LC03 Blumenau 2DEP LC02 Joinville 3DEP LC01 Floripa 3DEP LC04 Porto Alegre 4DEP LC01 Floripa Atributo Multivalorado 11/30/10

Atributos da nova tabela Atributos: atributo multivalorado + PK Própria + PK da tabela original Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Pk da tabela Original Numero CodLocal Localizacao 1DEP LC01 Floripa 1DEP LC02 Joinville 1DEP LC03 Blumenau 2DEP LC02 Joinville 3DEP LC01 Floripa 3DEP LC04 Porto Alegre 4DEP LC01 Floripa Pk Própria Deve identificar cada instância Atributo Multivalorado 11/30/10

Tabela Original Atributos: todas as colunas menos o atributo multivalorado Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Numero Nome Gerente 1DEP Pesquisa 111222 2DEP RH 222333 3DEP Adm 333444 4DEP Diretoria 444555 11/30/10

Resumo: Passagem para 1FN com atributo multivalorado Tabela ÑN Departamento (numero, nome, gerente, localizacao <1,n>) Tabela em 1FN Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Departamentos (numero, nome, gerente) Locais_Depart (numero#, codlocal, localizacao) Departamento Numero Nome Gerente 1DEP Pesquisa 111222 2DEP RH 222333 3DEP Adm 333444 4DEP Diretoria 444555 Local_Depart Numero CodLocal Localizacao 1DEP LC01 Floripa 1DEP LC02 Joinville 1DEP LC03 Blumenau 2DEP LC02 Joinville 3DEP LC01 Floripa 3DEP LC04 Porto Alegre 4DEP LC01 Floripa 11/30/10

Passagem para 1FN Atributo multivalorado Solução: 2º..: criar mais atributos na tabela Usar quando o atributo multivalorado pode assumir um número limitado de valores 11/30/10

Atributo Multivalorado Criar mais atributos na tabela Atributo multivalorado recebe uma coluna para valor possível 11/30/10

Criação de Atributos Atributo multivalorado é particionado em vários atributos No exemplo, é sabido que cada departamento deve estar alocado a no máximo 3 cidades. Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Departamento Numero Nome Gerente Local_Central Local_Apoio Local_urgencia 1DEP Pesquisa 111222 Floripa Joinville Blumenau 2DEP RH 222333 Joinville NULL NULL 3DEP Adm 333444 Floripa Porto Alegre NULL 4DEP Diretoria 444555 Floripa NULL NULL 11/30/10

Resumo: Passagem para 1FN com atributo multivalorado Tabela ÑN Departamento (numero, nome, gerente, localizacao <1,n>) Tabela em 1FN Departamento Numero Nome Gerente Localizacao 1DEP Pesquisa 111222 {Floripa, Joinville, Blumenau} 2DEP RH 222333 Joinville 3DEP Adm 333444 {Floripa, Porto Alegre} 4DEP Diretoria 444555 Floripa Departamentos (numero, nome, gerente, LocalCentral, Local_Apoio, Local_Urgencia) Departamento Numero Nome Gerente Local_Central Local_Apoio Local_urgencia 1DEP Pesquisa 111222 Floripa Joinville Blumenau 2DEP RH 222333 Joinville NULL NULL 3DEP Adm 333444 Floripa Porto Alegre NULL 4DEP Diretoria 444555 Floripa NULL NULL 11/30/10

Exercício 1 Apresente a Tabela ÑN e a 1FN para a Nota Fiscal abaixo Loja XX NF n o 333 Cliente: João da Silva Rua: Bandeirantes Número: 1245 Complemento: apto. 303 Fone: 3344.6565 9990.9991 2322.1544 Produtos #ID Descrição Preço Unitário Qtde Total 22 Prego 0.5 10 5 39 Martelo 15 1 15 42 Lixa 1 5 5 56 Cola 10 2 20 TOTAL: 45

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

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 1 q 10 x 2 s 5 z 1 p 5 y 3 r 10 x 2 s 5 z 1 p 5 y 3 r 10 y 1 q 10 x 1 r 5 x 2 s 5 A D A B (A,B) C DF pode ser composta!

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

CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl 2FN - Aplicação LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH 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 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 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 novas tabelas são definidas para cada DF parcial encontrada 2FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, DataIni, TempoAloc) Empregados (CodEmp, Nome, Cat, Sal)

Observação 2FN - Aplicação Uma tabela com PK composta nunca pode ser removida, mesmo que todas as DFs existentes nela sejam parciais Evita a perda de relacionamentos entre dados Exemplo 1FN: Livros(ID-livro, título, ano) Autorias(ID-livro, ID-autor, nome, DN) 2FN: ID-autor nome, DN (DF Parcial!) Livros(ID-livro, título, ano) Autores(ID-autor, nome, DN) Autorias(ID-livro, ID-autor) Tabela Autorias permanece, pois ela mantém o relacionamento entre Livros e Autores

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

3 a Forma Normal (3FN) Uma tabela está na 3FN sse ela estiver na 2FN e não possuir DFs indiretas tabelas com DFs indiretas 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

Passagem para 3FN Atributos de cada nova tabela: Atributo não-chave determinante e todos os atributos não-chave determinados por ele PK própria da nova tabela deve ser definida, se necessário Atributos da tabela original: Todas as colunas menos os atributos não-chave determinados por outros atributos não-chave + PKs próprias das novas tabelas 11/30/10

3FN Nova Tabela Atributos: atributo determinante + seus atributos determinados + PK própria tabela Empresas DF indiretas: cidade população cidade estado ID-empresa nome cidade população estado 100 ABC Florianópolis 400.000 SC 101 Best Joinville 700.000 SC 102 Cia Malhas Joinville 700.000 SC 103 Desterro Florianópolis 400.000 SC............ ID-cidade nome população estado 1 Florianópolis 400.000 SC 2 Joinville 700.000 SC......... 11/30/10

3FN - Tabela Original Atributos: todas as colunas menos os atributos dependentes de outro atributo não-chave + PK tabela nova Empresas ID nome cidade população estado 100 ABC Florianópolis 400.000 SC 101 Best Joinville 700.000 SC 102 Cia Malhas Joinville 700.000 SC 103 Desterro Florianópolis 400.000 SC............ ID nome ID-cidade 100 ABC 1 101 Best 2 102 Cia Malhas 2 103 Desterro 1......... 11/30/10

Resumo: Passagem para 3FN Tabela na 2FN Empresas (ID, nome, cidade, população, estado) Empresas Esquema na 3FN ID nome cidade população estado 100 ABC Florianópolis 400.000 SC 101 Best Joinville 700.000 SC 102 Cia Malhas Joinville 700.000 SC 103 Desterro Florianópolis 400.000 SC............ Empresas (ID, nome, ID-Cidade) Cidades (ID-Cidade, nome, população, estado) Empresas ID nome ID-cidade 100 ABC 1 101 Best 2 102 Cia Malhas 2 103 Desterro 1......... Cidades ID-cidade nome população estado 1 Florianópolis 400.000 SC 2 Joinville 700.000 SC......... 11/30/10

3FN - Aplicação CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH 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 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 2FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, DataIni, TempoAloc) Empregados (CodEmp, Nome, Cat, Sal) DFs: CodEmp Sal CodEmp Cat Sal (DF indireta!) 3FN: Projetos (CodProj, Tipo, Descr) Alocações (CodProj, CodEmp, DataIni, TempoAloc) Empregados (CodEmp, Nome, Cat) CategoriasFuncionais(Cat, Sal)

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: Estantes (número, capacidade) DistribuiçãoLivros (número, ISBN, título, ano) DistribuiçãoLivrosAutor (número, ISBN, codautor, nome, nacionalidade) 2FN = 3FN: Estantes (número, capacidade) relacionamento contido em outra tabela! (pode ser removido) Livros (ISBN, título, ano) DistribuiçãoLivros (número, ISBN) Autores (codautor, nome, nacionalidade) DistribuiçãoLivrosAutor(número, ISBN, codautor)

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

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 Tabela com o relacionamento n-ário deixa de existir e novas tabelas são geradas para cada DF multivalorada encontrada 4FN: Estantes (número, capacidade) Livros (ISBN, título, ano) Autores (codautor, nome, nacionalidade) DistribuiçãoLivros(número, ISBN) Autoria(ISBN, codautor)

Exercício 2 A tabela abaixo está na 1FN. Obtenha a 2FN, 3FN e 4FN ArtigosAceitos (ID-artigo, título, ano, ID-autor, nomeautor, codevento, nomeevento, ID-revisor, nomerevisor)

Normalização Questões Análise de CPs tabelas podem ou não ter atributos que garantam identificação única de suas tuplas ou ter uma CP muito extensa 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))

Normalização Questões Dados relevantes, porém implícitos sugestão: definir tais dados ÑN: Aprovação (CodCurso, Nome, (CodCand, Nome, Endereço)) a ordem determina a classificação do candidato Ñ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)

Exercício 3 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 Tropa de Elite 2 drama 95 lançamento 7,00 12/12/10 D4 Rei Leão infantil 75 simples 4,00 15/12/10 D9 Platton guerra 105 simples 4,00 18/12/10 D2 Os Normais 2 comédia 88 especial 5,00 14/12/10 0051 Ana Luz 3221.1212 D5 Os Incríveis infantil 99 especial 5,00 13/12/10 D5 Os Incríveis infantil 99 especial 5,00 15/12/10 D9 Platton guerra 105 simples 4,00 15/12/10 D12 Avatar ficção 98 lançamento 7,00 14/12/10...

Exercício 4 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-07</datasaida><vagas>40</vagas><preco>1200.00</preco></pacote> <pacote><datasaida>05-02-07</datasaida><vagas>50</vagas><preco>1000.00</preco></pacote>... </pacotes> <trechos> <cidade numeroordem= 01 ><nome>gramado</nome> <estado>rs</estado><populacao>35000</populacao><tempoestadia>2</tempoestadia> </cidade> <cidade numeroordem= 02 ><nome>caxias do Sul</nome> <estado>rs</estado><populacao>400000</populacao><tempoestadia>2</tempoestadia> </cidade>... <cidade numeroordem= 05 ><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-07</datasaida><vagas>45</vagas><preco>800.00</preco></pacote> <pacote><datasaida>06-07-07</datasaida><vagas>40</vagas><preco>900.00</preco></pacote>... </pacotes> <trechos> <cidade numeroordem= 01 ><nome>caxias do Sul</nome> <estado>rs</estado><populacao>400000</populacao><tempoestadia>2</tempoestadia> </cidade> <cidade numeroordem= 02 ><nome>bento Goncalves</nome> <estado>rs</estado><populacao>235000</populacao><tempoestadia>2</tempoestadia> </cidade>... </trechos> </roteiro>... </roteiros>