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

Beneath the relational model in an RDM database is a network model, where all data is defined in terms of record types and fields. Fields may be indexed and record types may have set relationships between them, which are defined as one-to-many, owner/member relationships. Set relationships occupy space in the records, stored in the data files. The owner record will contain pointers to member records. Member records will contain pointers to the owner record, plus the next and previous members. This allows for quick navigation among the members of a set and is conceptually very similar to a doubly linked list data structure. RDM uses the set construct to represent relational equi-joins.

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.

The resulting database will have:

				
					create database students;
create table class (
    class_id char(5) primary key,
    class_name char(29)
);
create table student (
    name char(35) primary key
);
create table intersect (
    begin_date integer,
    end_date integer,
    status char(9),
    current_grade integer,
    my_students char(5) references class,
    my_classes char(35) references student
);
				
			

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.

Get started with Raima Database Manager today

Try Raima Database Manager for free today and see how screaming fast data management can get you to market on schedule and under budget.