Olá galera o/

Vamos dar continuidade sobre a postagem de Normalização. Para quem não sabe o que é normalização ou não entende os seus principais conceitos, na parte 1 desta postagem eu explico seu objetivo e quais formas normais podemos aplicar. >>> LINK <<<

Vamos aplicar um processo de engenharia reversa em uma tela de um sistema. O armazenamento dos dados dessa tela estão desnormalizados, então, vamos aplicar as 3 formas normais para deixa-los normalizados para assim termos uma base consistente.

A tela ao abaixo contém os registros dos alunos e os cursos em que ele se matriculou. VL. TABELA é o valor padrão do curso na data da matricula. VL. PAGO é o valor efetivamente pago pelo aluno decorrente de negociação de desconto.

normazacao2_img001
Tela de Registro de Alunos

 

O esquema abaixo descreve como os registro do aluno em uma tabela não normalizada:

normazacao2_img002
Colunas da tabela

 

A tabela é considerada não normalizada porque apresenta redundância de dados , conforme observado no tabela com dados abaixo, outras situações que contrariam as regras das formas normais.

Tabela com os registros dos alunos:

normazacao2_img003
Armazenamento das informações do aluno

 

Agora vamos começar a aplicar as 3 Formas Normais.

1ª FN

  • Constrói-se uma tabela para cada atributo multivalorado e para cada tabela aninhada.
    • Os atributos da tabela aninhada também podem ser representados como atributos multivalorados.
  • Cada atributo composto é decomposto em atributos na própria tabela.
normazacao2_img004
Identificação das anormalidades da 1ª FN
normazacao2_img005
Aplicação das regras da 1ª FN.

 

Ao final da 1ª FN surge no nosso modelo mais duas novas tabelas: TELEFONE_ALUNO e CURSO_ALUNO.

normazacao2_img006
Final da 1ª FN

2ª FN

O que é Dependência Funcional?

  • Estabelece uma relação de atributos dentro da tabela. A dependência mais comum é a funcional. A dependência funcional acontece sempre quando um atributo determina outro.
  • Ex: Código do cliente > Nome do cliente
  • Lê – se:
    • Para descobrirmos o nome do cliente (dentro de um conjunto de clientes), primeiramente precisamos saber qual é o código dele. Assim, o campo/atributo nome é dependente do campo/atributo código.
normazacao2_img007
Exemplo de dependência.

 

Dependência Funcional Total

Ocorre quando um ou mais atributos de uma entidade dependem totalmente da chave primária composta (2 ou mais chaves primárias). Na tabela com esta dependência deve apenas conter os atributos que dependem das 2 PKs.

Verificamos que em nossa tabela CURSO_ALUNO temos 4 atributos que dependem tanto do ID_ALU quanto do ID_CURSO.

normazacao2_img008
Verificando Dependência Total

 

Dependência Funcional Parcial

Quando os atributos apenas dependem de sua chave primária. Constrói-se uma tabela para acomodar as dependências funcionais parciais. Na tabela CURSO_ALUNO os atributos CG_HOR, NM_CURSO somente dependem do código do curso e não do ID_ALU, então, criamos uma nova tabela que armazenara apenas as informações referentes ao CURSO

normazacao2_img009
Verificando Dependência Parcial

 

Ao final da 2ª FN surge no nosso modelo mais uma tabela: CURSO.

normazacao2_img010
Final da 2ª FN

3ª FN

Dependência Transitiva

Ocorre quando um coluna não chave primária depende funcionalmente de outra coluna (ou colunas) não chave primária. Constrói-se uma nova tabela para a dependência transitiva. Em nosso caso o atributo NM_UF depende do atributo ID_UF que não é chave primária da tabela ALUNO.

normazacao2_img011
Verificando Dependência Transitiva.

 

Ao final da 3ª FN surge no nosso modelo mais uma tabela: UNIDADE_FEDERACAO.

normazacao2_img012
Final da 3ª FN
normazacao2_img013
Final de 3ª FN

 

Primeiro vamos comparar o antes e o depois de nosso modelo de dados. Agora nosso modelo está com os dados consistentes e sem redundâncias.

normazacao2_img012_1
Antes e Depois do modelo após aplicar as formas normais.
normazacao2_img014
Representação Gráfica no BRModelo

Espero essa segunda postagem sobre Normalização tenha sido de grande ajuda para quem tem dificuldade em entender a aplicação das formas normais em um modelo de dados.  Que todos tenham gostado da postagem.

Quem quiser mandar comentários, sugestões, criticas e complementos, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para que possa melhorar as postagem para vocês.

Até a próxima o/

Divulguem nossas Redes Sociais:

Nos sigam no Instagram: consultabd

Nos sigam no Twitter

Deixem um like nos vídeos e se inscrevam no nosso canal do Youtube