• Nenhum resultado encontrado

Banco de Dados I. Normalização

N/A
N/A
Protected

Academic year: 2021

Share "Banco de Dados I. Normalização"

Copied!
11
0
0

Texto

(1)

Banco de Dados I

Normalização

Prof. Rodrigo Rocha

prof.rodrigorocha@yahoo.com

Apresentação

ƒ Prof. Rodrigo Rocha –

prof.rodrigorocha@yahoo.com

ƒ Ementa

• Conceitos Fundamentais de Banco de Dados;

• Conceitos Fundamentais de Banco de Dados;

• Características de um SGBD;

• Arquitetura de SGBD; Introdução ao Modelo;

• Entidade-Relacionamento (MER);

• Modelo Entidade-Relacionamento;

• Projeto Conceitual: Diagrama Entidade-Relacionamento (DER);

• Introdução aos bancos de dados relacionais;

Introdução aos bancos de dados relacionais;

(2)

Normalização

ƒ Técnica de modelagem de dados que visa:

• evitar erros no projeto do banco de dados

• a inexistência de redundância

• a inexistência de redundância

• consistência das informações

¾uma operação de manipulação de dados afeta

somente uma ocorrência de um dado

ƒ Existem 5 estágios de normalização

1ª forma normal

ƒ "Uma Tabela está na Primeira Forma Normal quando seus

atributos não contém grupos de Repetição".

ƒ Uma ocorrência da chave, só pode corresponder uma

ocorrência dos outros atributos não chave.

ƒ Sem repetição de elementos ou grupo de elementos

RA Nome Endereço Curso

2005001 Jaobernezio R. Dois, 112 CC 2005001 Jaobernezio R. Dois, 112 ADM 2005001 Jaobernezio R. Dois, 112 POS 2002011 Abelina R. Sta Filomena,56 ENF 2004140 Clarisbadeu Av. Nove Julho, 20 ENF

• Se Jaobernezio mudar de endereço ? (anomalia de atualização) • Um novo curso para Jaobernezio ? (anomalia de inclusão) • Retirar Jaobernezio da Tabela (anomalia de remoção)

(3)

1ªFN

ƒ Exemplo:

ƒ Tabela Funcionário

Código Nome Sexo Categoria AnosCat

ƒ Na 1FN:

Código Nome Sexo Categoria AnosCat

Códi

N

S

ƒ Tabela Funcionário

ƒ Tabela Categorias

Código

Nome

Sexo

Código

Categoria

AnosCat

(4)

1ªFN

ƒ Chave Primária

Descrição:

Projetos (codProjeto, tipo, descricao,codEmpregado, nome, categoria, salario, dataInicio, tempoAlocacao)

1FN:

Projetos (codProjeto tipo descricao) Projetos (codProjeto, tipo, descricao)

Alocacoes (codProj, codEmp, nome, categ, sal, dataIni, tempoAloc)

• Chave Primária da tabela externa migra para a tabela aninhada • Qual a Chave Primária da tabela aninhada?

1ºFN

Desc: Projetos (codProjeto, tipo, descricao, codEmpregado, nome, categoria, salario, dataInicio, tempoAlocacao)

1FN: Projetos (codProjeto tipo descricao) 1FN: Projetos (codProjeto, tipo, descricao)

Alocações (codProjeto, codEmpregado, nome,categoria, salario, dataInicio, tempoAlocacao)

• Chave Primária da tabela aninhada

– codEmpregado identifica unicamente uma tupla em Alocações? (analisar os dados da tabela aninhada na fonte de dados como um todo)

(5)

1ºFN

Desc: Projetos (codProjeto, tipo, descricao, codEmpregado, nome, categoria, salario, dataInicio, tempoAlocacao)

1FN: Projetos (codProjeto, tipo, descricao)

Alocações (codProjeto, codEmpregado, nome,categoria, salario, dataInicio, tempoAlocacao)

• Chave Primária da tabela aninhada

– codEmpregado identifica unicamente uma tupla em Alocações? NÃO

– logo, codProjeto deve fazer parte da Chave Primária da tabela aninhada

2ª Forma Normal

ƒ “Uma tabela está na 2FN sse ela estiver na 1FN e não possuir

Dependências Funcionais parciais”

• DF Total

¾ se um atributo Ax depende funcionalmente de todosos atributos que compõem a Chave Primária de uma tabela T diz se que Ax possuiDF totalda compõem a Chave Primária de uma tabela T, diz-se que Ax possui DF totalda Chave Primária de T

¾ Simplificando, se conhecermos o valor de “A” então podemos encontrar o

valor de “B” associado a ele.

• DF Parcial

¾ se um atributo Ax depende funcionalmente apenas de algunsatributos (não todos!) que compõem a Chave Primária de uma tabela T, diz-se que Ax possui DF parcialda CP de T

(6)

2ª FN - Exemplo

1FN: Projetos (CodProjeto, Tipo, Descricao)

Alocações (CodProjeto, CodEmpregado, Nome, Categoria,

Salario,DataInicio, TempoAlocacao)

