Cursos / Informática para Internet / Banco de dados / Aula

arrow_back Aula 07 - Normalização Avançada

Terceira Forma Normal - Pt.2

Bem, depois de aprender como identificar se uma tabela está ou não na 3FN, agora você vai aprender como fazer a adequação da tabela. Para adequar uma tabela que não está na 3FN, é necessário cumprir os seguintes passos:

  1. Criar uma tabela para conter os atributos que não podem ser obtidos exclusivamente da chave primária da tabela original;
  2. Definir como chave primária da tabela criada o atributo que é capaz de obter os dados não chaves da tabela original;
  3. Mover os atributos não chave que não são obtidos exclusivamente pela chave primária da tabela original para a nova tabela;
  4. Definir como chave estrangeira o atributo que é capaz de obter os dados não chaves da tabela original.

A Figura 3 ilustra os passos listados, utilizando-se do exemplo da tabela Funcionário:

Normalização da Tabela Funcionário.

O primeiro passo é criar a tabela Agência para conter os atributos que não podem ser obtidos exclusivamente da chave primária da tabela Funcionário. Depois, você define como chave primária da tabela Agencia o atributo NumAg, porque este é capaz de obter os dados não chaves da tabela Funcionário.

Lembre-se de que o atributo Endereço da tabela Funcionário pode ser obtido através da chave primária, como também por meio do atributo NumAg, que não é chave primária. Assim, como Endereço pode ser obtido através de NumAg, você deve escolher NumAg como atributo chave primária da tabela Agencia.

Depois de definir NumAg como chave primária da tabela Agencia, você deve mover o atributo Endereço da tabela Funcionário para Agencia. Finalmente, para manter a integridade com a tabela original, você deve definir uma chave estrangeira entre o atributo NumAg da tabela Funcionário e NumAg da tabela Agencia. Para perceber a diferença entre elas, veja na Figura 4 a nova estrutura das duas tabelas. Observe que antes os dados do atributo Endereço eram duplicados e poderiam gerar anomalias. Agora, o atributo Endereço está separado em uma tabela separada e na 3FN.

Estrutura das tabelas depois da Normalização.

Versão 5.3 - Todos os Direitos reservados