Schlüssel in ER-Diagrammen in SQL: Methoden zur Identifizierung von Primärschlüssel, Fremdschlüssel und Kandidatenschlüssel

ER-Diagramme (Entity-Relationship-Diagramme), die eine Grundlage des SQL-Datenbankentwurfs darstellen, sind ein wichtiges Werkzeug, um Daten und deren Beziehungen innerhalb einer Datenbank visuell darzustellen. Dieser Artikel bietet eine detaillierte Erklärung zur Identifizierung von Primärschlüsseln, Fremdschlüsseln und Kandidatenschlüsseln in ER-Diagrammen. Durch das Verständnis der Rolle und Identifizierung dieser Schlüssel ist ein effizienterer und genauerer Datenbankentwurf möglich.

Inhaltsverzeichnis

Was ist ein ER-Diagramm?

Ein ER-Diagramm (Entity-Relationship-Diagramm) stellt visuell die Entitäten (Datenobjekte) und deren Beziehungen innerhalb einer Datenbank dar. Durch den Einsatz von ER-Diagrammen können Datenbankdesigner die gesamte Datenstruktur eines Systems klar verstehen und so Redundanz und Inkonsistenzen vermeiden. Ein ER-Diagramm besteht hauptsächlich aus drei Basiselementen: Entitäten, Attributen und Beziehungen.

Entitäten

Eine Entität ist ein Datenobjekt, das in einer Datenbank dargestellt wird und auf ein konkretes Objekt oder Ereignis verweist. Beispiele für Entitäten sind Kunde, Produkt und Bestellung.

Attribute

Attribute sind die Eigenschaften oder Informationen, die eine Entität besitzt. Zum Beispiel sind Name, Adresse und Telefonnummer Attribute einer Kundenentität.

Beziehungen

Eine Beziehung beschreibt die Verbindung zwischen Entitäten. Zum Beispiel besteht zwischen einem Kunden und einer Bestellung eine Beziehung des „Bestellens“.

Definition und Identifizierung von Primärschlüsseln (Primary Key)

Ein Primärschlüssel (Primary Key) ist ein Schlüssel, der einen Datensatz in einer Tabelle eindeutig identifiziert. Ein Primärschlüssel muss eindeutig sein und darf keine NULL-Werte enthalten. Durch die korrekte Festlegung des Primärschlüssels wird die Datenintegrität und -eindeutigkeit gewährleistet.

Definition eines Primärschlüssels

Ein Primärschlüssel besteht aus einer oder mehreren Spalten (Felder), die verwendet werden, um einen Datensatz in einer Tabelle eindeutig zu identifizieren. Um die Eindeutigkeit zu gewährleisten, muss jeder Datensatz unterschiedliche Werte haben.

Merkmale eines Primärschlüssels

  • Eindeutigkeit: Kann jeden Datensatz eindeutig identifizieren.
  • Kein NULL-Wert: Darf keine NULL-Werte enthalten.
  • Einzeln oder zusammengesetzt: Kann aus einer Spalte bestehen oder aus einer Kombination mehrerer Spalten (zusammengesetzter Primärschlüssel).

Identifizierung eines Primärschlüssels

Die folgenden Kriterien helfen bei der Identifizierung eines Primärschlüssels.

  • Eindeutigkeit prüfen: Wählen Sie aus den Kandidatenschlüsseln die Spalte aus, die Eindeutigkeit besitzt.
  • Prüfung auf NULL-Werte: Wählen Sie aus den Kandidatenschlüsseln die Spalte aus, die keine NULL-Werte enthält.

Festlegung eines Primärschlüssels in SQL

Das folgende Beispiel zeigt, wie ein Primärschlüssel in SQL festgelegt wird.

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    CustomerName VARCHAR(100),
    ContactName VARCHAR(100),
    Country VARCHAR(50)
);

In diesem Beispiel ist die Spalte CustomerID als Primärschlüssel festgelegt, der jeden Kunden eindeutig identifiziert.

