Übersicht

  => Unterschied zwischen konzeptuellem Modell & relationalem Modell
  => Was versteht man unter dem relationalem Datenbankmodell?
  => Beispiel-Datenbank
  => Aufgaben
 


Unterschied zwischen konzeptuellem Modell & relationalem Modell

Im Entity Relationship-Modell kann man die Miniwelt (unsere Projektwoche!) unabhängig von der späteren Umsetzung in eine Datenbank darstellen. Deshalb wird man in der nächsten Phase ein geeignetes Datenmodell auswählen und versuchen, das ER-Modell auf dieses Datenmodell abzubilden (klar?). Wir haben es da einfach, denn wir behandeln nur das relationale Datenbankmodell, aber es gibt da noch mehr (Netzwerkmodell, hierarisches Modell, objektorientiertes Modell). Man bezeichnet diese Phase der Umsetzung des konzeptuellen Entwurfs in ein geeignetes Datenmodell auch als logischen Entwurf.

<<<

Was versteht man unter dem relationalem Datenbankmodell?

Grundlegend für das relationale Datenbankmodell ist der Begriff der (Überraschung!) Relation. Wie kann man sich diesen Begriff vorstellen? Schauen wir kurz in unsere Projektwochen-Datenbank (Tabelle sar_wahl):

Ein Datensatz hat hier in jeder Spalte einen bestimmten Wert, und man kann jetzt nach den möglichen Werten in der Spalte Vorname oder in der Spalte Klasse fragen. Diese möglichen Werte nennt man in der Mathematik bei einer Funktion auch Wertebereich, nur haben wir jetzt nicht einen Wertebereich, sondern ziemlich viele. Genauer: wir haben ebensoviele Wertebereiche wie Spalten, nämlich sieben (in der Abbildung, in der Datenbank sind es sogar neun!). Das heisst: jeder Datensatz wählt aus den Wertebereichen der jeweiligen Spalten gerade einen Wert aus, und die Kombination aus allen diesen Werten zusammen ergibt dann gerade den Datensatz. Und jetzt wirds mathematisch:

Statt Wertebereich sagen wir Menge, und statt Kombination sprechen wir von einem Produkt, genauer einem sogenannten kartesischen Produkt, das ist der Versuch, Mengen "miteinander zu multiplizieren" (salopp gesagt). Eine Relation ist dann eine mögliche Teilmenge aus diesem kartesischen Produkt, und die Elemente in unserer Teilmenge sind nichts anderes als unsere Datensätze. Datensätze heißen im relationalem Datenbankmodell n-Tupel, wir sehen also in der Abbildung oben ein 7-Tupel, und man nennt die Relation auch eine siebenstellige Relation, allgemein eine n-stellige Relation, n bezeichnet man als den Grad der Relation (n entspricht den n Spalten!). Das kann man auch mathematisch exakt schreiben: Sei

dann ist eine Relation R eine Teilmenge von W1 x W2 x W3 x W4 x W5 x W6 x W7 (das x steht für das kartesische Produkt), kurz:

R Teilmenge W1 x W2 x W3 x W4 x W5 x W6 x W7

Statt jedoch unübersichtliche Mengen zu benutzen, wählt man lieber die Darstellung in Tabellen. Den Kopf dieser Tabelle, der in Access die Feldnamen enthält, bezeichnet man im relationalem Modell als Relationenschema, und die einzelnen Feldnamen nennt man Attribute (siehe Seite 38 im Datenbank-Reader, Abbildung 3-1). Man schreibt ein Relationenschema folgendermaßen:

sar_wahl(Nr,Vorname,Name,Geschlecht, Klasse, Wahl Nr 1, Wahl Nr 2)

wobei der Primärschlüssel unterstrichen wird. Allgemein sieht das so aus:

R(A1 x A2 x . . . x An)


ACHTUNG: Auch wenn die Begriffe Beziehung im ER-Modell und Relation im relationalem Modell ähnlich klingen, sie sind es nicht! Im ER-Modell gibt es Beziehungen zwischen Entitäten (, die manche auch als Relationen bezeichnen . . .), im relationalen Modell dagegen entspricht einer Relation eine Entity-Klasse aus dem ER-Modell. Wir werden später Beziehungen ebenfalls auf Relationen abbilden, ähnlich wie wir das beim letzten Mal angedeutet haben.

<<<

Beispiel-Datenbank

"prowo.mdb" in deinem Verzeichnis!

<<<

Aufgaben

  1. Erstelle ein vollständiges Relationenschema der ProWo-Datenbank in ihrer Urversion.

  2. Lies die Seiten 81-83 im Datenbank-Reader. (Online-Version als pdf-Datei)

  3. Dein ER-Modell der ProWo-Datenbank sollte anders aussehen als die ursprüngliche Datenbank (Warum?), also entwerfe ein zweites Relationenschema. Vergleich mit Aufgabe 1?

<<<
    W. Spiegel, E-Mail: Kontaktformular