Einführung in Datenbankbeziehungen

Inhaltsverzeichnis:

Einführung in Datenbankbeziehungen
Einführung in Datenbankbeziehungen
Anonim

Die Datenbankbegriffe relational und relation beschreiben die Art und Weise, wie Daten in Tabellen miteinander verbunden sind. Eine relationale Datenbank besteht aus einer Reihe von zwei oder mehr Tabellen, die durch einen bestimmten Schlüssel verbunden sind. Eine relationale Datenbank unterscheidet sich von unstrukturierten Datenbanken, die in Big-Data-Initiativen üblich sind. Relationale Datenbanken erfordern in der Regel strenge Regeln darüber, wie Tabellen definiert werden und was eine gültige Beziehung zwischen Tabellen ausmacht.

Image
Image

Arten von Datenbankbeziehungen

Beziehungen ermöglichen es Ihnen, die Verbindungen zwischen Datenbanktabellen auf leistungsstarke Weise zu beschreiben. Diese Beziehungen können dann genutzt werden, um leistungsstarke tabellenübergreifende Abfragen durchzuführen, die als JOINs bekannt sind.

Es gibt drei Arten von Datenbankbeziehungen, die jeweils nach der Anzahl der an der Beziehung beteiligten Tabellenzeilen benannt sind. Jeder dieser drei Beziehungstypen existiert zwischen zwei Tabellen.

  • Eins-zu-Eins-Beziehungen treten auf, wenn jeder Eintrag in der ersten Tabelle nur ein Gegenstück in der zweiten Tabelle hat. Eins-zu-Eins-Beziehungen werden selten verwendet, da es oft effizienter ist, alle Informationen in einer einzigen Tabelle zusammenzufassen. Einige Datenbankdesigner nutzen diese Beziehung, indem sie Tabellen erstellen, die eine Teilmenge der Daten aus einer anderen Tabelle enth alten.
  • Eins-zu-viele-Beziehungen sind die häufigste Art 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 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 eliminieren.
  • Many-to-Many-Beziehungen treten 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 entspricht in Tabelle A. Zum Beispiel wäre die Beziehung zwischen einer Teachers-Tabelle und einer Courses-Tabelle wahrscheinlich viele-zu-viele, weil jeder Lehrer mehr als einen Kurs unterrichten kann und jeder Kurs mehr als einen Dozenten haben kann.

Bottom Line

Selbstreferenzierende Beziehungen treten auf, wenn nur eine Tabelle beteiligt ist. Ein gängiges Beispiel ist eine Mitarbeitertabelle, die Informationen über den Vorgesetzten jedes Mitarbeiters enthält. Jeder Vorgesetzte ist auch ein Angestellter und hat einen Vorgesetzten. In diesem Fall gibt es eine Eins-zu-Viele-Beziehung mit Selbstbezug, da jeder Mitarbeiter einen Vorgesetzten hat, aber jeder Vorgesetzte mehr als einen Mitarbeiter haben kann.

Erstellen von Beziehungen mit Fremdschlüsseln

Sie erstellen Beziehungen zwischen Tabellen, indem Sie einen Fremdschlüssel angeben. Dieser Schlüssel teilt der relationalen Datenbank mit, in welcher Beziehung die Tabellen stehen. In vielen Fällen enthält eine Sp alte in Tabelle A Primärschlüssel, auf die von Tabelle B verwiesen wird.

Betrachten Sie das Beispiel der Teachers- und Students-Tabellen. Die Teachers-Tabelle enthält eine ID, einen Namen und eine Kurssp alte:

LehrerID Lehrer_Name Kurs
001 Johannes Mustermann Englisch
002 Jane Schmoe Mathe

Die Schülertabelle enthält eine ID, einen Namen und eine Fremdschlüsselsp alte:

StudentID Student_Name Lehrer_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Die Sp alte Teacher_FK in der Tabelle Students verweist auf den Primärschlüsselwert eines Dozenten in der Tabelle Teachers. Häufig verwenden Datenbankdesigner PK oder FK im Sp altennamen, um eine Primärschlüssel- oder Fremdschlüsselsp alte zu identifizieren.

Diese beiden Tabellen veranschaulichen eine Eins-zu-Viele-Beziehung zwischen Lehrern und Schülern.

Beziehungen und referentielle Integrität

Erstellen Sie nach dem Hinzufügen eines Fremdschlüssels zu einer Tabelle eine Datenbankeinschränkung, die die referenzielle Integrität zwischen den beiden Tabellen erzwingt. Dieser Schritt stellt sicher, dass Beziehungen zwischen Tabellen konsistent bleiben. Wenn eine Tabelle einen Fremdschlüssel zu einer anderen Tabelle hat, erfordert die referenzielle Integrität, dass jeder Fremdschlüsselwert in Tabelle B auf einen vorhandenen Datensatz in Tabelle A verweisen muss.

Beziehungen implementieren

Abhängig von Ihrer Datenbank implementieren Sie Beziehungen zwischen Tabellen auf unterschiedliche Weise. Microsoft Access bietet einen Assistenten, mit dem Sie Tabellen verknüpfen und auch die referenzielle Integrität erzwingen können.

Wenn Sie SQL direkt schreiben, erstellen Sie zuerst die Tabelle Teachers und deklarieren Sie eine ID-Sp alte als Primärschlüssel:

CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Course VARCHAR(100));

Wenn Sie die Tabelle Students erstellen, deklarieren Sie die Sp alte Teacher_FK als Fremdschlüssel, der auf die Sp alte InstructorID in der Tabelle Teachers verweist:

CREATE TABLE Students (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) REFERENCES Teachers(InstructorID)));

Verwenden von Beziehungen zum Verbinden von Tabellen

Nachdem Sie eine oder mehrere Beziehungen in Ihrer Datenbank erstellt haben, nutzen Sie deren Leistung, indem Sie SQL JOIN-Abfragen verwenden, um Informationen aus mehreren Tabellen zu kombinieren. Der häufigste Join-Typ ist ein SQL INNER JOIN, bei dem es sich um einen einfachen Join handelt. Dieser Join-Typ gibt alle Datensätze aus einer oder mehreren Tabellen zurück, die die Join-Bedingung erfüllen.

Zum Beispiel gibt diese JOIN-Bedingung Student_Name, Teacher_Name und Course zurück, wobei der Fremdschlüssel in der Students-Tabelle mit dem Primärschlüssel in der Teachers-Tabelle übereinstimmt:

SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course

FROM Students

INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;

Diese Anweisung erzeugt eine Tabelle wie diese:

Student_Name Lehrer_Name Kurs
Lowell Smith Johannes Mustermann Englisch
Brian Short Johannes Mustermann Englisch
Corky Mendez Jane Schmoe Mathe
Monica Jones Johannes Mustermann Englisch

Empfohlen: