Sobes.tech
Junior

Wie wird die Beziehung in einer relationalen Datenbank erreicht?

sobes.tech KI

Antwort von AI

Beziehungen in relationalen Datenbanksystemen (RDBMS) werden durch Fremdschlüssel (Foreign Keys) erreicht.

Ein Fremdschlüssel ist eine Spalte oder eine Gruppe von Spalten in einer Tabelle, die auf den Primärschlüssel einer anderen Tabelle verweist. Dadurch wird eine Beziehung zwischen den Einträgen in zwei Tabellen hergestellt.

Beispiele für Beziehungstypen:

  • Eins-zu-viele (One-to-Many): Ein Eintrag in der ersten Tabelle ist mit mehreren Einträgen in der zweiten Tabelle verbunden. Zum Beispiel kann eine Abteilung viele Mitarbeiter haben. In der Tabelle Employees gibt es einen Fremdschlüssel, der auf den Primärschlüssel in der Tabelle Departments verweist.
  • Viele-zu-viele (Many-to-Many): Mehrere Einträge in der ersten Tabelle sind mit mehreren Einträgen in der zweiten Tabelle verbunden. Zum Beispiel kann ein Student mehrere Kurse belegen, und ein Kurs kann von mehreren Studenten belegt werden. Dies wird durch eine Zwischentabelle (Beziehungstabelle) realisiert, die Fremdschlüssel enthält, die auf die Primärschlüssel beider Tabellen verweisen.
  • Eins-zu-eins (One-to-One): Ein Eintrag in der ersten Tabelle ist nur mit einem Eintrag in der zweiten Tabelle verbunden. Dieser Beziehungstyp ist weniger verbreitet und wird oft verwendet, um eine Tabelle vertikal zu teilen oder optionale Daten zu speichern. Es wird durch einen Fremdschlüssel in der zweiten Tabelle realisiert, der auf den Primärschlüssel in der ersten Tabelle verweist, oft mit einer eindeutigen Einschränkung auf den Fremdschlüssel.

Beispiel für die Erstellung einer Tabelle mit Fremdschlüssel in SQL:

-- Erstellen der Tabelle Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Primärschlüssel
    department_name VARCHAR(100)
);

-- Erstellen der Tabelle Employees mit Fremdschlüssel
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Spalte für den Fremdschlüssel
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Definition des Fremdschlüssels
);

Fremdschlüssel gewährleisten die referentielle Integrität der Daten und verhindern die Erstellung "hängender" Verweise (wenn ein Fremdschlüssel auf einen nicht existierenden Eintrag in der verknüpften Tabelle verweist).