Normalização

Exemplo

Veja um exemplo de normalização a partir de dados abertos

Para exemplificar o processo de normalização, vamos considerar a base de dados de egressos da Universidade Federal do Rio Grande do Norte (UFRN), publicizada no Portal de Dados Abertos do Governo Federal 0. O órgão disponibilizou o seguinte dicionário de dados 1:

CampoTipoDescriçãoObrigatório?
matriculaInteiroMatrícula do discente.Sim
nome_discenteTextoNome do discente.Sim
sexoTextoSexo do discente.Não
ano_conclusaoInteiroAno em que o discente concluiuSim
periodo_conclusaoInteiroPeríodo em que o discente concluiuSim
ano_ingressoInteiroAno de ingresso na instituição.Sim
periodo_ingressoInteiroPeríodo de ingresso na instituição.Sim
forma_ingressoTextoForma de ingresso na universidade.Sim
tipo_discenteTextoTipo de discente (regular ou especial).Sim
nivel_ensinoTextoNível de ensino do discente.Sim
id_cursoTextoIdentificador do curso do discente.Sim
nome_cursoTextoNome do curso do discente.Sim
modalidade_educacaoTextoModalidade de educação do curso do discente.Sim
id_unidadeInteiroIdentificador da unidade do curso do discente.Sim
nome_unidadeTextoUnidade do curso do discente.Sim
id_unidade_gestoraInteiroIdentificador da unidade gestora do curso do discente.Sim
nome_unidade_gestoraTextoUnidade gestora do curso do discenteSim

Para o processo de aplicação das formas normais, foi considerada a base de 2006 2. Buscando tornar o processo mais simples, apresento aqui alguns registros que integram essa base:

EGRESSOS\text{EGRESSOS}

matriculanome_discentesexoano_conclusaoperiodo_conclusaoano_ingressoperiodo_ingressoid_cursonome_cursomodalidade_educacaoforma_ingressotipo_discentenivel_ensinoid_unidadenome_unidadeid_unidade_gestoranome_unidade_gestora
198410658NOME DO DISCENTE 1M20062198412000011CIÊNCIAS CONTÁBEISPRESENCIALVESTIBULARREGULARGRADUAÇÃO443CENTRO DE CIÊNCIAS SOCIAIS APLICADAS443CENTRO DE CIÊNCIAS SOCIAIS APLICADAS
198502340NOME DO DISCENTE 2M20061198812000031ENGENHARIA MECÂNICAPRESENCIALREOPCAOREGULARGRADUAÇÃO445CENTRO DE TECNOLOGIA445CENTRO DE TECNOLOGIA
198524203NOME DO DISCENTE 3F20061199612000039FARMÁCIAPRESENCIALPORTADOR DE DIPLOMAREGULARGRADUAÇÃO441CENTRO DE CIÊNCIAS DA SAÚDE441CENTRO DE CIÊNCIAS DA SAÚDE
199837434NOME DO DISCENTE 4F20061199812000004ADMINISTRAÇÃOPRESENCIALVESTIBULARREGULARGRADUAÇÃO31011FACULDADE DE ENGENHARIA, LETRAS E CIÊNCIAS SOCIAIS DO SERIDÓ - FELCS605UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
198906149NOME DO DISCENTE 5M2006119901111635041EDUCAÇÃO FÍSICAPRESENCIALTRANSF. COMPULSORIAREGULARGRADUAÇÃO441CENTRO DE CIÊNCIAS DA SAÚDE441CENTRO DE CIÊNCIAS DA SAÚDE
200697544NOME DO DISCENTE 6F2006220061315774DOUTORADO EM CIÊNCIAS DA SAÚDEPRESENCIALREGULARDOUTORADO66PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIAS DA SAÚDE441CENTRO DE CIÊNCIAS DA SAÚDE

Primeira Forma Normal (1FN)

Ao analisarmos a base de dados, considerando o estado da relação, podemos concluir que a relação já está na 1FN, porque:

  • possui chave candidata (o atributo matriculamatricula) que identifica univocamente as tuplas da relação;
  • todos os atributos são atômicos;

Segunda Forma Normal (2FN)

Se fôssemos considerar a definição simples da 2FN, que analisa apenas casos em que os atributos não principais (não primos) devem possuir dependência funcional total da chave primária (composta), poderíamos concluir que a relação está na 2FN, já que possui apenas chave primária simples.

