Universidade Federal de Santa Catarina

Slides:



Advertisements
Apresentações semelhantes
BANCO DE DADOS I Prof. Ricardo Santos.
Advertisements

Modelo Relacional e Transformação DER x Relacional
Um pouco mais de cardinalidade e Relacionamentos
Abordagem Entidade Relacionamento
Normalização em BD Relacional
SISTEMAS DE INFORMAÇÃO
Normalização Aula 3.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
NORMALIZAÇÃO Unidade: Sistemas de Gestão de Base de Dados
Normalização.
MODELO RELACIONAL Transparências baseadas no capítulo 3 do livro de KORTH e SILBERCHATZ e capítulo 7 do livro de ELMASRI e NAVATHE Juliana Amaral e Rodrigo.
O Modelo E-R Definição: Características
Funcionalidades de um SGBD
Prof.: Bruno Rafael de Oliveira Rodrigues
Sistemas de Informação Redes de Computadores
Projeto de Banco de Dados
Conceito de Chave Composta
Sistema Gerenciador de Banco de Dados SGBD
Introdução a Bancos de Dados
(Dependência Funcional e Normalização)
Processo de Normalização
Profa Msc. Patricia Blini Estivalete
Linguagem de Banco de Dados - SQL
FORMAS DE REPRESENTAÇÃO QUE SERVEM PARA DESCREVER AS ESTRUTURAS DAS INFORMAÇÕES CONTIDAS EM UM BD. Modelos de Dados.
Banco de Dados Aplicado ao Desenvolvimento de Software
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Normalização Disciplina: Banco de dados II.
Prof. Alfredo Parteli Gomes
SQL Server 2012 Introdução a Modelagem de Dados
Normalização de Dados. 2 SGBD + Banco de Dados Independência de dados Consistência de dados.
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Capítulo 7: Design de Bases de Dados
MODELAGEM EM BANCO DE DADOS
Sistemas de Informações Geográficas SIGs.
Projetando uma base de dados
Curso Técnico em Informática Prof. Tales Cabral Colégio da Imaculada.
Normalização Normalização é o conjunto de regras que visa minimizar as anomalias de modificação dos dados e dar maior flexibilidade em sua utilização.
Análise de Sistemas de Informação
Profa. Ana Karina Barbosa Abril/2008
Curso Técnico em Informática DISCIPLINA: Implementação a Banco de Dados PROFESSOR: Flávio Barbosa PARACATU /MG.
BANCO DE DADOS Aula 3 Josino Rodrigues Neto© Fundamentos em Banco de Dados.
ANÁLISE DE SISTEMAS 1Trabalho elaborado por Alexandra.
Normalização Álvaro Vinícius de Souza Coêlho
Desenvolvimento de uma base de dados
Formas Normais Pedro Sousa 1 Dependências Funcionais e Formas Normais.
Bases de dados: cruzamento de tabelas
Banco de Dados I Unidade 3: Projeto de BD Relacional
Profa. Ana Karina Barbosa Abril/2008
Modelo Relacional Marcelo Mendes Manaus – 2015.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Professor Me. Jeferson Bussula Pinheiro.
Aula 3 – Conceitos de banco de dados relacionais
B ANCO DE DADOS Modelo Relacional ABTécnico. M ODELOS DE DADOS Apoiando a estrutura de um BD está o modelo de dados: uma coleção de ferramentas conceituais.
Salário, Sexo, R$200,00, Veículos, Idade, Marco Antônio, Masculino, R$600,00, Funcionário, Marca, 18 anos, Livros, Motoristas, Maria do Carmo, Endereço,
Modelagem de Dados Consiste em mapear o mundo real do sistema em um modelo que irá representar a realidade e o relacionamento existente entre os dados.
Modelo Relacional, Chaves e Relacionamentos
@ Rafael Machado – ACCESS Base de Dados para a Gestão de Informação de Natureza Pedagógica.
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
 O Modelo E-R (Entidade-Relação)
Normalização Prof. Juliano. 2 Consistência de Dados Controlar a construção do sistema através da criação de tabelas segundo regras que garantam a manutenção.
Professor: reno nooblath
Modelagem de Dados Aula 4. 2 Implementação de Entidades Não é aconselhável simplesmente transcrever os nomes dos atributos para nomes de colunas. Nomes.
Normalização.
Anomalias de Inserção, Remoção e Atualização
Dependência Funcional  Para entender as duas formas normais que serão apresentadas a seguir é necessário compreender o conceito de dependência funcional.
Sistemas de Informação Prof. Me. Everton C. Tetila Dependências funcionais e normalização para bancos de dados relacionais Banco de Dados I.
Base de Dados Departamento de Informática – Celio Sengo Base de Dados Normalização do DEA e do Modelo Relacional Dr. Célio B. sengo Novembro, 2013.
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Universidade Federal de Santa Catarina
Universidade Federal de Santa Catarina
Transcrição da apresentação:

