Formas Normais Banco de Dados
A normalização de dados é uma série de passos que se seguem no projeto de um banco de dados, que permitem um armazenamento consistente e um eficiente acesso aos dados em bancos de dados relacionais. Esses passos reduzem a redundância de dados e as chances dos dados se tornarem inconsistentes.
Formas Normais
Primeira Forma Normal
Definição
Uma tabela está na 1FN, se e somente se, não possuir atributos multivalorados.
(note que relacionamentos, como definidos acima, estão necessariamente na 1FN)
Uma relação está na 1FN quando todos os atributos da relação estiverem baseados em um domínio simples, não contendo grupos ou valores repetidos1 .
Definir relações NFNF
• como transformar relações NFNF (também chamadas relações UNF) em relações 1FN o como transformar as restrições chave de relações aninhadas o como transformar as dependências funcionais de relações aninhadas
Passagem à 1FN
• Gerar uma única tabela com colunas simples
• Chave primária: id de cada tabela aninhada
Exemplo
Projetos(codp, tipo, descrição, code, nome, categ, salário, data_início, tempo_aloc)
Outra forma de identificar se a tabela não está na 1FN é verificando se existe tabela aninhadas, ou seja, mais de um registro para uma chave primária.
Observe o exemplo:
Considere um Pedido número 00001, para este pedido se observarmos o formulário em papel teremos muitos campos a considerar, contudo usaremos apenas alguns para facilitar o entendimento.
PEDIDOS = {COD_PEDIDO + CLIENTE + VENDEDOR + ATENDENTE + PRODUTO + QUANT + VALOR}
Neste momento devemos idealizar o pedido número: 00001 e efetuar os seguintes testes:
{COD_PEDIDO | CLIENTE | VENDEDOR | ATENDENTE | PRODUTO | QUANT | VALOR}
{00001 | "DOUGLAS TYBEL"| "MARCO"| "JOAO" | "TENIS " | "1" | "50.00"}
{00001 | "DOUGLAS TYBEL"| "MARCO"| "JOAO" | "SANDALIA" | "2" | "80.00"}
{00001 | "DOUGLAS TYBEL"| "MARCO"| "JOAO" | "CARTEIRA" | "1" | "35.00"}
Observe que para os dados do pedido 00001 lançados acima,