Dependecia Funcionais:

(CodEmpregado) Nome, Categoria, Salario

(DF Parcial!)

(CodProjeto, CodEmpregado) DataInicial, TempoAlocacao

2FN: Projetos (CodProjeto, Tipo, Descricao)

Alocações (CodProjeto, CodEmpregado, DataInicio, TempoAlocacao) Empregados (CodEmpregado, Nome, Categoria, Salario)

3ª Forma Normal

ƒ “Uma tabela está na 3FN sse ela estiver na

2FN e não possuir Dependências Funcionais

transitivas”

transitivas

• DF Transitiva ou Indireta

¾Se um atributo não-chave Ax 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 Ax

possui DF transitiva ou indireta da CP de T

• Simplificando

¾“Uma entidade que está na 2FN pode ter um

atributo que não é uma chave mas que por si

identifica outros atributos. Refere-se a isto como

uma dependência transitiva”

(7)

3ªFN - Exemplo

2FN:

Projetos (CodProjeto, Tipo, Descricao)

Alocações (CodProjeto, CodEmpregado, DataInicio,

TempoAlocacao)

Empregados (CodEmpregado, Nome, Categoria, Salario)

Dependências Funcionais

CodEmpregado Salario

CodEmpregado Categoria Salario (DF Transitiva!)

3FN:

Projetos (CodProjeto, Tipo, Descricao)

Alocações (CodProjeto, CodEmpregado, DataInicio,

TempoAlocacao)

Empregados (CodEmpregado, Nome,

Categoria

)

CategoriasFuncionais(Categoria, Salario)

(8)

4ª e 5ª Forma Normal

ƒ 4ª Forma Normal

• Remove dependências funcionais

multivaloradas

multivaloradas

ƒ 5ª Forma Normal

• remove dependências de junção

4ª Forma Normal - Exemplo

ƒ Tabela com dependência multivalorada.

• Exemplo: nr_Telefone

• Cliente (cd Cliente nm Cliente nm Rua

• Cliente (cd_Cliente, nm_Cliente, nm_Rua,

nm_Cidade, cd_UF, nr_CNPJ, nr_IE,

nr_Telefone)

ƒ Após aplicar a 4FN.

• Cliente (cd_Cliente, nm_Cliente, nm_Rua,

nm_Cidade, cd_UF, nr_CNPJ, nr_IE)

(9)

Exemplos

ƒ PEDIDO (NUMERO_PEDIDO, DATA_PEDIDO,NUMERO_CLIENTE, NOME_CLIENTE, ENDERECO_CLIENTE, NUMERO_PRODUTO, NOME_PRODUTO, QTDE_PEDIDA, PRECO_PRODUTO,

TOTAL_PRODUTO,TOTAL_PEDIDO) ƒ 1FN1FN

PEDIDO (NUMERO_PEDIDO, DATA_PEDIDO,NUMERO_CLIENTE, NOME_CLIENTE,

ENDERECO_CLIENTE, TOTAL_PEDIDO)

PRODUTO_PEDIDO (NUMERO_PEDIDO, NUMERO_PRODUTO, NOME_PRODUTO,

QTDE_PEDIDA, PRECO_PRODUTO, TOTAL_PRODUTO) ƒ 2FN

PEDIDO (NUMERO_PEDIDO, DATA_PEDIDO,NUMERO_CLIENTE, NOME_CLIENTE,

ENDERECO_CLIENTE, TOTAL_PEDIDO)

PRODUTO_PEDIDO (NUMERO_PEDIDO, NUMERO_PRODUTO, QTDE_PEDIDA,

TOTAL_PRODUTO)_ )

PRODUTO (NUMERO_PRODUTO, NOME_PRODUTO, PRECO_PRODUTO)

ƒ 3FN

PEDIDO (NUMERO_PEDIDO, NUMERO_CLIENTE,DATA_PEDIDO, TOTAL_PEDIDO)

CLIENTE (NUMERO_CLIENTE, NOME_CLIENTE,ENDERECO_CLIENTE)

PRODUTO_PEDIDO (NUMERO_PEDIDO,NUMERO_PRODUTO+ QTDE_PEDIDA,

TOTAL_PRODUTO)

PRODUTO (NUMERO_PRODUTO, NOME_PRODUTO,PRECO_PRODUTO)

Exemplo: Nota Fiscal

ƒ NotaFiscal (nr_NF, cd_NatOperacao, cd_Transportadora,

dt_Emissao, cd_Cliente, nm_Cliente, nm_Rua, nm_Cidade,

cd_UF, nr_CNPJ, nr_IE, nr_Telefone, cd_Produto,

cd_Unidade, qt_Vendida, nm_produto, cd_Tributacao,

vl Unitario vl TotalItem vl TotalNF)

vl_Unitario, vl_TotalItem, vl_TotalNF)

ƒ 1ª FN

• NotaFiscal (nr_NF, cd_NatOperacao, cd_Transportadora,

dt_Emissao, cd_Cliente, nm_Cliente, nm_Rua, nm_Cidade, cd_UF,

nr_CNPJ, nr_IE, nr_Telefone, vl_TotalNF)

