Chaves de banco de dados: guia completo

No mundo da gerenciamento de bancos de dados, as chaves desempenham um papel crucial na organização, acesso e manutenção da integridade dos dados. Se você é um administrador de banco de dados experiente ou está começando seu caminho na gerencia de dados, entender os diferentes tipos de chaves de banco de dados é essencial. Neste post, vamos explorar todos os diferentes tipos de chaves, suas finalidades e como elas contribuem para o projeto de banco de dados efetivo.

Para ilustrar esses conceitos, vamos usar um simples banco de dados universitário com as seguintes tabelas:

  1. Alunos
  2. Cursos
  3. Matrículas
  4. Professores
  5. Departamentos

Vamos mergulhar em cada tipo de chave e ver como elas são aplicadas em nosso banco de dados universitário.

1. Chave Primária

Definição

Uma coluna ou conjunto de colunas que identifica única e exclusivamente cada linha em uma tabela

Características

  • Deve ser único para cada registro
  • Não pode conter valores NULL
  • Deve ser imutável (não mudar ao longo do tempo)

Exemplo

No nosso Alunos tabela, usamos StudentID como a chave primária.

SQL

 


CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE

);

Aqui, StudentID identifica de forma única cada estudante, garantindo que nenhum estudante tenha o mesmo ID.

2. Chave Estrangeira

Definição

Uma coluna ou conjunto de colunas em uma tabela que se refere à chave primária em outra tabela

Propósito

Mantém a integridade referencial e cria relações entre as tabelas

Exemplo

Em nossa tabela de Matrículas, nós usamos StudentID e CourseID como chaves estrangeiras.

SQL

 


CREATE TABLE Enrollments (

    EnrollmentID INT PRIMARY KEY,

    StudentID INT,

    CourseID INT,

    EnrollmentDate DATE,

    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),

    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)

)

Este design garante que cada registro de matrícula esteja associado a alunos e cursos válidos.

3. Chave Composta

Definição

Uma chave que consiste em duas ou mais colunas para identificar exclusivamente um registro

Uso

Quando nenhuma coluna única pode garantir a unicidade

Exemplo

Nós poderíamos redesenhar nossa tabela de Matrículas para usar uma chave composta:

SQL

 

CREATE TABLE Enrollments (

    StudentID INT,

    CourseID INT,

    EnrollmentDate DATE,

    Grade CHAR(2),

    PRIMARY KEY (StudentID, CourseID),

    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),

    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)

);

Aqui, a combinação de StudentID e CourseID forma uma chave composta, identificando exclusivamente cada matrícula.

4. Chave candidata

Definição

Um conjunto mínimo de atributos que pode identificar exclusivamente um registro

Características

  • Deve ser único
  • Não pode conter valores NULL
  • Uma tabela pode ter múltiplas chaves candidatas.

Exemplo

Na nossa tabela Alunos, tanto o StudentID quanto o Email podem ser chaves candidatas, já que ambos podem identificar de forma única um aluno. Escolhemos o StudentID como chave primária, mas o Email poderia ter sido uma alternativa.

5. Super Key

Definição

Qualquer conjunto de colunas que possa identificar de forma única um registro, incluindo colunas desnecessárias

Diferença da Chave candidata

Pode conter atributos extras que não são necessários para a identificação única

Exemplo

Na nossa tabela Alunos, super chaves poderiam incluir:

  • {StudentID, FirstName, LastName, Email} 
  • {StudentID, Email} 
  • {Email, FirstName, LastName}

Todos incluem as chaves candidatas (StudentID ou Email) com campos adicionais.

6. Chave Alternativa

Definição

Uma chave candidata que não é selecionada como chave primária

Purpose

Fornece um método alternativo de identificar de forma única registros

Exemplo

Na nossa tabela Alunos, se escolhermos o StudentID como chave primária, então o Email torna-se uma chave alternativa:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE  -- This is an alternate key

);

