SlideShare uma empresa Scribd logo
Trabalho Normalização de Dados
Normalização é um processo a partir do qual se aplicam regras a todas as
tabelas do banco de dados com o objetivo de evitar falhas no projeto, como
redundância de dados e mistura de diferentes assuntos numa mesma tabela.
Ao projetar um banco de dados, se temos um modelo de entidades e
relacionamentos e a partir dele construirmos o modelo relacional seguindo as regras
de transformação corretamente, o modelo relacional resultante estará, provavelmente,
normalizado. Mas, nem sempre os modelos que nos deparamos são implementados
dessa forma e, quando isso acontece, o suporte ao banco de dados é dificultado.
Em ambos os casos, é necessário aplicar as técnicas de normalização, ou para
normalizar (segundo caso citado), ou apenas para validar o esquema criado (primeiro
caso citado). Aplicando as regras descritas a seguir, é possível garantir um banco de
dados mais íntegro, sem redundâncias e inconsistências.
CONCEITOS BÁSICOS
1. Dependência Funcional Completa
Quando um atributo não identificador depende do(s) atributo(s)
identificador(es).
2. Dependência Funcional Parcial
Quando um atributo não identificador depende de parte dos atributos
identificadores.
3. Dependência Funcional Transitiva
Quando um atributo não identificador depende de outro atributo também não
identificador. A normalização permite eliminar atributos:
• Com mais de um valor
• Duplicados ou repetidos
• Que contém dados derivados de outros atributos
PRIMEIRA FORMA NORMAL
• Todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve
conter grupos repetidos e nem atributos com mais de um valor. Para deixar nesta
forma normal, é preciso identificar a chave primária da tabela, identificar a(s) coluna(s)
que contenha(m) dados repetidos e removê-la(s), criar uma nova tabela com a chave
primária para armazenar o dado repetido e, por fim, criar uma relação entre a tabela
principal e a tabela secundária. Por exemplo, considere a tabela Pessoas a seguir.
PESSOAS = {ID+ NOME + ENDERECO + TELEFONES}
Ela contém a chave primária ID e o atributo TELEFONES é um atributo multivalorado
e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, vamos criar uma nova
tabela chamada TELEFONES que conterá PESSOA_ID como chave estrangeira de
PESSOAS e TELEFONE como o valor multivalorado que será armazenado.
PESSOAS = { ID + NOME + ENDERECO }
TELEFONES = { PESSOA_ID + TELEFONE }.
SEGUNDA FORMA NORMAL
• Inicialmente, para estar na 2FN é preciso estar na 1FN. Além disso, todos os
atributos não chaves da tabela devem depender unicamente da chave primária (não
podendo depender apenas de parte dela). Para deixar na segunda forma normal, é
preciso identificar as colunas que não são funcionalmente dependentes da chave
primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma
nova tabela com esses dados. Por exemplo, considere a tabela ALUNOS_CURSOS a
seguir.
ALUNOS_CURSOS = { ID_ALUNO + ID_CURSO + NOTA + DESCRICAO_CURSO }
Nessa tabela, o atributo DESCRICAO_CURSO depende apenas da chave primária
ID_CURSO. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova
tabela chamada CURSOS que tem como chave primária ID_CURSO e atributo
DESCRICAO retirando, assim, o atributo DESCRICAO_CURSO da tabela
ALUNOS_CURSOS.
ALUNOS_CURSOS = {ID_ALUNO + ID_CURSO + NOTA}
CURSOS = {ID_CURSO + DESCRICAO}.
TERCEIRA FORMA NORMAL
• Para estar na 3FN, é preciso estar na 2FN. Além disso, os atributos não chave de
uma tabela devem ser mutuamente independentes e dependentes unicamente e
exclusivamente da chave primária (um atributo B é funcionalmente dependente de A
se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa
forma normal, é preciso identificar as colunas que são funcionalmente dependentes
das outras colunas não chave e extraí-las para outra tabela. Considere, como
exemplo, a tabela FUNCIONARIOS a seguir.
FUNCIONARIOS = { ID + NOME + ID_CARGO + DESCRICAO_CARGO }
O atributo DESCRICAO_CARGO depende exclusivamente de ID_CARGO (atributo
não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Dessa
forma, ficamos com as seguintes tabelas:
FUNCIONARIOS = { ID + NOME + ID_CARGO }
CARGOS = { ID_CARGO + DESCRICAO }.
Abaixo serão mostrados alguns exemplos de normalização.
• Um modelo de ER normalizado é convertido facilmente para um Banco de
Dados relacional em tempo de projeto.
• A terceira forma normal geralmente é aceita como boa para projeto de Banco
de Dados sem redundância.
• Existem formas normais de nível maior, mas que geralmente não são usadas.
Verificação da Primeira Forma Normal.
• Verificar se cada atributo tem um único valor para cada instância da entidade.
• Nenhum atributo pode ter valores repetidos.
Exemplo 1:
Verificar se a entidade Cliente abaixo está na 1FN.
Se não estiver, convertê-la para a 1FN.
O Atributo data de contato pode ter múltiplos valores, portanto a entidade
CLIENTE não está na 1FN.
Para transformá-la para a 1FN vamos criar uma entidade adicional CONTATO
e relacioná-la com um relacionamento 1:M no sentido CLIENTE - CONTATO.
Verificação da Segunda Forma Normal
• Verificar se cada atributo é dependente apenas do identificador da entidade.
• Verificar se existe algum atributo dependente apenas de parte do identificador
da entidade.
Exemplo 2:
Verificar se entidade CURSO está normalizada.
Cada código determina um valor específico para nome, duração e preço, todos
eles são dependentes exclusivamente do identificador, e nenhum dos atributos
é derivado um do outro. Portanto a entidade está normalizada.
Exemplo 3:
Verificar se as entidades abaixo estão normalizadas.
Cada instância de CLIENTE e PEDIDO determina valores específicos de
quantidade e preço do item. O atributo data do pedido está perdido na entidade
CLIENTE, porque ele não é dependente do identificador da entidade. Ele deve
ser um atributo de PEDIDO.
Exemplo 4:
Normalizar a entidade abaixo:
Como a entidade não tem nenhum atributo com valores repetidos ela está na
1FN. Entretanto os atributos data do pedido, número do pedido, quantidade
pedida e valor unitário não são dependentes do identificador da entidade,
portanto ela não está na 2FN.
Para normalizá-la devemos criar uma entidade auxiliar com os atributos não
dependentes do identificador.
Verificação da Terceira Forma Normal
• Verificar se existe algum atributo não identificador dependente de outro
atributo não identificador.
• Retirar os atributos não identificadores dependentes para uma entidade
auxiliar.
Exemplo 5:
Verificar se a entidade abaixo está na terceira forma normal.
Não existe nenhum atributo com valores repetidos logo a entidade está na 1FN.
Os atributos número do cliente, nome do cliente e limite de crédito não são
dependentes do identificador da entidade, portanto ela não está na 2FN. Logo
a entidade não está na 3FN.
Para passá-la para a 2FN devemos criar uma entidade auxiliar com os atributos
não dependentes do identificador.
Exemplo 6:
Verificar se a entidade abaixo está na 3FN.
Não existe nenhum atributo com valores repetidos, logo a entidade está na
1FN. Todos os atributos não identificadores são dependentes do identificador
da entidade, logo ela está na 2FN. O atributo total do item é dependente da
quantidade pedida e do valor unitário, portanto a entidade não está na 3FN.
Para passá-la para a 3FN basta eliminar o atributo total do item que é
desnecessário na entidade.
Bibliografia.
Curso: Ciências da Computação – UCG
Rumbaugh, James e outros.
Modelagem e Projetos Baseados em Objetos.
Rio de Janeiro: Campus, 1988.
Pompilho, S. Análise Essencial. Rio de Janeiro: Infobook, 1995.
http://www.dsc.ufcg.edu.br/~pet/jornal/maio2011/materias/recapitulando.html
Korth, Henry e Silberschatz, Abraham – (Livro Texto Básico)
“Sistemas de Bancos de Dados”, Makron Books do Brasil Editora Ltda, RJ, 1994, 2ª
Edição.

Mais conteúdo relacionado

Mais procurados

Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
Roberto Grande
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
Leinylson Fontinele
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
Cristiano Pires Martins
 
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefBD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
Rodrigo Kiyoshi Saito
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Leinylson Fontinele
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalização
Ticianne Darin
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
Adriano Teixeira de Souza
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
elliando dias
 
Apresentação sobre Árvores B
Apresentação sobre Árvores BApresentação sobre Árvores B
Apresentação sobre Árvores B
Thiago Colares
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
Jorge Ávila Miranda
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Leinylson Fontinele
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
Walter Alves Pereira
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
Adriano Teixeira de Souza
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitual
Mario Sergio
 
Modelo E-R
Modelo E-RModelo E-R
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
Emília Alves Nogueira
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
Wagner Almeida
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
Fábio dos Reis
 
Modelo entidade relacionamento
Modelo entidade relacionamentoModelo entidade relacionamento
Modelo entidade relacionamento
Carlos Melo
 
Estrutura de Dados - Registros
Estrutura de Dados - RegistrosEstrutura de Dados - Registros
Estrutura de Dados - Registros
Adriano Teixeira de Souza
 

Mais procurados (20)

Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefBD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Exercício resolvido normalização
Exercício resolvido normalizaçãoExercício resolvido normalização
Exercício resolvido normalização
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Normalização de Banco de Dados
Normalização de Banco de DadosNormalização de Banco de Dados
Normalização de Banco de Dados
 
Apresentação sobre Árvores B
Apresentação sobre Árvores BApresentação sobre Árvores B
Apresentação sobre Árvores B
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitual
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Modelo entidade relacionamento
Modelo entidade relacionamentoModelo entidade relacionamento
Modelo entidade relacionamento
 
Estrutura de Dados - Registros
Estrutura de Dados - RegistrosEstrutura de Dados - Registros
Estrutura de Dados - Registros
 

Semelhante a Normalização Banco de Dados

Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
julianaveregue
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normais
Sandro Freitas
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
Jorge Ávila Miranda
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
aprcds
 
13 subtipos-curso gxxbr
13 subtipos-curso gxxbr13 subtipos-curso gxxbr
13 subtipos-curso gxxbr
Cristiano Rafael Steffens
 
Normalização em Banco de Dados Relacionais
Normalização em Banco de Dados RelacionaisNormalização em Banco de Dados Relacionais
Normalização em Banco de Dados Relacionais
robertaifbaiano
 
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdfaula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
SaraR49
 
Aula 5 normalização dos dados
Aula 5   normalização dos dadosAula 5   normalização dos dados
Aula 5 normalização dos dados
Hélio Martins
 
Bases de Dados - Conceitos introdutórios
Bases de Dados - Conceitos introdutóriosBases de Dados - Conceitos introdutórios
Bases de Dados - Conceitos introdutórios
Clara Ferreira
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalização
Matias Silva
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
Cris Fidelix
 
ATRIBUTOS.pptx
ATRIBUTOS.pptxATRIBUTOS.pptx
ATRIBUTOS.pptx
fabio20718
 
02 2 - modelagem er
02   2 - modelagem er02   2 - modelagem er
02 2 - modelagem er
Elton Costa
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
Gabriel Rodrigues
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
Emiliano Barbosa
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
faby672
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
gusmao2010
 
Formulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a diaFormulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a dia
Marina Krummenauer
 
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas NormaisBD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
Rodrigo Kiyoshi Saito
 
Aplicativo aula02
Aplicativo aula02Aplicativo aula02
Aplicativo aula02
Cláudio Amaral
 

Semelhante a Normalização Banco de Dados (20)

Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normais
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Excel Intermediário
Excel IntermediárioExcel Intermediário
Excel Intermediário
 
13 subtipos-curso gxxbr
13 subtipos-curso gxxbr13 subtipos-curso gxxbr
13 subtipos-curso gxxbr
 
Normalização em Banco de Dados Relacionais
Normalização em Banco de Dados RelacionaisNormalização em Banco de Dados Relacionais
Normalização em Banco de Dados Relacionais
 
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdfaula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
aula_06_dependc3aancia-funcional-e-normalizac3a7c3a3o.pdf
 
Aula 5 normalização dos dados
Aula 5   normalização dos dadosAula 5   normalização dos dados
Aula 5 normalização dos dados
 
Bases de Dados - Conceitos introdutórios
Bases de Dados - Conceitos introdutóriosBases de Dados - Conceitos introdutórios
Bases de Dados - Conceitos introdutórios
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalização
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
ATRIBUTOS.pptx
ATRIBUTOS.pptxATRIBUTOS.pptx
ATRIBUTOS.pptx
 
02 2 - modelagem er
02   2 - modelagem er02   2 - modelagem er
02 2 - modelagem er
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
 
Formulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a diaFormulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a dia
 
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas NormaisBD I - Aula 06 B - Parte 2 - Teorico Formas Normais
BD I - Aula 06 B - Parte 2 - Teorico Formas Normais
 
Aplicativo aula02
Aplicativo aula02Aplicativo aula02
Aplicativo aula02
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (6)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Normalização Banco de Dados

  • 1. Trabalho Normalização de Dados Normalização é um processo a partir do qual se aplicam regras a todas as tabelas do banco de dados com o objetivo de evitar falhas no projeto, como redundância de dados e mistura de diferentes assuntos numa mesma tabela. Ao projetar um banco de dados, se temos um modelo de entidades e relacionamentos e a partir dele construirmos o modelo relacional seguindo as regras de transformação corretamente, o modelo relacional resultante estará, provavelmente, normalizado. Mas, nem sempre os modelos que nos deparamos são implementados dessa forma e, quando isso acontece, o suporte ao banco de dados é dificultado. Em ambos os casos, é necessário aplicar as técnicas de normalização, ou para normalizar (segundo caso citado), ou apenas para validar o esquema criado (primeiro caso citado). Aplicando as regras descritas a seguir, é possível garantir um banco de dados mais íntegro, sem redundâncias e inconsistências. CONCEITOS BÁSICOS 1. Dependência Funcional Completa Quando um atributo não identificador depende do(s) atributo(s) identificador(es). 2. Dependência Funcional Parcial Quando um atributo não identificador depende de parte dos atributos identificadores. 3. Dependência Funcional Transitiva Quando um atributo não identificador depende de outro atributo também não identificador. A normalização permite eliminar atributos: • Com mais de um valor • Duplicados ou repetidos • Que contém dados derivados de outros atributos PRIMEIRA FORMA NORMAL • Todos os atributos de uma tabela devem ser atômicos, ou seja, a tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Para deixar nesta forma normal, é preciso identificar a chave primária da tabela, identificar a(s) coluna(s) que contenha(m) dados repetidos e removê-la(s), criar uma nova tabela com a chave primária para armazenar o dado repetido e, por fim, criar uma relação entre a tabela principal e a tabela secundária. Por exemplo, considere a tabela Pessoas a seguir.
  • 2. PESSOAS = {ID+ NOME + ENDERECO + TELEFONES} Ela contém a chave primária ID e o atributo TELEFONES é um atributo multivalorado e, portanto, a tabela não está na 1FN. Para deixá-la na 1FN, vamos criar uma nova tabela chamada TELEFONES que conterá PESSOA_ID como chave estrangeira de PESSOAS e TELEFONE como o valor multivalorado que será armazenado. PESSOAS = { ID + NOME + ENDERECO } TELEFONES = { PESSOA_ID + TELEFONE }. SEGUNDA FORMA NORMAL • Inicialmente, para estar na 2FN é preciso estar na 1FN. Além disso, todos os atributos não chaves da tabela devem depender unicamente da chave primária (não podendo depender apenas de parte dela). Para deixar na segunda forma normal, é preciso identificar as colunas que não são funcionalmente dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados. Por exemplo, considere a tabela ALUNOS_CURSOS a seguir. ALUNOS_CURSOS = { ID_ALUNO + ID_CURSO + NOTA + DESCRICAO_CURSO } Nessa tabela, o atributo DESCRICAO_CURSO depende apenas da chave primária ID_CURSO. Dessa forma, a tabela não está na 2FN. Para tanto, cria-se uma nova tabela chamada CURSOS que tem como chave primária ID_CURSO e atributo DESCRICAO retirando, assim, o atributo DESCRICAO_CURSO da tabela ALUNOS_CURSOS. ALUNOS_CURSOS = {ID_ALUNO + ID_CURSO + NOTA} CURSOS = {ID_CURSO + DESCRICAO}. TERCEIRA FORMA NORMAL • Para estar na 3FN, é preciso estar na 2FN. Além disso, os atributos não chave de uma tabela devem ser mutuamente independentes e dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para atingir essa forma normal, é preciso identificar as colunas que são funcionalmente dependentes das outras colunas não chave e extraí-las para outra tabela. Considere, como exemplo, a tabela FUNCIONARIOS a seguir. FUNCIONARIOS = { ID + NOME + ID_CARGO + DESCRICAO_CARGO } O atributo DESCRICAO_CARGO depende exclusivamente de ID_CARGO (atributo não chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Dessa forma, ficamos com as seguintes tabelas: FUNCIONARIOS = { ID + NOME + ID_CARGO } CARGOS = { ID_CARGO + DESCRICAO }. Abaixo serão mostrados alguns exemplos de normalização. • Um modelo de ER normalizado é convertido facilmente para um Banco de Dados relacional em tempo de projeto.
  • 3. • A terceira forma normal geralmente é aceita como boa para projeto de Banco de Dados sem redundância. • Existem formas normais de nível maior, mas que geralmente não são usadas. Verificação da Primeira Forma Normal. • Verificar se cada atributo tem um único valor para cada instância da entidade. • Nenhum atributo pode ter valores repetidos. Exemplo 1: Verificar se a entidade Cliente abaixo está na 1FN. Se não estiver, convertê-la para a 1FN.
  • 4. O Atributo data de contato pode ter múltiplos valores, portanto a entidade CLIENTE não está na 1FN. Para transformá-la para a 1FN vamos criar uma entidade adicional CONTATO e relacioná-la com um relacionamento 1:M no sentido CLIENTE - CONTATO. Verificação da Segunda Forma Normal • Verificar se cada atributo é dependente apenas do identificador da entidade. • Verificar se existe algum atributo dependente apenas de parte do identificador da entidade. Exemplo 2: Verificar se entidade CURSO está normalizada. Cada código determina um valor específico para nome, duração e preço, todos eles são dependentes exclusivamente do identificador, e nenhum dos atributos é derivado um do outro. Portanto a entidade está normalizada. Exemplo 3: Verificar se as entidades abaixo estão normalizadas.
  • 5. Cada instância de CLIENTE e PEDIDO determina valores específicos de quantidade e preço do item. O atributo data do pedido está perdido na entidade CLIENTE, porque ele não é dependente do identificador da entidade. Ele deve ser um atributo de PEDIDO. Exemplo 4: Normalizar a entidade abaixo: Como a entidade não tem nenhum atributo com valores repetidos ela está na 1FN. Entretanto os atributos data do pedido, número do pedido, quantidade pedida e valor unitário não são dependentes do identificador da entidade, portanto ela não está na 2FN. Para normalizá-la devemos criar uma entidade auxiliar com os atributos não dependentes do identificador. Verificação da Terceira Forma Normal
  • 6. • Verificar se existe algum atributo não identificador dependente de outro atributo não identificador. • Retirar os atributos não identificadores dependentes para uma entidade auxiliar. Exemplo 5: Verificar se a entidade abaixo está na terceira forma normal. Não existe nenhum atributo com valores repetidos logo a entidade está na 1FN. Os atributos número do cliente, nome do cliente e limite de crédito não são dependentes do identificador da entidade, portanto ela não está na 2FN. Logo a entidade não está na 3FN. Para passá-la para a 2FN devemos criar uma entidade auxiliar com os atributos não dependentes do identificador. Exemplo 6: Verificar se a entidade abaixo está na 3FN.
  • 7. Não existe nenhum atributo com valores repetidos, logo a entidade está na 1FN. Todos os atributos não identificadores são dependentes do identificador da entidade, logo ela está na 2FN. O atributo total do item é dependente da quantidade pedida e do valor unitário, portanto a entidade não está na 3FN. Para passá-la para a 3FN basta eliminar o atributo total do item que é desnecessário na entidade. Bibliografia. Curso: Ciências da Computação – UCG Rumbaugh, James e outros. Modelagem e Projetos Baseados em Objetos. Rio de Janeiro: Campus, 1988. Pompilho, S. Análise Essencial. Rio de Janeiro: Infobook, 1995. http://www.dsc.ufcg.edu.br/~pet/jornal/maio2011/materias/recapitulando.html Korth, Henry e Silberschatz, Abraham – (Livro Texto Básico) “Sistemas de Bancos de Dados”, Makron Books do Brasil Editora Ltda, RJ, 1994, 2ª Edição.