Database Reference
In-Depth Information
definiert werden müssen. Doch zurück zur Tabelle „Kurse“. In
der Praxis würden wir bei der Eingabe eines neuen Kurses ne-
ben den kursspezifischen Daten auch nach der Funktions-
nummer gefragt. Falls diese existiert, wird in der Tabelle
„Kurskontrolle“ ein entsprechendes Tupel generiert. An-
dernfalls wird die Transaktion abgebrochen mit dem Hinweis,
zuerst die Funktion zu definieren.
Bei der
Transaktion C
erübrigt sich das Einfügen eines neuen
Tupels, weil dies bei der Kurseingabe automatisch geschehen
muss. Für das Löschen eines Tupels ergeben sich keine Ein-
schränkungen. Das Nachführen eines Tupels ist hingegen ver-
boten, weil dafür der ID-Schlüsselwert geändert werden müsste
(andere Attribute existieren ja nicht), welcher bei dieser Tabelle
aus den Fremdschlüsseln „FNr“ und „KNr“ gebildet wird. Ge-
mäß Definition des ID-Schlüssels darf ein ID-Schlüsselwert aber
nie geändert werden. Programmtechnisch gesehen müssten bei
einer Änderung eines bestehenden ID-Schlüsselwertes sämtli-
che Tabellen nachgeführt werden, in denen dieser ID-Schlüssel
als Fremdschlüsselattribut vorkommt.
Bei der
Transaktion D
tritt das Problem auf, dass die Zugehö-
rigkeit des neuen Kursleiters zur Entitätsmenge „Externe Kurs-
leiter“ bzw. „Interne Kursleiter“ erst bekannt ist, wenn im Attri-
but „Status“ der Tabelle „Kursleiter“ ein 'I' oder 'E' eingege-
ben wird. Falls ein 'I' eingegeben wird, muss das System au-
tomatisch nach der Personalnummer und der Kurserfahrung
fragen. Im anderen Falle werden Name, Vorname und Firma
benötigt. Vor der Mutation muss aber noch sichergestellt wer-
den, dass es diesen Kursleiter nicht schon gibt. Es sind wäh-
rend dieser Transaktion also diverse Abklärungen zu treffen,
welche grösstenteils programmiert werden müssen. Ausserdem
wäre es einfacher, wenn man die internen Kursleiter in der Ta-
belle „Personen“ beispielsweise mit einem 'X' markieren
könnte und diese dann automatisch in die Tabelle „Interne
Kursleiter“ eingefügt würden. Auch hier müsste dann der ID-
Schlüsselwert vom System automatisch vergeben werden.
Die
Transaktion E
scheint einfach zu sein, weil bei einer Ab-
frage normalerweise keine Daten verändert werden und somit
keine Konsistenzprobleme auftreten. In unserem Beispiel soll
eine Liste der besuchten Kurse einer Person X erstellt werden,
welche den Aufbau gemäss Bild 3.72 besitzt.