A restrição UNIQUE no Email garante que também pode ser usada para identificar os alunos de forma única.

7. Chave Substituta

Definição

Um chave artificial criada exclusivamente para a finalidade de identificação única

Características

  • Geralmente gerada automaticamente pela base de dados
  • Não tem significado comercial

Exemplo

Na nossa tabela Cursos, podemos usar um CourseID de auto-incremento:

SQL

 

CREATE TABLE Courses (

    CourseID INT PRIMARY KEY AUTO_INCREMENT,

    CourseCode VARCHAR(10) UNIQUE,

    CourseName VARCHAR(100),

    Credits INT

);

CourseID é uma chave substituta, enquanto CourseCode pode ser um identificador mais natural.

8. Chave Natural

Definição

Uma chave formada a partir de dados que já existem no mundo real

Vantagem

Fornece identificação significativa

Desvantagem

Pode mudar ao longo do tempo

Exemplo

Na tabela Professores, podemos considerar usar um Número de Segurança Social (apesar de não ser recomendado por motivos de privacidade):

SQL

 

CREATE TABLE Professors (

    ProfessorID INT PRIMARY KEY,

    SSN CHAR(9) UNIQUE,  -- This could be used as a natural key

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Department VARCHAR(50)

);

9. Chave Composta

Definição

Uma chave que consiste em duas ou mais colunas, onde a combinação pode ter algum significado comercial

Diferença da Chave Composite

Geralmente usada quando as colunas combinadas têm significado além da identificação única.

Exemplo

Na tabela CursosOfertados:

SQL

 

CREATE TABLE CourseOfferings (

    CourseID INT,

    Semester CHAR(6),  -- e.g., '202301' for Spring 2023

    ProfessorID INT,

    RoomNumber VARCHAR(10),

    PRIMARY KEY (CourseID, Semester),

    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID),

    FOREIGN KEY (ProfessorID) REFERENCES Professors(ProfessorID)

);

A combinação de CourseID e Semester forma uma chave composta, que identifica de forma única uma oferta de curso e também possui significado de negócios.

10. Chave Simples

Definição

Uma chave que consiste em apenas uma coluna

Vantagem

Fácil de implementar e usar

Exemplo

Em nossa tabela Departments:

SQL

 

CREATE TABLE Departments (

    DepartmentID INT PRIMARY KEY,

    DepartmentName VARCHAR(100) UNIQUE,

    Building VARCHAR(50),

    Budget DECIMAL(10, 2)

);

DepartmentID é uma chave simples: uma coluna única que identifica cada departamento de forma única.

11. Chave Única

Definição

Uma chave que garante que todos os valores em uma coluna ou conjunto de colunas sejam únicos

Diferença da Chave Primária

Pode permitir valores NULL (a menos que seja especificado de outra forma)

Exemplo

Na nossa tabela Students, Email é um exemplo de uma chave única:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE  -- This is a unique key

);

A restrição UNIQUE garante que nenhum dois estudantes podem ter o mesmo endereço de e-mail.

Conclusão

Entendendo estes diferentes tipos de chaves é crucial para o planejamento e gerenciamento eficazes de bancos de dados. Cada tipo de chave serve um propósito específico, desde garantir a integridade dos dados até estabelecer relações entre tabelas. Ao selecionar e implementar com cuidado as chaves apropriadas, podemos criar sistemas de banco de dados eficientes, confiáveis e scaláveis.

Lembre-se, a escolha das chaves pode afetar significativamente o desempenho do banco de dados, sua manutenção e a capacidade de representar com precisão as relações do mundo real. Sempre considere as necessidades específicas da sua aplicação e a natureza dos seus dados quando decidindo quais chaves usar.

Este post é parte da nossa série de Fundamentos de Bancos de Dados. Fique atento a mais artigos detalhados sobre gerenciamento e planejamento de bancos de dados.

Source:
https://dzone.com/articles/database-keys-a-comprehensive-guide