Datenbank-Schlüssel: Ein umfassender Leitfaden

Im Bereich der Datenbankverwaltung spielen Schlüssel eine entscheidende Rolle bei der Organisation, Verfügbarkeit und Wartung der Datenintegrität. Egal, ob du ein erfahrener Datenbankadministrator bist oder du dich gerade auf dem Weg im Bereich der Datenverwaltung befindest, umfasst das Verständnis der verschiedenen Arten von Datenbank-Schlüsseln eine grundlegende Notwendigkeit. In diesem Beitrag werden wir alle unterschiedlichen Arten von Schlüsseln, ihre Ziele und wie sie zur effektiven Datenbankentwicklung beitragen, untersuchen.

Um diese Konzepte zu verdeutlichen, werden wir eine einfache Universitätsdatenbank mit den folgenden Tabellen verwenden:

  1. Studenten
  2. Kurse
  3. Einträge
  4. Professoren
  5. Fachbereiche

Lass uns in jeden Typ des Schlüssels einsteigen und sehen, wie sie in unserer Universitätsdatenbank angewendet werden.

1. Primärschlüssel

Definition

Eine Spalte oder eine Reihe von Spalten, die jeden Eintrag in einer Tabelle eindeutig kennzeichnen

Eigenschaften

  • Muss für jeden Datensatz eindeutig sein
  • Darf keine NULL-Werte enthalten
  • Sollte unveränderlich sein (nicht mit der Zeit ändern)

Beispiel

In unserer Studenten-Tabelle verwenden wir StudentID als Primärschlüssel.

SQL

 


CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE

);

Hierbei kennzeichnet StudentID jeden Studenten eindeutig, sicherstellend, dass keine beiden Studenten den gleichen ID-Code haben.

2. Fremdschlüssel

Definition

Eine Spalte oder eine Reihe von Spalten in einer Tabelle, die auf die Primärschlüsselspalte in einer anderen Tabelle verweist

Zweck

Erhält die Referenzintegrität und erstellt Beziehungen zwischen Tabellen

Beispiel

In unserer Enrollments-Tabelle verwenden wir StudentID und CourseID als Fremdschlüssel.

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)

)

Diese Designentscheidung stellt sicher, dass jedes Eintragsdatensatz mit gültigen Studenten und Kursen verknüpft ist.

3. Kompositer Schlüssel

Definition

Ein Schlüssel, der aus zwei oder mehr Spalten besteht, um ein einzigartiges Datensatz-ID zu bilden

Anwendung

Wenn keine einzelne Spalte die Eindeutigkeit garantieren kann

Beispiel

Wir könnten unsere Enrollments-Tabelle umarchitekturieren, um einen Kompositschlüssel zu verwenden:

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 bildet die Kombination von StudentID und CourseID einen Kompositschlüssel, der jeden Eintrag eindeutig kennzeichnet.

4. Kandidaten Schlüssel

Definition

Ein minimales Satz von Attributen, der ein einzigartiges Datensatz-ID festlegen kann

Eigenschaften

  • Muss eindeutig sein
  • Darf keine NULL-Werte enthalten
  • Eine Tabelle kann mehrere Kandidaten Schlüssel haben.

Beispiel

In unserer Students-Tabelle könnten sowohl StudentID als auch Email Kandidaten-Schlüssel sein, da beide einzigartig einen Studenten kennzeichnen können. Wir haben StudentID als Primärschlüssel gewählt, aber Email hätte auch eine Alternative gewesen.

5. Super Key

Definition

Jeder Satz von Spalten, der ein einzigartiges Datensatz kennzeichnen kann, einschließlich unnötiger Spalten

Unterschied zu Kandidaten-Schlüssel

Kann zusätzliche Attribute enthalten, die nicht für die eindeutige Identifizierung notwendig sind

Beispiel

In unserer Students-Tabelle könnten Super-Schlüssel beinhalten:

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

Diese beinhalten sowohl Kandidaten-Schlüssel (StudentID oder Email) als auch zusätzliche Felder.

6. Alternativer Schlüssel

Definition

Ein Kandidaten-Schlüssel, der nicht als Primärschlüssel ausgewählt wird

Zweck

Stellt eine alternative Methode zur eindeutigen Identifizierung von Datensätzen bereit

Beispiel