Universidade Federal de Santa Catarina Banco de Dados Normalização

Introdução Com o surgimento e o aperfeiçoamento do sistema relacional na década de 70, várias regras foram definidas para a simplificação de tabelas, recebendo o nome de formas normais. Cada uma destas regras apresenta um critério de adequação, e o processo de adequação de tabelas a estas regras práticas chama-se normalização.

Normalização de Dados É um processo formal, passo a passo, de análise dos atributos de uma relação Objetivo: evitar redundância, inconsistência e perda de informação no banco de dados Teoria proposta por Codd no início dos anos 70.

Anomalias de Atualização Inclusão Exclusão Modificação Ex: Quais problemas são decorrentes da relação Vendas? 10,00 20 0,50 Lápis A Null KZZ 444 Pedro 2,00 2 1,00 Régua C 789 XPT 333 João 3,00 3 Caneta B 456 XYZ 222 Ana 123 ABC 111 Zé total qtd Vunit nomeP codP fone endereco CPF nomeC

Anomalias de Atualização Modificação/Atualização: uma mudança na descrição da peça A requer várias mudanças inconsistência: não há nada no projeto impedindo que o produto A tenha duas ou mais descrições diferentes no BD 10,00 20 0,50 Lápis A Null KZZ 444 Pedro 2,00 2 1,00 Régua C 789 XPT 333 João 3,00 3 Caneta B 456 XYZ 222 Ana 123 ABC 111 Zé total qtd Vunit nomeP codP fone endereco CPF nomeC

Anomalias de Atualização Inserção: a inserção de uma nova peça sem um pedido correspondente causa problema Exclusão: se o cliente ANA fosse eliminado seria perdida a informação de que o produto B é chamado caneta e custa R$ 1,00 10,00 20 0,50 Lápis A Null KZZ 444 Pedro 2,00 2 1,00 Régua C 789 XPT 333 João 3,00 3 Caneta B 456 XYZ 222 Ana 123 ABC 111 Zé total qtd Vunit nomeP codP fone endereco CPF nomeC

Formas de Normalização

Como evitar os problemas na criação de um novo BD? Normalização de Dados Como evitar os problemas na criação de um novo BD? Elaborando um bom modelo conceitual de dados. Aplicando corretamente o projeto lógico de BDs. E quando o BD já existir ? Processo de Normalização de Dados.

Processo de Normalização inicia com uma relação ou coleção de relações produz uma nova coleção de relações: equivalente a coleção original (representa a mesma informação) livre de problemas Significado: as novas relações estarão, pelo menos na 3FN

Processo de Normalização Tipos de Formas Normais

Chave de Relação A chave de uma relação determina funcionalmente todos os atributos da relação Seja uma relação R ( A1, A2, ..., An ) e X  {A1, A2, ..., An}. - X é uma superchave de R se X identificar todos os atributos da relação R - X é uma chave de R se: 1. X é uma superchave 2. nenhum subconjunto de X determina todos os atributos R

Exemplo de Tabela Não-normalizada Projetos (codProj, tipo, descr, codEmp, nome, categ, sal, dataIni, tempoAl)‏

1ª Forma Normal (1FN)‏ “Uma tabela está na 1FN se e somente se ela não possui tabelas aninhadas” Procedimento usual gerar uma tabela para cada aninhamento

1ª Forma Normal (1FN)‏ ÑN: Projetos (codProj, tipo, descr, codEmp, nome, categ, sal, dataIni, tempoAl) ‏ 1FN: Projeto (codProj, tipo, descr)‏ ProjetoEmpregado (codProj, codEmp, nome, categ, sal, dataIni, tempoAl) Através da chave da nova relação é possível obter as informações da relação original

Exercício Verificar se o modelo ER do sistema academico e da transportadora estao na primeira forma normal

Dependência Funcional Dada uma relação R com atributos A1,...,An,B1,...,Bm,C1,...,Cl, Dizemos que A1,...,An determina funcionalmente B1,...,Bm ( A1, ..., A n) B1,...,Bm Sempre que duas tuplas tiverem os mesmos valores para A1,...,An, então elas terão o mesmo valor para B1,...,Bm. Produto  Descrição

Dependência Funcional: Exemplo Código Salário

DF Total e DF Parcial DF Parcial DF Total um atributo depende funcionalmente de parte da chave composta de uma tabela OU Parte da chave composta identifica um ou mais atributos da tabela DF Total um atributo depende funcionalmente de todos os atributos da chave composta de uma tabela A chave composta completa identifica um ou mais atributos da tabela