• NotaFiscalItem (nr_NF, cd_Produto, cd_Unidade, qt_Vendida,

nm_produto, cd_Tributacao, vl_Unitario, vl_TotalItem)

(10)

Exemplo: Nota Fiscal (continuação)

ƒ 3ª FN

• NotaFiscal (nr_NF, cd_NatOperacao, cd_Transportadora,

dt_Emissao, cd_Cliente, vl_TotalNF)

• Cliente (cd_Cliente, nm_Cliente, nm_Rua, nm_Cidade,

cd_UF, nr_CNPJ, nr_IE, nr_Telefone)

• NotaFiscalItem (nr_NF, cd_Produto, qt_Vendida,

vl_Unitario)

ƒ 4ª FN

4 FN

• NotaFiscal (nr_NF, cd_NatOperacao, cd_Transportadora,

dt_Emissao, cd_Cliente, vl_TotalNF)

• Cliente (cd_Cliente, nm_Cliente, nm_Rua, nm_Cidade,

cd_UF, nr_CNPJ, nr_IE)

• Telefone (cd_Cliente, nr_Telefone)

Exercícios

ƒ Normalizar o seguinte conjunto de atributos:

1-) Aluno (cod_aluno, nome, naturalidade, ano_nascimento, cod_curso, curso, director, ano_inscrição, cod_disciplina, disciplina, nota)

2-) Encomenda (num encomenda num cliente cliente endereço cliente2 ) Encomenda (num_encomenda, num_cliente,cliente, endereço_cliente, data_encomenda,cod_produto, produto, quantidade)

3-) Apólice (num_ap, data, valor, estado, matricula, cod_cliente, nome, localidade, cod_tipo, tipo, num_pag, data_pag, valor_pag, marca_viatura)

4-) Escritorio (andar, sala, atividade_esc, nome_empregado, rg_emp, habilitacao_empregado, nome_departamento, telefone_depto,

5-) CD_DVD (codigo_barra, titulo, artista, ano, cod_genero,genero, numero_musica, nome musica, duração musica)o e_ us ca, du ação_ us ca)

6-) NotaFiscal (número, série, cod_cliente, nome_cliente, telefone, rua, número, apto, cidade, estado, cep, cod_vendedor, nome_vendedor, cod_setor, nome_setor, data, Total_Parcial, Descontos, Total, cod_produto, descrição, unidade, preço_unitário, quantidade, preço_total)

7-) Reserva (cod_reserva, cli_nome, cli_end, cli_tel, cli_cpfcnpj, emp_cod, emp_nome, emp_end, emp_pais, emp_cnpj, voo_cod, voo_datahora, voo_origem, voo_destino)

(11)

Bibliografia

ƒ Livro texto

SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S..

Sistema de Banco de Dados. 5.ed. Rio de Janeiro: Campus, 2006.

MACHADO Felipe Ner Rodrig es ABREU Ma rício Pereira de

MACHADO, Felipe Nery Rodrigues; ABREU, Maurício Pereira de.

Projeto de Banco de Dados: uma visão prática. 14.ed. São

Paulo: Erica, 2007.

DATE, C. J.; VIEIRA, Daniel. Introdução a Sistemas de Banco de

Dados . 8.ed. Rio de Janeiro: Campus, 2004.

ƒ Complementar

HEUSER Carlos Alberto Projeto de Banco de Dados Porto AlegreHEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre, RS: Editora Sagra Luzzatto, 2001.

• Alvares, Reinaldo Viana. Tecnologias de Banco de Dados e

Modelagem de Dados. Disponível em

<http://www.devmedia.com.br/articles/viewcomp.asp?comp=2106>

• Bagui, Sikha;Earp, Richard. Database Design Using

Referências

Documentos relacionados

Ao escolhermos essa temática para ser pesquisada, buscando compreender como e quais os espaços que são destinados às brincadeiras em escolas de

- DESCRICAO: MARCA: YUKON VIKING.. - DESCRICAO: MARCA:

ULTIMATE PROTECT WIRED MAT 4.0 Alu 1 -(BLACK) Manta de lã mineral Ultimate de alta densidade, com malha de aço galvanizado, de composição especial resistente a altas

Assim como nas manufaturas, os desperdícios nas áreas administrativas são atividades que não adicionam valor para o produto, serviço ou para o cliente,

O desempenho no sector imobiliário do país e da construção foi relativamente bom em 2009, e o crescimento das actividades contribuíram para o crescimento real

1 - Pela aquisição dos serviços objeto do contrato, bem como pelo cumprimento das demais obrigações constantes do presente Caderno de Encargos, o Município de Figueira de

Sou capaz de identificar quais são os obstáculos para alcançar os meus objectivos e de programar um conjunto de acções para superá-los... empresas locais com

e finalmente pela sociedade.. Se não houver ninguém disposto a pagar pelo produto ou serviço oferecido, por muito bom ou inovador que este seja, não será um negócio