Der Datenbankbegriff "relational" oder "Beziehung" beschreibt die Art und Weise, wie Daten in Tabellen verbunden werden.
Für Einsteiger in die Welt der Datenbanken ist es oft schwierig, den Unterschied zwischen einer Datenbank und einer Tabelle zu erkennen. Sie sehen Datentabellen und erkennen an, dass Datenbanken es Ihnen ermöglichen, Daten auf neue Art und Weise zu organisieren und abzufragen, aber die Bedeutung von Beziehungen zwischen Daten das gibt der relationalen Datenbanktechnologie ihren Namen.
Mithilfe von Beziehungen können Sie die Verbindungen zwischen verschiedenen Datenbanktabellen auf leistungsfähige Weise beschreiben. Diese Beziehungen können dann genutzt werden, um leistungsfähige tabellenübergreifende Abfragen (Joins) auszuführen.
Arten von Datenbankbeziehungen
Es gibt drei verschiedene Arten von Datenbankbeziehungen, die jeweils nach der Anzahl der Tabellenzeilen benannt werden, die an der Beziehung beteiligt sein können. Jeder dieser drei Beziehungstypen besteht zwischen zwei Tabellen.
- Eins-zu-Eins-Beziehungen tritt auf, wenn jeder Eintrag in der ersten Tabelle ein und nur ein Gegenstück in der zweiten Tabelle hat. Eins-zu-Eins-Beziehungen werden selten verwendet, da es oft effizienter ist, alle Informationen einfach in einer einzigen Tabelle zusammenzufassen. Einige Datenbankentwickler nutzen diese Beziehung, indem sie Tabellen erstellen, die eine Teilmenge der Daten aus einer anderen Tabelle enthalten.
- Eins-zu-Viele-Beziehungen sind die häufigsten Arten von Datenbankbeziehungen. Sie treten auf, wenn jeder Datensatz in Tabelle A einem oder mehreren Datensätzen in Tabelle B entspricht, aber jeder Datensatz in Tabelle B nur einem Datensatz in Tabelle A entspricht. Beispielsweise die Beziehung zwischen einer Lehrertabelle und einer Schülertabelle in einer Grundschule Die Datenbank wäre wahrscheinlich eine Eins-zu-Viele-Beziehung, da jeder Schüler nur einen Lehrer hat, aber jeder Lehrer mehrere Schüler hat. Dieses One-to-Many-Design hilft, doppelte Daten zu vermeiden.
- Viele-zu-viele-Beziehungen tritt auf, wenn jeder Datensatz in Tabelle A einem oder mehreren Datensätzen in Tabelle B entspricht und jeder Datensatz in Tabelle B einem oder mehreren Datensätzen in Tabelle A entspricht. Zum Beispiel wäre die Beziehung zwischen einer Lehrer- und einer Kurstabelle wahrscheinlich vielfältig. zu viele, da jeder Lehrer mehr als einen Kurs unterrichten kann und jeder Kurs mehr als einen Lehrer haben kann.
Selbstbezogene Beziehungen: Ein Sonderfall
Selbstbezogene Beziehungen treten auf, wenn nur eine Tabelle beteiligt ist. Ein allgemeines Beispiel ist eine Employees-Tabelle, die Informationen zum Vorgesetzten jedes einzelnen Mitarbeiters enthält. Jeder Vorgesetzte ist auch ein Angestellter und hat einen eigenen Vorgesetzten. In diesem Fall gibt es eine Eins-zu-Viele-Beziehung, bei der jeder Mitarbeiter einen Vorgesetzten hat, aber jeder Vorgesetzte kann mehr als einen Mitarbeiter haben.
Beziehungen zu Fremdschlüsseln erstellen
Sie erstellen Beziehungen zwischen Tabellen, indem Sie einen Fremdschlüssel angeben. Dieser Schlüssel teilt der relationalen Datenbank mit, wie die Tabellen zusammenhängen. In vielen Fällen enthält eine Spalte in Tabelle A Primärschlüssel, auf die in Tabelle B verwiesen wird.
Betrachten Sie noch einmal das Beispiel der Lehrer- und Schülertabellen. Die Teachers-Tabelle enthält nur eine ID, einen Namen und eine Kursspalte:
| InstructorID | Der Name des Lehrers | Kurs |
|---|---|---|
| 001 | John Doe | Englisch |
| 002 | Jane Schmoe | Mathematik |
Die Students-Tabelle enthält eine ID, einen Namen und eine Spalte mit einem Fremdschlüssel:
| Studenten ID | Name des Studenten | Lehrer_FK |
|---|---|---|
| 0200 | Lowell Smith | 001 |
| 0201 | Brian Short | 001 |
| 0202 | Corky Mendez | 002 |
| 0203 | Monica Jones | 001 |
Die Kolumne Lehrer_FK In der Tabelle Students wird auf den Primärschlüsselwert eines Ausbilders in der Tabelle Teachers verwiesen.
Datenbankentwickler verwenden häufig "PK" oder "FK" im Spaltennamen, um einen Primärschlüssel oder eine Fremdschlüsselspalte leicht zu identifizieren.
Beachten Sie, dass diese beiden Tabellen eine Eins-zu-Viele-Beziehung zwischen den Lehrern und den Schülern zeigen.
Beziehungen und referentielle Integrität
Nachdem Sie einer Tabelle einen Fremdschlüssel hinzugefügt haben, können Sie eine Datenbankeinschränkung erstellen, die die referenzielle Integrität zwischen den beiden Tabellen erzwingt. Dadurch wird sichergestellt, dass die Beziehungen zwischen Tabellen konsistent bleiben. Wenn eine Tabelle einen Fremdschlüssel zu einer anderen Tabelle enthält, gibt das Konzept der referentiellen Integrität an, dass sich ein Fremdschlüsselwert in Tabelle B auf einen vorhandenen Datensatz in Tabelle A beziehen muss.
Beziehungen umsetzen
Abhängig von Ihrer Datenbank implementieren Sie Beziehungen zwischen Tabellen auf verschiedene Arten. Microsoft Access bietet einen Assistenten, mit dem Sie Tabellen leicht verknüpfen und die referenzielle Integrität erzwingen können.
Wenn Sie direkt SQL schreiben, müssen Sie zuerst die Tabelle Teachers erstellen und eine ID-Spalte als Primärschlüssel deklarieren:
CREATE TABLE Lehrer (
InstructorID INT AUTO_INCREMENT PRIMARY KEY, Lehrername VARCHAR (100), Kurs VARCHAR (100));
Wenn Sie die Students-Tabelle erstellen, erklären Sie die Teacher_FK-Spalte als Fremdschlüssel, der auf die InstructorID-Spalte in der Teachers-Tabelle verweist:
CREATE TABLE Studenten ( StudentID INT AUTO_INCREMENT PRIMARY KEY, Schülername VARCHAR (100), Lehrer_FK INT, FOREIGN KEY (Teacher_FK) REFERENCES Lehrer (InstructorID)));
Verwenden von Beziehungen zum Verknüpfen von Tabellen
Nachdem Sie eine oder mehrere Beziehungen in Ihrer Datenbank erstellt haben, können Sie deren Möglichkeiten nutzen, indem Sie mithilfe von SQL JOIN-Abfragen Informationen aus mehreren Tabellen kombinieren. Der gebräuchlichste Join-Typ ist ein SQL INNER JOIN oder ein einfacher Join. Dieser Join-Typ gibt alle Datensätze zurück, die die Join-Bedingung aus mehreren Tabellen erfüllen.Diese JOIN-Bedingung gibt beispielsweise den Namen Student_Name, Teacher_Name und Course zurück, wobei der Fremdschlüssel in der Tabelle Students mit dem Primärschlüssel in der Tabelle Teachers übereinstimmt:
SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.CourseVon StudentenINNERE JOIN LehrerON Students.Teacher_FK = Teachers.InstructorID;
Diese Anweisung erzeugt eine Tabelle in etwa wie folgt:
Zurückgegebene Tabelle aus der SQL-Join-Anweisung
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish




