🔑 Tópico 5 - Chaves Primárias e Estrangeiras

🎯 Objetivos de Aprendizagem
  • Compreender o conceito e importância das chaves
  • Identificar e definir chaves primárias
  • Estabelecer chaves estrangeiras e integridade referencial
  • Aplicar regras de integridade de chaves
  • Praticar modelagem com chaves adequadas
🔑 1. Conceito de Chaves em Banco de Dados

Segundo Elmasri & Navathe (2017), uma chave é um atributo ou conjunto de atributos que identifica unicamente cada instância de uma entidade. Date (2003) define chave como um conjunto de atributos que serve para identificar registros.

Definição Acadêmica

"Uma chave é um conjunto de atributos que identifica unicamente cada instância de uma entidade" - Silberschatz, Galvin & Gagne (2018)

🎯 Propósitos das Chaves:
  • Identificação Única: Distinguir instâncias
  • Integridade: Garantir consistência
  • Relacionamentos: Estabelecer conexões
  • Performance: Acelerar consultas
  • Indexação: Organizar dados
  • Segurança: Controlar acesso
🔹 2. Chaves Primárias (Primary Key)

Conforme Date (2003), a chave primária é um atributo ou conjunto de atributos que identifica unicamente cada instância de uma entidade e não pode ser nula.

📋 Características da Chave Primária:
  • Unicidade: Valores únicos
  • Não Nulidade: Sempre tem valor
  • Imutabilidade: Não deve mudar
  • Estabilidade: Valores estáveis
  • Simplicidade: Preferencialmente simples
  • Significância: Com significado
🎯 Exemplos de Chaves Primárias:
Entidade Chave Primária Tipo Justificativa
Pessoa CPF Natural Único, estável, significativo
Produto Código Artificial Controle interno, sequencial
Livro ISBN Natural Padrão internacional
Funcionário Matrícula Artificial Controle organizacional
🔸 3. Chaves Estrangeiras (Foreign Key)

Segundo Silberschatz, Galvin & Gagne (2018), uma chave estrangeira é um atributo ou conjunto de atributos que referencia a chave primária de outra entidade, estabelecendo um relacionamento.

🔗 Propósitos das Chaves Estrangeiras:
  • Integridade Referencial: Manter consistência
  • Relacionamentos: Estabelecer conexões
  • Navegação: Facilitar consultas
  • Restrições: Aplicar regras de negócio
  • Cascata: Ações em cascata
  • Validação: Verificar existência
📋 Exemplos de Chaves Estrangeiras:
Entidade Chave Estrangeira Referencia Relacionamento
Funcionário ID_Departamento Departamento.ID Funcionário pertence a Departamento
Pedido ID_Cliente Cliente.ID Pedido pertence a Cliente
Item_Pedido ID_Pedido Pedido.ID Item pertence a Pedido
Item_Pedido ID_Produto Produto.ID Item referencia Produto
⚖️ 4. Integridade Referencial

Conforme Date (2003), a integridade referencial garante que as referências entre entidades sejam válidas e consistentes.

🔒 Regras de Integridade Referencial:
🔹 Regra de Inserção:
  • Chave Estrangeira: Deve referenciar entidade existente
  • Validação: Verificar existência antes de inserir
  • Erro: Rejeitar inserção se referência inválida
🔸 Regra de Exclusão:
  • Entidade Referenciada: Não pode ser excluída se referenciada
  • Cascata: Excluir registros dependentes
  • Restrição: Impedir exclusão se dependente
🔄 Ações em Cascata:
🔹 CASCADE

Propaga a ação

Excluir departamento → excluir funcionários

🔸 SET NULL

Define como nulo

Excluir departamento → funcionário sem departamento

🔹 RESTRICT

Impede a ação

Não permite excluir se houver dependentes

🏷️ 5. Tipos de Chaves
🔹 Chaves Naturais

Atributos que existem naturalmente no mundo real.

  • Vantagens: Significativas, estáveis
  • Desvantagens: Podem mudar, complexas
  • Exemplos: CPF, ISBN, Placa
🔸 Chaves Artificiais

Atributos criados especificamente para identificação.

  • Vantagens: Simples, estáveis, únicas
  • Desvantagens: Sem significado, artificiais
  • Exemplos: ID, Código, Matrícula
🔑 Chaves Compostas:
Chaves Compostas

Chaves formadas por múltiplos atributos. Úteis quando um único atributo não é suficiente para identificação única.

🧪 Exercícios Práticos
📝 Exercício 1: Identificação de Chaves

Para um sistema de biblioteca, identifique:

  • Quais são as chaves primárias de cada entidade?
  • Quais chaves estrangeiras são necessárias?
  • Como garantir integridade referencial?
  • Quais ações em cascata aplicar?
🎯 Exercício 2: Modelagem com Chaves

Crie um modelo com chaves para:

  • Sistema de locadora de veículos
  • Controle de estoque de farmácia
  • Gestão de eventos acadêmicos
  • Sistema de doação de sangue
📚 Referências Bibliográficas
📖 Livros Fundamentais:
  • ELMASRI, R.; NAVATHE, S. Sistemas de Banco de Dados. 6ª ed. São Paulo: Pearson, 2017.
  • DATE, C. J. An Introduction to Database Systems. 8ª ed. Boston: Addison-Wesley, 2003.
  • SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Operating System Concepts. 10ª ed. Hoboken: Wiley, 2018.
📄 Artigos Científicos:
  • CODD, E. F. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, v. 13, n. 6, p. 377-387, 1970.
  • CONNOLLY, T.; BEGG, C. Database Systems: A Practical Approach to Design, Implementation, and Management. 6ª ed. Boston: Pearson, 2015.