Se duas linhas possuem o mesmo valor em
elas devem possuir o mesmo valor em
Se isso não acontece, a dependência não vale para a tabela.
Pense no CPF como o atributo determinante.
Agora o contrário não vale:
Nome -> CPF é falso, porque podem existir pessoas com mesmo nome.Resumo da analogia:
Tabela Aluno:
| RA | Nome | Curso |
|---|---|---|
| 101 | Ana | ADS |
| 102 | Bruno | SI |
| 103 | Carla | ADS |
Dependências observadas:
Ainda na tabela Aluno:
| RA | Nome | Curso |
|---|---|---|
| 101 | Ana | ADS |
| 104 | Ana | Medicina |
Nome \to Curso é válida?
Não. O mesmo Nome aparece com cursos diferentes.
Uma chave candidata determina todos os atributos da tabela.
Se RA for chave candidata em Aluno, então:
Considere chave composta (PedidoID, ProdutoID).
Exemplo:
Quando:
Então existe dependência transitiva de
Exemplo:
RA -> CodCursoCodCurso -> NomeCursoRA -> NomeCurso (transitiva)Quando a tabela mistura entidades, o mesmo dado se repete várias vezes.
Consequências:
Tabela MatriculaGeral:
| RA | NomeAluno | CodCurso | NomeCurso | CoordCurso |
|---|---|---|---|---|
| 101 | Ana | ADS | Análise e Desenvolvimento de Sistemas | Prof. Livia |
| 103 | Carla | ADS | Análise e Desenvolvimento de Sistemas | Prof. Livia |
Repare a repetição de NomeCurso e CoordCurso.
Na tabela MatriculaGeral, podemos observar:
Logo, há dependência transitiva:
Isso indica necessidade de normalização.
Checklist prático:
Se houver parciais/transitivas, a modelagem pode estar fraca.
Tabela Venda:
| VendaID | ClienteID | NomeCliente | CidadeCliente | ProdutoID | NomeProduto |
|---|---|---|---|---|---|
| 9001 | 10 | Maria | Cascavel | 501 | Mouse |
| 9002 | 10 | Maria | Cascavel | 502 | Teclado |
Tarefa:
Dependências prováveis:
Separação sugerida:
Cliente(ClienteID, NomeCliente, CidadeCliente)Produto(ProdutoID, NomeProduto)Venda(VendaID, ClienteID)ItemVenda(VendaID, ProdutoID, Quantidade)RA \to NomeCerto (dependência válida):
| RA | Nome |
|---|---|
| 101 | Ana |
| 102 | Bruno |
| 101 | Ana |
Mesmo RA, mesmo Nome.
Errado (dependência inválida):
| RA | Nome |
|---|---|
| 101 | Ana |
| 101 | Ana Lua |
Mesmo RA com nomes diferentes quebra a dependência.
ProdutoID \to NomeProdutoCerto:
| ProdutoID | NomeProduto |
|---|---|
| 501 | Mouse |
| 502 | Teclado |
| 501 | Mouse |
Errado:
| ProdutoID | NomeProduto |
|---|---|
| 501 | Mouse |
| 501 | Mouse Gamer RGB |
Mesmo identificador com descrições diferentes indica inconsistência.
Considere a chave (PedidoID, ProdutoID) em ItemPedido.
Certo:
Errado (dependência parcial em tabela errada):
Se o preço muda no tempo, guardar só por ProdutoID pode distorcer vendas antigas.
Contexto: clínica médica quer registrar consultas.
Tabela inicial (ConsultaGeral):
| ConsultaID | PacienteCPF | NomePaciente | MedicoCRM | NomeMedico | Especialidade | DataConsulta |
|---|---|---|---|---|---|---|
| 7001 | 111 | Julia | 900 | Dr. Paulo | Cardiologia | 2026-04-10 |
| 7002 | 111 | Julia | 901 | Dra. Lais | Clínica Geral | 2026-04-12 |
Dependências observadas:
Problemas:
Separação em tabelas:
Paciente(PacienteCPF, NomePaciente)Medico(MedicoCRM, NomeMedico, Especialidade)Consulta(ConsultaID, PacienteCPF, MedicoCRM, DataConsulta)Ganhos práticos:
Próxima etapa natural: aplicar essas ideias nas Formas Normais (1FN, 2FN, 3FN).
Perguntas?