Escolar Documentos
Profissional Documentos
Cultura Documentos
Tradução
Tradução de relacionamento maior que 2
Secretaria(CodigoEmp)
CodigoEmp referencia Emp
Ramo (CodigoRamo,Nome)
ProcessTexto (CodigoProc,Nome)
Domínio (CodigoEmp,CodigoProc)
CodigoEmp referencia Emp
Codigo Proc referencia ProcessTexto
Projeto (CodigoProj,Nome)
Participação (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Formas Normais
Normalização
• Uma forma normal é uma regra que deve ser obedecida por uma tabela para
que esta seja considerada “bem projetada”.
• Prática:
▫ Eliminar tabelas aninhadas
▫ Usar chaves únicas
▫ Criar relacionamentos correctamente (verbos e tradução)
▫ Os atributos de uma tabela devem ser atômicos (indivisíveis),
▫ ou seja, não são permitidos atributos multivalorados, atributos compostos
ou atributos multivalorados compostos.
Exemplo 1FN
Exemplo 1FN
• Prática:
▫ Fazer análise de dependência funcional.
▫ A coluna depende de toda a chave ou apenas de parte dela?
▫ Dividir tabelas e eliminar a dependência funcional.
Exemplo de 2FN
• No caso do exemplo anterior, a tabela Proj encontra-se na 2FN por possuir uma chave
primária simples (composta de apenas uma coluna).
• As colunas Nome, Cat e Sal dependem, cada uma, apenas da coluna CodEmp, já que nome,
categoria funcional e salário são determinados tão somente pelo número do empregado.
• Por sua vez, as colunas DataIni e TempAl dependem da chave primária completa.
Passagem para a 2FN
• Prática:
▫ Fazer análise de dependência funcional.
▫ Dividir tabelas e eliminar a dependência entre os atributos não chave.
Exemplo de 3FN
• Vamos supor que o salário (coluna Sal) de um empregado seja determinado pela
sua categoria funcional (coluna Cat).
• Neste caso, a informação de que salário é pago a uma categoria funcional está
representado redundantemente na tabela, tantas vezes quantos empregados
possui a categoria funcional.
• Observe na tabela que toda categoria A1 tem salário 4 e toda B1 tem salário 9.
Passagem para a 3FN
Segunda Para relações nas quais a chave primária Decomponha e monte uma relação para
(2FN) contém múltiplos atributos, nenhum cada chave parcial com seu(s) atributo(s)
atributo não chave deve ser funcionalmente dependente(s). Certifique-se de manter
dependente de uma parte da chave uma relação com a chave primária
primária. original e quaisquer atributos que sejam
completamente dependentes dela em
termos funcionais.
Terceira A relação não deve ter um atributo não Decomponha e monte uma relação que
(3FN) chave funcionalmente determinado por um inclua o(s) atributo(s) não chave que
outro atributo não chave (ou por um funcionalmente determine(m) outros
conjunto de atributos não chave). Ou seja, atributos não chave.
não deve haver dependências transitivas de
um atributo não chave na chave primária.
Exercício