3. Normalização de Dados

A normalização é um processo essencial no design de banco de dados que envolve a organização dos dados para reduzir redundâncias e dependências. Este processo é dividido em várias formas normais (normal forms), onde cada uma tem regras específicas que ajudam a garantir a integridade dos dados.

3.1 Primeira Forma Normal (1FN)

A Primeira Forma Normal exige que os dados em cada coluna sejam atômicos, ou seja, indivisíveis. Além disso, todas as entradas em uma coluna devem ser do mesmo tipo de dado.

Exemplo:

Suponha que temos uma tabela LIVROS com os seguintes dados:

IDTituloAutores
1Banco de DadosJoão, Maria
2Redes de ComputadoresPedro, Ana

Para estar em 1FN, precisamos dividir os autores em linhas separadas:

IDTituloAutor
1Banco de DadosJoão
1Banco de DadosMaria
2Redes de ComputadoresPedro
2Redes de ComputadoresAna

3.2 Segunda Forma Normal (2FN)

A Segunda Forma Normal requer que a tabela esteja primeiro na 1FN e que todos os atributos não chave dependam totalmente da chave primária. Isso significa que não deve haver dependências parciais de chave (ou seja, dependências de parte da chave primária).

Exemplo:

Considerando a tabela LIVROS com atributos ID, Titulo, e AnoPublicacao e uma tabela AUTORES_LIVROS com IDLivro e IDAutor.

IDLivroIDAutor
11
12
23
24

Aqui, temos duas tabelas, LIVROS e AUTORES_LIVROS, eliminando a dependência parcial dos autores.

3.3 Terceira Forma Normal (3FN)

A Terceira Forma Normal requer que a tabela esteja na 2FN e que não haja dependências transitivas. Isso significa que atributos não chave não devem depender de outros atributos não chave.

Exemplo:

Considere uma tabela ESTUDANTES:

MatriculaNomeCursoCoordenador
123JoãoInformáticaProf. Silva
124MariaMatemáticaProf. Oliveira

Aqui, Coordenador depende de Curso, e Curso depende da Matricula. Para estar na 3FN, criamos uma nova tabela CURSOS:

Tabela ESTUDANTES:

MatriculaNomeCursoID
123João1
124Maria2

Tabela CURSOS:

CursoIDCursoCoordenador
1InformáticaProf. Silva
2MatemáticaProf. Oliveira

Exemplos Práticos de Normalização

Exemplo 1: Sistema de Biblioteca

Tabela original:

LivroIDTituloAutorCategoria
1Banco de DadosJoãoTecnologia
2Redes de ComputadoresAnaTecnologia
3Dom CasmurroMachado de AssisLiteratura

Após 1FN:

LivroIDTituloAutorCategoria
1Banco de DadosJoãoTecnologia
2Redes de ComputadoresAnaTecnologia
3Dom CasmurroMachado de AssisLiteratura

Após 2FN:

LivroIDTituloCategoriaID
1Banco de Dados1
2Redes de Computadores1
3Dom Casmurro2
CategoriaIDCategoria
1Tecnologia
2Literatura

Após 3FN:

LivroIDTituloCategoriaID
1Banco de Dados1
2Redes de Computadores1
3Dom Casmurro2
CategoriaIDCategoria
1Tecnologia
2Literatura
AutorIDNome
1João
2Ana
3Machado de Assis
LivroIDAutorID
11
22
33

Exemplo 2: Sistema de Gestão Escolar

Tabela original:

EstudanteIDNomeCursoProfessor
1JoãoInformáticaProf. Silva
2MariaMatemáticaProf. Oliveira
3PedroFísicaProf. Souza

Após 1FN:

EstudanteIDNomeCursoID
1João1
2Maria2
3Pedro3

Após 2FN:

CursoIDCursoProfessorID
1Informática1
2Matemática2
3Física3
ProfessorIDNome
1Prof. Silva
2Prof. Oliveira
3Prof. Souza

Após 3FN:

EstudanteIDNomeCursoID
1João1
2Maria2
3Pedro3
CursoIDCursoProfessorID
1Informática1
2Matemática2
3Física3
ProfessorIDNome
1Prof. Silva
2Prof. Oliveira
3Prof. Souza

Conclusão

A normalização dos dados é um processo crítico para garantir a eficiência e a integridade do banco de dados. Ao seguir as regras das formas normais, podemos criar um banco de dados bem estruturado, que minimiza redundâncias e evita problemas de inconsistência de dados. Utilizando exemplos práticos, esperamos que você tenha entendido como aplicar esses conceitos em seus próprios projetos.