quarta-feira, 22 de maio de 2013

Primeira Forma Normal (1NF)

Uma entidade está em Primeira Forma Normal, se e somente todos os seus atributos são atômicos, isto é, se contém um valor único (atômico) e não contém atributos multivalorados.

Exemplo:
Dada a entidade funcionario, definida com os atributos abaixo:
Funcionario (codigo, nome, data_admissao, data_demissao, habilidades)

Vemos que a entidade funcionario possui o campo multivalorado habilidades, o que não é permitido pela Primeira Forma Normal. Devemos então dividir a tabela funcionario de forma que o campo habilidades se torne uma nova entidade.

Então teremos:
Funcionario (codigo, nome, data_admissao, data_demissao)
Possui (cod_funcionario, cod_habilidade)
Habilidade (codigo, descricao)

Exemplo:
Fornecedor (codigo, nome, endereco, telefones)

Vemos que a entidade fornecedor tem como atributo composto endereco e como atributo multivalorado telefones.

Em relação ao atributo composto endereco, sabemos que o mesmo é composto, pois nele pressupõe-se incluir as informações de rua, complemento, bairro, cidade, estado e cep . Ou substituímos o atributo endereco por seus atributos componentes (rua, complemento, bairro, cidade, estado e cep ) ou criamos uma
outra entidade com o nome do atributo composto (endereco), tendo como atributos dessa nova entidade rua, complemento, bairro cidade, estado e cep.

Já o campo telefones, por estar no plural, indica que nele poderá ser armazenado mais de um número. Pela regra, esse atributo precisa ser separado em outra entidade, que pode ser chamada de telefone e que conterá os diversos números de telefone do fornecedor.

Assim, temos:
Fornecedor (codigo, nome, rua, complemento, bairro, cidade, estado, cep)

Tendo como chave primária o atributo codigo.
Telefone (cod_fornecedor, nro telefone)

Tendo como chave primária os atributos cod_fornecedor e nro_telefone, já que isso garante que não será cadastrado o mesmo telefone para o forncedor e como chave estrangeira o atributo cod_fornecedor.

Fornecedor (codigo, nome)

Tendo como chave primária o atributo código.
Endereco (cod_fornecedor, rua, complemento, bairro, cidade, estado, cep).

Tendo como chave primária o atributo cod_fornecedor e como chave estrangeira o atributo cod_fornecedor.

Nenhum comentário:

Postar um comentário