Definition und Identifizierung von Fremdschlüsseln (Foreign Key)

Ein Fremdschlüssel (Foreign Key) wird verwendet, um die Beziehung zwischen Tabellen zu definieren. Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle und sorgt so für die Datenintegrität.

Definition eines Fremdschlüssels

Ein Fremdschlüssel ist eine Spalte, die auf den Primär- oder Kandidatenschlüssel einer anderen Tabelle verweist. Dadurch wird die Beziehung zwischen den Tabellen in der Datenbank festgelegt.

Merkmale eines Fremdschlüssels

  • Beziehungsaufbau: Der Fremdschlüssel zeigt an, wie ein Datensatz einer Tabelle mit einem Datensatz einer anderen Tabelle verknüpft ist.
  • Referenzielle Integrität: Durch die Fremdschlüsselbedingung wird sichergestellt, dass die referenzierten Daten existieren. Wird ein referenziertes Datum gelöscht, werden damit verbundene Datensätze entweder aktualisiert oder gelöscht.

Identifizierung eines Fremdschlüssels

Die folgenden Kriterien helfen bei der Identifizierung eines Fremdschlüssels.

  • Überprüfung der Referenz: Bestimmen Sie den Primärschlüssel oder Kandidatenschlüssel, auf den verwiesen wird.
  • Überprüfung der Beziehung: Bestimmen Sie die Beziehung zwischen den Tabellen und legen Sie den Fremdschlüssel fest.

Festlegung eines Fremdschlüssels in SQL

Das folgende Beispiel zeigt, wie ein Fremdschlüssel in SQL festgelegt wird.

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    OrderNumber INT,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

In diesem Beispiel verweist die Spalte CustomerID der Tabelle Orders auf die Spalte CustomerID der Tabelle Customers als Fremdschlüssel. Dies zeigt, zu welchem Kunden jede Bestellung gehört.

Definition und Identifizierung von Kandidatenschlüsseln (Candidate Key)

Ein Kandidatenschlüssel (Candidate Key) ist eine Spalte oder Kombination von Spalten, die einen Datensatz in einer Tabelle eindeutig identifizieren können. Ein Kandidatenschlüssel ist jeder Schlüssel, der als Primärschlüssel ausgewählt werden kann.

Definition eines Kandidatenschlüssels

Ein Kandidatenschlüssel besteht aus einer oder mehreren Spalten, die jeden Datensatz eindeutig identifizieren. Eine Tabelle kann mehrere Kandidatenschlüssel besitzen, von denen einer als Primärschlüssel ausgewählt wird.

Merkmale eines Kandidatenschlüssels

  • Eindeutigkeit: Kann jeden Datensatz eindeutig identifizieren.
  • Kein NULL-Wert: Die Spalten eines Kandidatenschlüssels dürfen keine NULL-Werte enthalten.
  • Mehrere Kandidaten: Eine Tabelle kann mehrere Kandidatenschlüssel besitzen.

Identifizierung eines Kandidatenschlüssels

Die folgenden Kriterien helfen bei der Identifizierung eines Kandidatenschlüssels.

  • Eindeutigkeit prüfen: Überprüfen Sie, ob jede Spalte oder Spaltenkombination eindeutige Werte besitzt.
  • Prüfung auf NULL-Werte: Überprüfen Sie, ob die Spalten eines Kandidatenschlüssels keine NULL-Werte enthalten.
  • Minimalitätsprüfung: Identifizieren Sie die kleinste Anzahl von Spalten, die Eindeutigkeit garantieren.

Festlegung eines Kandidatenschlüssels in SQL

Das folgende Beispiel zeigt, wie ein Kandidatenschlüssel in SQL festgelegt wird.

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    NationalIDNumber VARCHAR(15) NOT NULL,
    EmployeeNumber VARCHAR(10) NOT NULL,
    EmployeeName VARCHAR(100),
    CONSTRAINT UQ_NationalIDNumber UNIQUE (NationalIDNumber),
    CONSTRAINT UQ_EmployeeNumber UNIQUE (EmployeeNumber)
);

