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:
- Studenten
- Kurse
- Einträge
- Professoren
- 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.
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.
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:
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:
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:
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):
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:
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:
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:
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