Para verificarmos a aplicabilidade da definição restritiva da 2FN, precisamos identificar primeiro quais são as chaves candidatas para a relação EGRESSOS\text{EGRESSOS}. Durante o estudo de viabilidade da 1FN1FN, já identificamos que o atributo matriculamatricula é chave candidata.

Ao analisarmos o dicionário de dados desta relação, podemos observar que esta é a única chave candidata para a relação. Embora até possamos propor outras chaves candidatas (neste caso compostas), ainda assim elas não seriam capazes de identificar univocamente as tuplas, considerando-se o cenário real, em que podemos ter estudantes homônimos.

Assim, concluímos que essa relação atende a 2FN.

Terceira Forma Normal (3FN)

Definição simples

Para analisar o cumprimento da 3FN por esta relação, precisamos começar identificando quais são as dependências funcionais transitivas (X    Y    ZX\implies Y \implies Z) com relação à chave primeira (definição simples da 3FN).

matriculaid_cursomatricula \to id\_cursoid_cursonome_curso,modalidade_educacao,id_unidade,id_unidade_gestoraid\_curso → nome\_curso, modalidade\_educacao, id\_unidade, id\_unidade\_gestoraid_unidadenome_unidadeid\_unidade → nome\_unidadeid_unidade_gestoranome_unidade_gestoraid\_unidade\_gestora → nome\_unidade\_gestora

Logo, segundo a definição simples, esta relação não está normalizada, pois possui atributos não-principais dependentes transitivamente da chave primária. Para normalizar, adotaríamos a seguinte abordagem:

UNIDADE(id_unidade,nome_unidade)UNIDADE(id\_unidade_, nome\_unidade)UNIDADE_GESTORA(id_unidade_gestora,nome_unidade_gestora)UNIDADE\_GESTORA(id\_unidade\_gestora, nome\_unidade\_gestora)CURSO(id_curso,nome_curso,modalidade_educacao,nivel_ensino,id_unidade(FK),id_unidade_gestora(FK))CURSO(id\_curso, nome\_curso, modalidade\_educacao, nivel\_ensino, id\_unidade (FK), id\_unidade\_gestora(FK))

EGRESSO(matricula,nome_discente,sexo,ano_ingresso,periodo_ingresso,ano_conclusao,periodo_conclusao,forma_ingresso,tipo_discente,id_curso(FK)) EGRESSO (matricula,nome\_discente,sexo,ano\_ingresso,periodo\_ingresso,ano\_conclusao,periodo\_conclusao,forma\_ingresso,tipo\_discente,id\_curso(FK))

Até aqui, a relação está normalizada pela definição simples da 3FN.

Definição restritiva

Agora, analisando pela definição restritiva, temos que garantir o seguinte: para toda dependência funcional não trivial XYX \to Y, ou XX é uma superchave ou YY é um atributo primo. Como a definição restritiva da 3FN é mais rigorosa que a definição simples, podemos aplicá-las como uma segunda etapa.

Neste caso específico, concluiremos que a relação está normalizada também de acordo com a definição restritiva da 3FN, já que, em todas as três relações, as dependências funcionais dependem de uma superchave. Veja alguns exemplos:

matriculaano_ingresso \text{matricula} \to \text{ano\_ingresso}matriculasexo \text{matricula} \to \text{sexo}

Note que, para os atributos das relações EGRESSOEGRESSO, CURSOCURSO, UNIDADEUNIDADE e UNIDADE_GESTORAUNIDADE\_GESTORA, não há dependências funcionais não triviais em que o determinante (X ou lado esquerdo) não é superchave. Também é importante mencionar aqui que, entre as dependências funcionais não triviais restantes nas relações, em nenhum dos casos o determinado (YY ou lado direito) é atributo primo, por termos apenas uma chave candidata simples.

Portanto, este esquema está modelado também em conformidade com a FNBC.

Referências

0 https://dados.gov.br/dados/conjuntos-dados/egressos41 https://dados.ufrn.br/dataset/5307e9aa-0946-4c0b-9d55-4f4f61aa8542/resource/f3952749-02c4-4476-813f-87cf11c1ff9b/download/egressosdicionario.pdf2 https://dados.ufrn.br/dataset/5307e9aa-0946-4c0b-9d55-4f4f61aa8542/resource/642af33a-7c9d-41c4-8077-804830f83f09/download/discentes-egressos-2006.csv