In diesem Beispiel ist EmployeeID der Primärschlüssel der Tabelle Employees. NationalIDNumber und EmployeeNumber besitzen jedoch ebenfalls eine Eindeutigkeitsbedingung (UNIQUE Constraint), was sie zu Kandidatenschlüsseln macht.

Beziehung zwischen Primärschlüsseln und Fremdschlüsseln

Die Beziehung zwischen Primär- und Fremdschlüsseln ist ein wichtiger Aspekt beim Ausdruck von Beziehungen im Datenbankdesign. Durch die korrekte Festlegung von Primär- und Fremdschlüsseln wird die Daten- und referenzielle Integrität gewährleistet.

Grundlegende Beziehung zwischen Primär- und Fremdschlüsseln

Ein Primärschlüssel dient der eindeutigen Identifikation von Datensätzen in einer Tabelle. Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle. Durch den Fremdschlüssel wird eine Beziehung zwischen den Tabellen hergestellt.

Beziehungstypen

Durch die Verwendung von Primär- und Fremdschlüsseln können folgende Beziehungstypen ausgedrückt werden:

  • Eins-zu-viele (1:N): Ein Primärschlüssel ist mit mehreren Fremdschlüsseln verknüpft.
  • Viele-zu-viele (N:M): Viele Primärschlüssel sind mit vielen Fremdschlüsseln verknüpft. In diesem Fall wird eine Zwischentabelle verwendet, um die Beziehung auszudrücken.

Beziehungsbeispiel

Das folgende Beispiel zeigt eine Eins-zu-viele-Beziehung zwischen der Tabelle Customers und der Tabelle Orders.

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    CustomerName VARCHAR(100),
    ContactName VARCHAR(100),
    Country VARCHAR(50)
);

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    OrderNumber INT,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

In diesem Beispiel ist CustomerID der Primärschlüssel der Tabelle Customers und CustomerID der Fremdschlüssel der Tabelle Orders. Dies zeigt, zu welchem Kunden jede Bestellung gehört.

Sicherstellung der referenziellen Integrität

Durch den Einsatz von Fremdschlüsselbedingungen wird die referenzielle Integrität sichergestellt. Beispielsweise kann festgelegt werden, was mit verknüpften Datensätzen geschieht, wenn der referenzierte Primärschlüssel gelöscht wird.

Schlüsselauswahl im tatsächlichen Datenbankdesign

Bei der Datenbankentwicklung ist die Auswahl geeigneter Schlüssel entscheidend, um die Datenintegrität und eine effiziente Abfrageleistung zu gewährleisten. Hier werden die Kriterien und Best Practices bei der Schlüsselauswahl in realen Datenbankdesigns erklärt.

Kriterien zur Schlüsselauswahl

Die folgenden Kriterien sollten bei der Schlüsselauswahl berücksichtigt werden:

  • Eindeutigkeit: Kann jeder Datensatz eindeutig identifiziert werden?
  • Stabilität: Es ist wünschenswert, dass der Wert des Schlüssels im Laufe der Zeit unverändert bleibt. Schlüssel, die häufig geändert werden, sollten vermieden werden.
  • Einfachheit: Wählen Sie einfache und kurze Schlüssel. Komplexe Schlüssel können schwer verständlich sein und die Abfrageleistung beeinträchtigen.
  • Natürliche vs. Surrogatschlüssel: Entscheiden Sie, ob Sie natürliche Schlüssel (z. B. Mitarbeiternummer oder E-Mail-Adresse) oder vom System generierte Surrogatschlüssel (z. B. automatisch inkrementierte IDs) verwenden.

Auswahl des Primärschlüssels

Folgende Punkte sollten bei der Auswahl eines Primärschlüssels beachtet werden:

  • Eindeutigkeit und Nicht-NULL-Bedingung: Wählen Sie Spalten, die eindeutig sind und keine NULL-Werte enthalten.
  • Stabilität: Wählen Sie eine Spalte, deren Wert sich nicht ändert, z. B. Mitarbeiternummer oder Sozialversicherungsnummer.

