09.11.2012 Aufrufe

Skript Datenbanken I - Praktische Informatik Universität Kassel

Skript Datenbanken I - Praktische Informatik Universität Kassel

Skript Datenbanken I - Praktische Informatik Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

186<br />

Beispiel 8–4 Personen-Lehrer-Klassenlehrer<br />

<strong>Datenbanken</strong> I<br />

In einem sprachlich an O 2 angenäherten Modell sei eine Klasse Personen<br />

wie folgt eingeführt.<br />

class Personen<br />

type tuple(<br />

PNr: integer,<br />

Name: tuple(<br />

Vorname: string,<br />

Nachname: string),<br />

Adresse: tuple(PLZ: integer,<br />

Ort: string,<br />

StrasseundNr: string),<br />

Geburtsdatum: date)<br />

Die Klassen Lehrer und Schüler erweitern wir um die Attribute<br />

Einstelldatum und betreute Schulklassen, bzw. Schulklasse<br />

zu der ein Schüler gehört. Man beachte die inherits-Klausel<br />

für die isa-Beziehung. Ferner verwendet Schüler das objektwertige Attribut<br />

Klassenlehrer.<br />

Für Lehrer wird zusätzlich die Methode UStunden vereinbart, deren<br />

Rückgabewert die Anzahl der geleisteten Unterrichtswochenstunden ist.<br />

Hier fällt auf, daß in der Definition nur die Methodenschnittstelle angegeben<br />

wird, der Rumpf folgt weiter unten.<br />

class Lehrer inherits Personen<br />

type tuple(Einstelldatum: date,<br />

Schulklassen: set(tuple(SKlasse: string,<br />

AnzahlStunden: integer)))<br />

method UStunden: integer<br />

class Schüler inherits Personen<br />

type tuple(Klasse: string,<br />

Klassenlehrer: Lehrer)<br />

method body UStunden: integer in class Lehrer<br />

{int S;<br />

S = 0;<br />

for (t in self � Schulklassen)<br />

S = S + t�AnzahlStunden;<br />

return(S)<br />

}

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!