DF Total e DF Parcial DF Parcial DF Total ProjetoEmpregado (#codProj, #codEmp, nome, categ, sal, dataIni, tempoAl) DF Total Projeto (#codProj, tipo, descr)‏ ProjetoEmpregado (#codProj, #codEmp, nome, categ, sal, dataIni, tempoAl)‏ codEmp (parte da chave) – identifica o empregado, a categoria e seu salario codProj e codEmp (chave completa)– identificam a data de inicio e o tempo no qual o empregado atua no projeto

2ª Forma Normal (2FN)‏ “Uma tabela está na 2FN se e somente se ela estiver na 1FN e não possuir Dependência Funcional Parcial (DF)‏ tabelas com DFs parciais devem ser desmembradas em tabelas com DFs totais Tabelas cuja PK possui apenas um atributo estão automaticamente na 2FN

2ª Forma Normal (2FN)‏ 1FN: Projeto (codProj, tipo, descr)‏ 2FN: ProjetoEmpregado (codProj, codEmp, nome, categ, sal, dataIni, tempoAl) 2FN: ProjetoEmpregado (codProj, codEmp, dataIni, tempoAl) Empregado (codEmp, nome, categ, sal)

Exercício Transformar os sistemas acadêmico e da transportadora para a segunda forma normal

Dependência Funcional Transitiva Se um atributo não-chave possui DF total de um atributo chave e também possui DF total de um ou mais atributos não-chave, então diz-se que existe uma DF transitiva ou indireta da CP de T Empregado (codEmp, nome, categ, sal)

3 ª Forma Normal (3FN)‏ “Uma tabela está na 3FN se e somente se ela estiver na 2FN e não possuir DFs indiretas” – tabelas com DFs indiretas devem ser desmembradas em tabelas que não possuem tais Dfs Tabelas que possuem apenas um atributo que não faz parte da PK estão automaticamente na 3FN

3ª Forma Normal (3FN)‏ 2FN: 3FN: Projeto (codProj, tipo, descr)‏ ProjetoEmpregado (codProj, codEmp, dataIni, tempoAl) Empregado (codEmp, nome, categ, sal) 3FN: Empregado (codEmp, nome, #categ) CategoriaEmpregado (#Categ, Sal)‏

sugestão: definir uma CP Questões Análise de chaves primárias (Pks) tabelas podem ou não ter atributos que garantam a identificação única de suas tuplas ou ter uma CP muito extensa sugestão: definir uma CP ÑN: Projeto (CodProj, Tipo, Descr, (Nome, Cat, Sal, DataIni, TempoAl))‏ ÑN: Projeto (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempoAl)‏

sugestão: eliminar estes atributos 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, (CodEmp, Nome, Cat, Sal, DataIni, TempoAloc))‏ ÑN: Projetos (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempoAloc))‏

sugestão: definir tais dados Questões Dados relevantes, porém implícitos sugestão: definir tais dados ÑN: Aprovação (CodCurso, Nome,(CodCand, Nome, Endereço))‏ ÑN: Aprovação (CodCurso, Nome, (CodCand, Nome, Endereço, OrdemClass))‏ a ordem determina a classificação do candidato

Exemplo ÑN - Matricula (cod_aluno, cod_turma, cod_disciplina, nome_disciplina, nome_aluno, cod_local_nasc, nome_local_nasc)‏ Dependências: (cod_aluno, cod_turma)- > cod_disciplina cod_aluno -> nome_aluno, cod_local_nasc, nome_local_nasc cod_disciplina -> nome_disciplina cod_local_nasc -> nome_local_nasc

Exemplo Matricula (cod_aluno, cod_turma, cod_disciplina, nome_disciplina, nome_aluno, cod_local_nasc, nome_local_nasc)‏ 2FN Matricula (cod_aluno, cod_turma, cod_disciplina, nome_disciplina)‏ Aluno(cod_aluno, nome_aluno, cod_local_nasc, nome_local_nasc)‏

Exemplo Matricula (cod_aluno, cod_turma, cod_disciplina, nome_disciplina, nome_aluno, cod_local_nasc, nome_local_nasc)‏ 2FN Matricula (cod_aluno, cod_turma, cod_disciplina, nome_disciplina)‏ Aluno(cod_aluno, nome_aluno, cod_local_nasc, nome_local_nasc)‏ 3FN Matricula (cod_aluno, cod_turma, #cod_disciplina)‏ Disciplina (cod_disciplina, nome_disciplina)‏ Aluno (cod_aluno, nome_aluno, cod_local_nasc)‏ Local(cod_local_nasc, nome_local_nasc)‏

Exercício Transformar os sistemas acadêmico e da transportadora para a segunda forma normal