Auswahl des Fremdschlüssels

Die folgenden Punkte sollten bei der Auswahl eines Fremdschlüssels beachtet werden:

  • Klarheit der Beziehung: Der Fremdschlüssel muss eine klare Beziehung zum Primär- oder Kandidatenschlüssel der referenzierten Tabelle haben.
  • Sicherstellung der referenziellen Integrität: Durch den Fremdschlüssel wird die referenzielle Integrität sichergestellt und die Konsistenz der Daten erhalten.

Auswahl des Kandidatenschlüssels

Die folgenden Punkte sollten bei der Auswahl eines Kandidatenschlüssels beachtet werden:

  • Eindeutigkeit prüfen: Der Kandidatenschlüssel muss im Vergleich zu anderen Spalten der Tabelle eindeutig sein.
  • Vermeidung von Redundanz: Vermeiden Sie das Setzen unnötig vieler Kandidatenschlüssel und streben Sie ein einfaches Design an.

Best Practices

  • Verwendung von Surrogatschlüsseln: In vielen praktischen Anwendungen werden Surrogatschlüssel als Primärschlüssel verwendet, da sie einfach und eindeutig sind, z. B. automatisch inkrementierte Ganzzahlen.
  • Ergänzung mit natürlichen Schlüsseln: Verwenden Sie natürliche Schlüssel, um die Datenintegrität zu wahren. Als Primärschlüssel wird jedoch oft ein Surrogatschlüssel verwendet, während der natürliche Schlüssel eine Eindeutigkeitsbedingung erhält (UNIQUE Constraint).

Darstellung von Schlüsseln in ER-Diagrammen

In ER-Diagrammen (Entity-Relationship-Diagrammen) werden spezielle Symbole und Stile verwendet, um die verschiedenen Schlüsselarten darzustellen. Hier wird erläutert, wie Primärschlüssel, Fremdschlüssel und Kandidatenschlüssel in ER-Diagrammen dargestellt werden.

Darstellung von Primärschlüsseln

Primärschlüssel werden in ER-Diagrammen als eindeutig gekennzeichnete Attribute dargestellt. Zu den gängigen Darstellungsmethoden gehören:

  • Unterstreichung: Der Attributname des Primärschlüssels wird unterstrichen.
  • Beispiel: CustomerID
  • PK-Label: Der Attributname wird mit dem Zusatz „(PK)“ versehen.
  • Beispiel: CustomerID (PK)

Darstellung von Fremdschlüsseln

Fremdschlüssel werden in ER-Diagrammen als Attribute dargestellt, die auf den Primärschlüssel einer anderen Entität verweisen. Zu den gängigen Darstellungsmethoden gehören:

  • FK-Label: Der Attributname wird mit dem Zusatz „(FK)“ versehen.
  • Beispiel: CustomerID (FK)
  • Gestrichelte Linie: Der Fremdschlüssel wird mit einer gestrichelten Linie umrandet.
  • Beispiel: -- CustomerID --

Darstellung von Kandidatenschlüsseln

Kandidatenschlüssel werden in ER-Diagrammen als Schlüssel dargestellt, die als Primärschlüssel ausgewählt werden könnten. Zu den gängigen Darstellungsmethoden gehören:

  • CK-Label: Der Attributname wird mit dem Zusatz „(CK)“ versehen.
  • Beispiel: NationalIDNumber (CK)
  • Gewellte Linie: Der Kandidatenschlüssel wird mit einer gewellten Linie umrandet.
  • Beispiel: ~ NationalIDNumber ~

Beispiel eines ER-Diagramms

Das folgende Beispiel zeigt die Darstellung der Schlüssel in einem ER-Diagramm.

|----------------------|
|      Customers       |
|----------------------|
| CustomerID (PK)      |
| CustomerName         |
| ContactName          |
| NationalIDNumber (CK)|
|----------------------|

