Restrições de Chave
Tipos de Chaves
1. Chave Primária (Primary Key - PK)
Características
Identifica unicamente cada tupla
Não permite valores nulos
Imutável
Pode ser simples ou composta
Exemplos
2. Chave Estrangeira (Foreign Key - FK)
Características
Referencia chave primária de outra tabela
Mantém integridade referencial
Pode ser nula (relacionamento opcional)
Suporta ações referenciais (CASCADE, SET NULL, etc.)
Exemplos
3. Chave Única (Unique Key - UK)
Características
Garante unicidade dos valores
Permite valores nulos (diferente da PK)
Múltiplas por tabela
Pode ser composta
Exemplos
Implementação em ORMs
1. JPA/Hibernate (Java)
2. Django ORM (Python)
Boas Práticas
1. Escolha de Chaves Primárias
Use valores naturais quando apropriado
Considere surrogate keys para flexibilidade
Evite chaves compostas complexas
Mantenha a imutabilidade
2. Gestão de Chaves Estrangeiras
Defina ações referenciais apropriadas
Considere o impacto na integridade
Use índices para performance
Documente relacionamentos
3. Unicidade
Identifique campos que exigem unicidade
Implemente validações em múltiplas camadas
Considere unicidade combinada
Trate conflitos adequadamente
Padrões Comuns
1. Chaves Naturais vs Surrogate
2. Chaves Compostas
Considerações de Performance
1. Indexação
Índices automáticos em PKs
Índices opcionais em FKs
Índices únicos para UKs
Impacto em inserções/atualizações
2. Joins
Otimização de consultas
Cardinalidade das relações
Estratégias de indexação
Planos de execução