Wenn wir in unserer Students-Tabelle StudentID als Primärschlüssel wählen, dann wird Email zu einem alternativen Schlüssel:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

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

);

Die UNIQUE-Bedingung auf Email stellt sicher, dass sie auch zur eindeutigen Identifizierung von Studenten verwendet werden kann.

7. Surrogat-Schlüssel

Definition

Ein künstlicher Schlüssel, der ausschließlich zum Zwecke der einzigartigen Identifizierung erstellt wird

Eigenschaften

  • Wird normalerweise von der Datenbank automatisch generiert
  • Hat kein geschäftliches Bedeutung

Beispiel

In unserer Kurse-Tabelle könnten wir ein automatisch inkrementierendes KursID verwenden:

SQL

 

CREATE TABLE Courses (

    CourseID INT PRIMARY KEY AUTO_INCREMENT,

    CourseCode VARCHAR(10) UNIQUE,

    CourseName VARCHAR(100),

    Credits INT

);

KursID ist ein Stellvertreter-Schlüssel, während KursCode möglicherweise ein natürlicher Identifikator ist.

8. natürlicher Schlüssel

Definition

Ein Schlüssel, der aus Daten besteht, die bereits im realen Welt vorhanden sind

Vorteil

Bietet sinnvolle Identifizierung

Nachteil

Kann mit der Zeit wechseln

Beispiel

In einer Lehrer-Tabelle könnten wir eine Sozialversicherungsnummer in Betracht ziehen ( obwohl das aufgrund von Datenschutzgründen nicht empfohlen wird):

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. kombinierter Schlüssel

Definition

Ein Schlüssel, der aus zwei oder mehr Spalten besteht, wobei die Kombination möglicherweise einige geschäftliche Bedeutung hat

Unterschied zu Composite Key

Wird oft verwendet, wenn die kombinierten Spalten mehr bedeuten als nur die einzigartige Identifizierung.

Beispiel

In einer Kursangebot-Tabelle:

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)

);

Die Kombination von CourseID und Semester bildet eine Verbundtaste, die eine Verkettung von Kursanbotungen eindeutig kennzeichnet und gleichzeitig Bedeutung für das Geschäft hat.

10. Einfache Schlüssel

Definition

Ein Schlüssel, der aus nur einer Spalte besteht

Vorteil

Einfach zu implementieren und verwenden

Beispiel

In unserer Departments Tabelle:

SQL

 

CREATE TABLE Departments (

    DepartmentID INT PRIMARY KEY,

    DepartmentName VARCHAR(100) UNIQUE,

    Building VARCHAR(50),

    Budget DECIMAL(10, 2)

);

DepartmentID ist eine einfache Schlüssel: Eine einzelne Spalte, die jedes Department eindeutig kennzeichnet.

11. Eindeutiger Schlüssel

Definition

Ein Schlüssel, der sicherstellt, dass alle Werte in einer Spalte oder einem Satz von Spalten eindeutig sind

Unterschied zu Primärschlüssel

Kann NULL Werte zulassen (außer anders angegeben)

Beispiel

In unserer Students Tabelle ist Email ein Beispiel eines eindeutigen Schlüssels:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

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

);

Die UNIQUE Constraint sichert, dass sich keine zwei Studenten die gleiche E-Mail-Adresse teilen können.

Fazit

Der Verständnis dieser verschiedenen Arten von Schlüsseln ist entscheidend für die wirksame Datenbankentwicklung und -verwaltung. Jeder Typ von Schlüssel erfüllt eine bestimmte Funktion, von der sicherstellten Datenintegrität bis hin zur Festlegung von Beziehungen zwischen Tabellen. Durch sorgfältige Auswahl und Implementierung der geeigneten Schlüssel können Sie effiziente, zuverlässige und skalierbare Datenbanken aufbauen.

Denken Sie daran, dass die Wahl der Schlüssel die Leistung Ihrer Datenbank, ihre Wartbarkeit und die Fähigkeit beeinflussen kann, real-weltliche Beziehungen genau abzubilden. Beachten Sie immer die besonderen Bedürfnisse Ihrer Anwendung und die Natur Ihrer Daten, wenn Sie festlegen, welche Schlüssel verwendet werden sollen.

Dieser Beitrag ist Teil unserer Datenbankfundamentale-Reihe. Bitte halten Sie Ausschau nach weiteren detaillierten Artikeln über Datenbankverwaltung und -entwicklung.

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