Zum Inhalt springen

Erweiterte Datenmodellierung

Relationales Modell

Das heute am häufigsten verstandene und verwendete Datenmodell ist das relationale Modell, bei dem alle Daten in Form von Tabellen und Spalten definiert sind. Mit RDM kann eine Datenbank mithilfe von SQL, der vorherrschenden Beziehungsdatenbanksprache, definiert werden. Beziehungen in einem reinen Beziehungsmodell werden definiert, indem Spaltenwerte in einer Tabelle mit allgemeinen Werten in einer anderen Tabelle verglichen werden. Die Indizierung ist eine gängige Methode zur Optimierung der Vergleiche. RDM unterstützt sowohl B + Tree-, AVL Tree-, R Tree- als auch Hash-Index-Implementierungen.

Netzwerkmodell

Unter dem relationalen Modell in einer RDM-Datenbank befindet sich ein Netzwerkmodell, in dem alle Daten in Form von Datensatztypen und Feldern definiert sind. Felder können indiziert werden und Datensatztypen können festgelegte Beziehungen zwischen ihnen haben, die als Eins-zu-Viele-Eigentümer / Mitglied-Beziehungen definiert sind.

Festgelegte Beziehungen belegen Platz in den Datensätzen, die in den Datendateien gespeichert sind. Der Eigentümerdatensatz enthält Zeiger auf Mitgliedsdatensätze. Mitgliederdatensätze enthalten Zeiger auf den Eigentümerdatensatz sowie die nächsten und vorherigen Mitglieder. Dies ermöglicht eine schnelle Navigation zwischen den Mitgliedern eines Satzes und ist konzeptionell einer doppelt verknüpften Listendatenstruktur sehr ähnlich.

RDM verwendet das Set-Konstrukt, um relationale Equi-Joins darzustellen.

 

RDM verwendet das Set-Konstrukt, um relationale Equi-Joins darzustellen.

 

Modellierungsbeispiel

Wir werden ein einfaches Beispiel für eine Schule modellieren, in der wir Schüler und Klassen haben. Die Schüler nehmen an mehreren Klassen teil und die Klassen werden von mehreren Schülern besucht. Daher haben wir eine Viele-zu-Viele-Beziehung zwischen der Schülertabelle und der Klassentabelle. Im relationalen Modell wird eine Viele-zu-Viele-Beziehung unter Verwendung eines Schnittpunktdatensatzes modelliert.

 

Im relationalen Modell wird eine Viele-zu-Viele-Beziehung unter Verwendung eines Schnittpunktdatensatzes modelliert.

 

Wir werden die Datenbank mit der branchenüblichen SQL-Datendefinitionssprache (DDL) definieren.

Datenbankstudenten erstellen; Tabellenklasse erstellen (Primärschlüssel class_id char (5), Klassenname char (29)); Tabellenschüler erstellen (Name char (35) Primärschlüssel); create table intersect (Ganzzahl begin_date, Ganzzahl end_date, Status char (9), Integer current_grade, Zeichenklasse my_students char (5), Klasse my_classes char (35) referenziert student);

 

Die resultierende Datenbank wird haben

  • eine Klassentabelle mit einem Primärschlüssel-B + -Baumindex für das Feld class_id
  • eine Schülertabelle mit einem Primärschlüssel-B + -Baumindex im Namensfeld
  • eine Schnittpunkttabelle ohne Indexanforderungen
  • Eine Netzwerkmodellbeziehung zwischen der Klassentabelle und der Schnittpunkttabelle mit der Klasse als Eigentümer und dem Schnittpunkt als Mitglied
  • Eine Netzwerkmodellbeziehung zwischen der Schülertabelle und der Schnitttabelle mit dem Schüler als Eigentümer und dem Schnittpunkt als Mitglied

Beim Navigieren in der Beziehung zwischen Klasse und Schülertabelle kann der SQL-Optimierer die Netzwerkmodellsätze oder die Primärschlüsselspalten (die indiziert sind) verwenden.

Probieren Sie RDM kostenlos aus