Análise de Sistemas
Banco de Dados
Computação Gráfica
Diversos
Internet
Lógica
Programação
Redes
Computação
Informática Básica
FrameWorks
Matemática
Cadastre-se
NORMALIZACAO DE BANCO DE DADOS


CLUBE DE AUTORES


CLUBE DE AUTORES


AMAZON


CLUBE DE AUTORES


MAGAZINE LUIZA

PHP-GENERATOR

NORMALIZACAO DE BANCO DE DADOS

Se você não quer ouvir a verdade ninguém pode dizê-la a você

NORMALIZAÇÃO DE BANCO DE DADOS

Normalização é o processo pelo qual projetos de dados são maximizados e otimizados, eliminando-se redundâncias desnecessárias e problemas relacionados a inserção, alteração e exclusão de dados, de forma que a performance de um sistema possa ser melhorada em termos de precisão nos resultados e economia de espaço físico.

Teoricamente um processo de normalização pode se dividir em muitas etapas conhecidas como:

  • Primeira Forma Normal (1FN);

  • Segunda Forma Normal (2FN);

  • Terceira Forma Normal (3FN).



Uma relação está na 1FN quando:

  • As tuplas possuem uma chave primária;

  • Não possui atributos multivariados(admite mais de um valor) ou compostos(dividido em partes distintas);

  • Todos os seus atributos são atômicos, ou seja, não precisam ser decompostos.



Uma relação está na 2FN quando:

  • Estiver na 1FN;

  • Não contiver dependências parciais, ou seja os atributos dependem apenas da chave primária.

    Uma relação está na 3FN quando:

  • Estiver na 2FN;

  • Se não houver dependência transitiva entre atributos não chave, ou seja, um atributo não chave, capaz de determinar outro atributo não chave, deve se tornar uma chave estrangeira com as referidas dependências resultando em outra tabela.



Existem outras formas que costumam ser mencionadas em muitas bibliografias, mas que no entanto consistem basicamente em:



  • Analise de estruturas de dados;

  • Projeção de novas estruturas;

  • Reconstituição das estruturas analisadas.



O objetivo final será sempre chegar na 3FN, com a eliminação total de redundâncias, por meio da projeção de novas tabelas de dados.



Para melhor entendimento acerca dos objetivos de uma normalização, considere uma tabela simples para cadastro de alunos onde seja necessário informar: código do aluno, nome do aluno, cidade onde mora, curso que frequenta e idade. Trata-se de um projeto mal elaborado, pois contém informações redundantes, informações que se repetem desnecessariamente.



O primeiro passo para normalizar este projeto é fazer uma análise de sua estrutura de dados, identificando aqueles dados que podem se repetir em vários cadastros de alunos, como cidade e curso, pois vários alunos podem morar na mesma cidade e estar matriculados no mesmo curso.



A idade também é um dado redundante, pois a mesma idade pode aparecer no cadastro de vários alunos, no entanto, esta não é normalizada por ser um número, já se encontra em uma forma reduzida, que ocupa pouco espaço de armazenamento e pode ser referenciada de forma precisa.



É interessante que sejam projetadas novas estruturas de dados para cidades e cursos, originando uma tabela para cadastro de cidades e uma tabela para cadastro de cursos, de forma que cada cidade e curso sejam cadastrados uma única vez, bastando utilizar, no cadastro de alunos, os seus respectivos códigos para informar qual curso cada um frequenta e em que cidade mora.



A projeção de novas estruturas de dados e a reconstituição da estrutura originalmente mal elaborada da-se da seguinte forma:



estrutura mal elaborada

alunos(CodAluno, nome, cidade, curso, idade);


projeção novas tabelas

cidades(CodCidade, nome, UF);

cursos(CodCurso, nome);


reconstituição da tabela original

alunos(CodAluno, nome, CodCidade, CodCurso, idade);



Analisando-se a resolução do problema pode-se observar que atributos redundantes em uma tabela mal planejada são convertidos para chaves estrangeiras quando essa tabela é reconstituída, através das quais é possível relacionar registros de diferentes tabelas de forma precisa, como foi o caso dos alunos matriculados num determinado curso e residentes numa determinada cidade.



Este artigo esboça apenas uma síntese dos objetivos de um processo de normalização, uma pesquisa mais detalhada sobre formas normais é importante para absorção de conceitos relativos a estruturas de dados em uma tabela relacional.



EXEMPLO DE NORMALIZAÇÃO

Normalize a seguinte estrutura de dados:



alimentos(CodAlimento, genero, marca, peso, validade);



Solução:



generos(CodGenero, nome);

marcas(CodMarca, nome);



alimentos(CodAlimento, nome, CodGenero, CodMarca, peso, validade);



Observe que, no exemplo dado, vários produtos podem ser do mesmo gênero e da mesma marca, logo deram origem a novas estruturas de dados. Peso e validade são dados numéricos, já se encontram em uma forma reduzida, portanto não precisam ser validados.



ATIVIDADES

  1. Normalize as seguintes estruturas de dados para a 3FN:

    a) filmes(CodFilme, nome, produtora, diretor, genero, ano, classificacao);

    b) livros(CodLivro, nome, editora, autor, genero, edicao, ano);

  2. Quais são os dados redundantes do cadastro de filmes candidatos a normalização?

  3. Quais são os dados redundantes do cadastro de livros candidatos a normalização?

  4. O processo de normalização da tabela filmes resulta em quantas estruturas de dados?

  5. O processo de normalização da tabela livros resulta em quantas estruturas de dados?

  6. É correto afirmar que dados redundantes candidatos a normalização em uma tabela de dados se tornam chaves estrangerias na reconstituição desta tabela? Justifique.





Artigo redigido em abril de 2010.

Editado em maio de 2022.

Autor: PROF. RONI MÁRCIO FAIS
Formação:
 Bacharel em Ciência da Computação e Especialista em Administração, Supervisão e Orientação Educacional. Professor de cursos técnicos profissionalizantes do Estado do Paraná.

Todos os direitos reservados a www.rmfais.com





WebMaster: PROFESSOR RONI MARCIO FAIS
Formação: Bacharel em Ciência da Computação e Especialista em Administração, Supervisão e Orientação Educacional
E-mail: rmfais@yahoo.com.br


Artigos



Criação de APP online