Relationale Datenbank-Design-Techniken

June 22

Relationale Datenbank-Design basiert auf drei wichtigen Techniken: die eins-zu-viele-Beziehung, die Join-Tabelle und die viele-zu-viele-Beziehung. Um relationale Datenbankdesign zu verstehen, ist es wichtig zu wissen, diese Techniken sowie spezielle Konzepte für das Schlüsselfeld.

Die eins-zu-viele-Beziehung

Die häufigste relationalen Datenbank-Technik ist die eins-zu-viele-Beziehung. Dadurch wird einen Datensatz in der Mastertabelle (d. h. einer Flatfile-Datenbank mit Datensätze und Felder), mit einer beliebigen Anzahl von Datensätzen in einer Sekundärtabelle verbunden. 1: n-Beziehungen zeichnen sich durch einzigartige Verbindungen in die Sekundärtabelle; Jede dieser Aufzeichnungen kann höchstens einen verknüpften Datensatz in der Mastertabelle haben.

Diese Verbindungen werden hergestellt mit "Schlüsselfelder", die sind eindeutige Einträge in der Mastertabelle; Diese Felder sind in der Regel erstellt und erzwungen, indem Sie jedem neuen Datensatz automatisch eine fortlaufende Zahl zuweisen. Jeder Datensatz in der sekundären Tabelle, die diese einzigartigen Daten teilt wird mit einen primären Datensatz verknüpft werden.

Entdecken Sie dies nun mit einer Beispiel-Buch-Adressdatenbank. Sagen Sie, dass Sie eine Design wünschen, die alle in der Datenbank mehrere Telefonnummern haben können. Dies ist die gängigste Methode, dies zu erreichen:

Menschen-Tabelle:Satz 1: (PersonID: 1, Name: "Franklin Roosevelt")Satz 2: (PersonID: 2, Name: "Lyndon Johnson")

Handys-Tabelle:Satz 1: (PersonID: 1, Telefon: "202-555-1932")Satz 2: (PersonID: 1, Telefon: "202-555-1936")Datensatz 3: (PersonID: 2, Telefon: "202-555-1964")

Wenn diese beiden Tabellen durch das Schlüsselfeld PersonID verknüpft sind, Franklin haben zwei Telefonnummern, aber Lyndon haben nur eins. Ebenso ist jede Telefonnummer eindeutig von einer einzelnen Person in der Personen-Tabelle zugeordnet.

Verknüpfen von Tabellen

Eine zweite Technik nennt eine "Join-Tabelle", die für Datensätze verwendet wird, das aus zwei anderen Tabellen gezogen werden. Dies wird häufig verwendet, wenn die Daten aus festen Tabellen ausgewählt werden müssen; Verknüpfungstabellen können nur relationale Daten aufnehmen, so dass alle in ihnen eingegebene Daten aus vorhandenen Tabellen gezogen werden müssen.

Nehmen wir beispielsweise an, dass Sie ein "Werk" hinzufügen möchten, oder "zu Hause" aller Rufnummern in der Beispieldatenbank beschriften. Tun Sie dies, indem die Beziehung als eine Join-Tabelle umschreiben:

Menschen-Tabelle:Satz 1: (PersonID: 1, Name: "Franklin Roosevelt")Satz 2: (PersonID: 2, Name: "Lyndon Johnson")

Handys-Tabelle:Satz 1: (PhoneID: 1, Telefon: "202-555-1932")Satz 2: (PhoneID: 2, Telefon: "202-555-1936")Datensatz 3: (PhoneID: 3, Tel: "202-555-1964")

PhoneType Tabelle:Satz 1: (PhoneTypeID: 1, Typ: "arbeiten")Satz 2: (PhoneTypeID: 2, Typ: "Heimat")

Join-Tabelle:Satz 1: (PersonID: 1, PhoneID: 1, PhoneTypeID: 1)Satz 2: (PersonID: 2, PhoneID: 2, PhoneTypeID: 2)Datensatz 3: (PersonID: 3, PhoneID: 3, PhoneTypeID: 1)

In dieser Datenbank schließen alle Beziehungen an die Join-Tabelle, die alle Arbeiten der Beziehung eines Namens zu einer Telefonnummer, und beide in einem Telefon-Number-Datentyp enthält. Eine effizientere Version konnte zwei Verknüpfungstabellen verwenden, da der Name der Person nicht direkt in den Typ des Telefons zusammenhängen muss: PersonID und PhoneID in Join-Tabelle 1, PhoneID und PhoneTypeID in Verknüpfung Tabelle 2.

Mithilfe von Join-Tabellen m: N-Beziehungen erstellen

In Join-Tabellen ist die eins-zu-viele-Beziehung nicht mehr vollstreckt. Wenn wir mögen, können wir die gleiche Telefonnummer zu viele Menschen, oder die "Home" oder "Arbeit" Bezeichnung zuweisen, um so viele Handys wie wir. Dies erlaubt uns, m: n-Beziehungen, einrichten, wo jeder einen Datensatz in einer Tabelle auf mehrere Datensätze in anderen Tabellen zugreifen kann. Dies ist eine leistungsfähige Datenbank-Technik, aber da es kompliziert Datenbeziehungen erstellen kann, es sollte nur verwendet werden wenn eine eins-zu-viele-Beziehung nicht ausreichen wird.