Database sleutels: een compilatieveegids

In de wereld van databasebeheer spelen sleutels een cruciale rol in het organiseren, bereiken en behouden van gegevensintegriteit. Of je een ervaren databasebeheerder bent of net aan je reis in gegevensbeheer begint, is het verstandig om de verschillende typen database-sleutels te begrijpen. In dit artikel zullen we alle verschillende typen sleutels, hun doelen en hoe ze bijdragen aan een effectieve database-ontwerp verkennen.

Om deze concepten te illustreren, zullen we een eenvoudige universiteitsdatabase gebruiken met de volgende tabellen:

  1. Studenten
  2. Vakken
  3. Inschrijvingen
  4. Docenten
  5. Afdelingen

Laten we nu kijken hoe elk type sleutel wordt toegepast in onze universiteitsdatabase.

1. Primair Slot

Definitie

Een kolom of een set kolommen die elke rij in een tabel uniek identificeert

Kenmerken

  • Moet uniek zijn voor elk record
  • Kan geen NULL-waarden bevatten
  • Moet onveranderlijk zijn (niet over tijd veranderen)

Voorbeeld

In onze Studenten-tabel gebruiken we StudentID als primair slot.

SQL

 


CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE

);

Hier identificeert StudentID elke student uniek, waarborgende dat geen twee studenten dezelfde ID hebben.

2. Buitenste Slot

Definitie

Een kolom of een set kolommen in een tabel die verwijst naar de primaire sleutel in een andere tabel

Doel

Behoudt de referentiële integriteit en creëert relaties tussen tabellen

Voorbeeld

In onze Inschrijvingen tabel gebruiken we StudentID en CursusID als externe sleutels.

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)

)

Deze ontwerp zorgt ervoor dat elke inschrijvingenrecord is geassocieerd met geldige studenten en cursussen.

3. Composite Key

Definitie

Een sleutel die bestaat uit twee of meer kolommen om een record uniek te identificeren

Gebruik

Wanneer geen enkele kolom de uniciteit kan garanderen

Voorbeeld

We konden onze Inschrijvingen tabel herbouwen om een compositie sleutel te gebruiken:

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)

);

Hier vormt de combinatie van StudentID en CursusID een compositie sleutel, die elke inschrijving uniek identificeert.

4. Kandidaat Sleutel

Definitie

Een minimale set attributen die een record uniek kunnen identificeren

Kenmerken

  • Moet uniek zijn
  • Kan geen NULL waarden bevatten
  • Een tabel kan meerdere kandidaat sleutels hebben.

Voorbeeld

In onze Students tabel kunnen zowel StudentID als Email kandidaat- sleutels zijn, aangezien beide een student uniek kunnen identificeren. We hebben StudentID gekozen als de primaire sleutel, maar Email zou een alternatief kunnen zijn.

5. Super Key

Definitie

Elke set kolommen die een record uniek kunnen identificeren, inclusief onnodige kolommen

Verschil met Kandidaat Sleutel

Kan extra attributen bevatten die niet nodig zijn voor de unieke identificatie

Voorbeeld

In onze Students tabel kunnen super sleutels zijn:

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

Dit allemaal bevat de kandidaat-sleutels (StudentID of Email) plus extra velden.

6. Alternatieve Sleutel

Definitie

Een kandidaat-sleutel die niet als primaire sleutel gekozen is

Doel

Biedt een alternatieve methode om records uniek te identificeren

Voorbeeld

In onze Students tabel, als we StudentID als primaire sleutel kiezen, wordt dan Email een alternatieve sleutel:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

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

);

De UNIQUE beperking op Email zorgt ervoor dat het ook kan worden gebruikt om studenten uniek te identificeren.

7. Sleutel van Vertrouweling

Definitie

Een kunstmatige sleutel die alleen maar is gecreëerd om unieke identificatie te bieden

Kenmerken

  • Wordt meestal automatisch gegenereerd door de database
  • Heeft geen betekenis voor de zakelijke wereld

Voorbeeld

In onze Courses-tabel zouden we een automatisch verhogen CourseID kunnen gebruiken:

SQL

 

CREATE TABLE Courses (

    CourseID INT PRIMARY KEY AUTO_INCREMENT,

    CourseCode VARCHAR(10) UNIQUE,

    CourseName VARCHAR(100),

    Credits INT

);

CourseID is een placeholder-sleutel, terwijl CourseCode misschien een meer natuurlijke identifier is.

8. Natuurlijke Key

Definitie

Een sleutel die samengesteld is uit gegevens die reeds bestaan in de echte wereld

Voordeel

Biedt betekenisvolle identificatie

Nadeel

Kan over tijd veranderen

Voorbeeld

In een Professors-tabel zouden we misschien een Social Security Number kunnen overwegen ( hoewel dat door privacyredenen niet wordt aanbevolen ):

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. Samengestelde Key

Definitie

Een sleutel die uit twee of meer kolommen bestaat, waar de combinatie mogelijk enige zakelijke betekenis heeft

Verschil Met Composite Key

Wordt vaak gebruikt als de samengevoegde kolommen betekenis hebben buiten de enige identificatie

Voorbeeld

In een CourseOfferings-tabel:

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)

);

De combinatie van CourseID en Semester vormt een compositie- sleutel, die een unieke identificatie van een cursusaanbod biedt en ook van commercieel belang is.

10. Enkelvoudige Sleutel

Definitie

Een sleutel die uit één kolom bestaat

Voordeel

Eenvoudig te implementeren en te gebruiken

Voorbeeld

In onze Departments tabel:

SQL

 

CREATE TABLE Departments (

    DepartmentID INT PRIMARY KEY,

    DepartmentName VARCHAR(100) UNIQUE,

    Building VARCHAR(50),

    Budget DECIMAL(10, 2)

);

DepartmentID is een enkelvoudige sleutel: één kolom die elke afdeling uniek identificeert.

11. Unieke Sleutel

Definitie

Een sleutel die er voor zorgt dat alle waarden in een kolom of een set kolommen uniek zijn

Verschil Met Primair Sleutel

Kan NULL waarden toestaan (tenzij anders aangegeven)

Voorbeeld

In onze Students tabel is Email een voorbeeld van een unieke sleutel:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

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

);

De UNIQUE beperking stelt erop dat twee studenten niet dezelfde e-mailadres kunnen hebben.

Conclusie

Het begrijpen van deze verschillende typen sleutels is crucial voor effectieve database ontwerp en beheer. Elk type sleutel dienstt een specifieke doeleinden, van het waarborgen van data integriteit tot het opbouwen van relaties tussen tabellen. Door voorzichtig te kiezen en de toepasselijke sleutels in te voeren, kunt u efficiente, betrouwbare en scalaire database systemen creëren.

Vergeet niet, de keuze van de sleutels kan significant de prestaties van uw database beïnvloeden, de onderhoudbaarheid en de mogelijkheid om accurate weergaven van de real-world relaties te geven. Bij het kiezen van de te gebruiken sleutels, altijd de specifieke behoeften van uw toepassing en de aard van uw data in acht nemen.

Dit bericht maakt deel uit van onze Database Fundamentals reeks. Blijf op de hoogte voor diepgaardere artikelen over database beheer en ontwerp.

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