Banco de Dados - Normalização

Exemplo
Projetos(codp, tipo, descrição, empregados(code, nome, categ, salário,data_início, tempo_aloc)).


1ª Forma Normal - 1FN
Uma tabela está na 1FN, se e somente se, não possuir atributos multivalorados.
Primeira Forma Normal (ou 1FN) requer que todos os valores de colunas em uma tabela, sejam atômicos (ex., um número é um átomo, enquanto uma lista ou um conjunto não o são). Por exemplo, a normalização elimina grupos repetidos pondo-os cada um em uma tabela separada, conectando-os com uma chave primária ou estrangeira.
Passagem à 1FN:
  • Gerar uma única tabela com colunas simples
  • Chave primária : id de cada tabela aninhada
Projetos(codp, tipo, descrição, code, nome, categ, salário, data_início, tempo_aloc)


2ª Forma Normal - 2FN
Uma relação está na 2FN se, e somente se, estiver na 1FN e cada atributo não-chave for dependente da chave primária inteira, isto é, cada atributo não-chave não poderá ser dependente de apenas parte da chave.
Segunda Forma Normal (ou 2FN) requer que não haja dependência funcional não-trivial de um atributo que não seja a chave, em parte da chave candidata.
Passagem à 2FN:
  • Geração de novas tabelas com Dependências Funcionais completas
  • Análise de Dependências Funcionais (DF):

    • tipo e descrição - DF de codp
    • nome, categ e salário - DF de code
    • data_início e tempo_aloc - DF de toda a chave
Projetos(codp, tipo, descrição)
Empregados(code, nome, categ, salário)

ProjEmp(codp, code, data_início, tempo_aloc)

3ª Forma Normal - 3FN
Uma relação R está na 3NF, se ela estiver na 2NF e cada atributo não chave de R não possui dependência transitiva, para cada chave candidata de R.
Terceira Forma Normal (ou 3FN) requer não haver dependências funcionais não-triviais de atributos que não sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata.
Passagem à 3FN:
  • Geração de novas tabelas com Dependências Funcionais diretas
  • Análise de DFs entre atributos não chave:

    • salário - Dependência Funcional de categ
Projetos(codp, tipo, descrição)
Empregados(code, nome, categ)
ProjEmp(codp, code, data_início, tempo_aloc)

Categorias(categ, salário)

Fonte:

http://www.gsigma.ufsc.br/~popov/aulas/bd1/normalizacao.html

Comentários

Postagens mais visitadas