|----------------------|
|        Orders        |
|----------------------|
| OrderID (PK)         |
| OrderNumber          |
| CustomerID (FK)      |
|----------------------|

In diesem Beispiel wird CustomerID der Tabelle Customers als Primärschlüssel unterstrichen, während CustomerID der Tabelle Orders als Fremdschlüssel dargestellt wird. Außerdem wird NationalIDNumber in der Tabelle Customers als Kandidatenschlüssel mit einer gewellten Linie dargestellt.

Übungsaufgaben und Lösungen

Um das Verständnis zu vertiefen, werden hier Übungsaufgaben zur Identifizierung von Primärschlüsseln, Fremdschlüsseln und Kandidatenschlüsseln in ER-Diagrammen angeboten. Durch das Lösen dieser Aufgaben wird die Rolle und Bedeutung der Schlüssel im realen Datenbankdesign verdeutlicht.

Übungsaufgabe 1

Betrachten Sie ein ER-Diagramm mit den folgenden Entitäten:

Employees Entität

  • EmployeeID
  • EmployeeName
  • DepartmentID
  • NationalIDNumber

Departments Entität

  • DepartmentID
  • DepartmentName

Beantworten Sie die folgenden Fragen:

  1. Was ist der Primärschlüssel der Entität Employees?
  2. Was ist der Primärschlüssel der Entität Departments?
  3. Was ist der Fremdschlüssel der Entität Employees?
  4. Was ist der Kandidatenschlüssel der Entität Employees?

Lösungen 1

  1. Der Primärschlüssel der Entität Employees ist EmployeeID.
  2. Der Primärschlüssel der Entität Departments ist DepartmentID.
  3. Der Fremdschlüssel der Entität Employees ist DepartmentID.
  4. Der Kandidatenschlüssel der Entität Employees ist NationalIDNumber.

Übungsaufgabe 2

Analysieren Sie das folgende SQL-Skript und bestimmen Sie die Primärschlüssel, Fremdschlüssel und Kandidatenschlüssel jeder Tabelle.

CREATE TABLE Projects (
    ProjectID INT PRIMARY KEY,
    ProjectName VARCHAR(100),
    StartDate DATE,
    EndDate DATE
);

CREATE TABLE EmployeeProjects (
    EmployeeID INT,
    ProjectID INT,
    AssignmentDate DATE,
    PRIMARY KEY (EmployeeID, ProjectID),
    FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID),
    FOREIGN KEY (ProjectID) REFERENCES Projects(ProjectID)
);

Beantworten Sie die folgenden Fragen:

  1. Was ist der Primärschlüssel der Tabelle Projects?
  2. Was ist der Primärschlüssel der Tabelle EmployeeProjects?
  3. Was sind die Fremdschlüssel der Tabelle EmployeeProjects?

Lösungen 2

  1. Der Primärschlüssel der Tabelle Projects ist ProjectID.
  2. Der Primärschlüssel der Tabelle EmployeeProjects ist ein zusammengesetzter Primärschlüssel aus EmployeeID und ProjectID.
  3. Die Fremdschlüssel der Tabelle EmployeeProjects sind EmployeeID und ProjectID.

Zusammenfassung

In diesem Artikel haben wir detailliert erklärt, wie man Primärschlüssel, Fremdschlüssel und Kandidatenschlüssel in ER-Diagrammen in SQL identifiziert. ER-Diagramme sind ein wichtiges Werkzeug im Datenbankdesign, und die korrekte Festlegung dieser Schlüssel ist entscheidend, um die Eindeutigkeit und Integrität der Daten zu gewährleisten. Ein Primärschlüssel identifiziert jeden Datensatz eindeutig, ein Fremdschlüssel stellt die Beziehung zwischen Tabellen her, und ein Kandidatenschlüssel zeigt alle möglichen Schlüssel, die als Primärschlüssel gewählt werden könnten. Durch das Verständnis dieser Schlüssel und deren Anwendung im Datenbankdesign ist es möglich, effiziente und zuverlässige Datenbanken zu erstellen.

Inhaltsverzeichnis