Database Reference
In-Depth Information
E) Abfrage: Liste von allen besuchten Kursen von Person X
mit Kursnummer, Kursbezeichnung, Kursdatum, Personal-
nummer, Kursleitername und Firma.
Diese Beispiele zeigen typische Probleme, welche beim Daten-
bankbetrieb auftreten können. Die Transaktionen A bis E wer-
den nun nacheinander diskutiert.
Transaktion A gestaltet sich am einfachsten, weil die Tabelle
„Kursthemen“ nur mit einer Tabelle verknüpft ist. Die 1-mc-
Beziehung bedeutet außerdem, dass man Tupel (Datensätze)
einfügen und nachführen kann, ohne dass dies direkte Auswir-
kungen auf die Tabelle „Kurse“ hat, weil solch ein Tupel nicht
mit anderen Tupeln assoziiert sein muss. Hingegen darf in der
Tabelle „Kursthemen“ nur dann ein Tupel gelöscht werden,
wenn in der Tabelle „Kurse“ keine Tupel mehr mit dem zu lö-
schenden Tupel assoziiert sind. Konkret bedeutet dies, dass ein
Kursthema erst dann gelöscht werden darf, wenn keine Kurse
mehr zu diesem Thema existieren. Andererseits dürfen wir je-
derzeit neue Kursthemen eingeben. Solche Bedingungen müs-
sen speziell programmiert werden, sofern die Datenbank dies
nicht direkt unterstützt. Beim Einfügen eines Tupels besteht die
Möglichkeit, den ID-Schlüsselwert selbst zu vergeben oder vom
System vergeben zu lassen. Es gehört somit auch zu einer
Transaktion, ID-Schlüsselwerte zu generieren bzw. auf Eindeu-
tigkeit zu prüfen.
Transaktion B gestaltet sich schon schwieriger. Man kann ei-
nen Kurs erst dann eingeben, wenn das entsprechende Kurs-
thema in der Tabelle „Kursthemen“ schon existiert, weil man ja
beim Attribut „KTNr“ nach dem Fremdschlüsselwert gefragt
wird. Noch komplizierter wird die Sache, weil zwischen den
Tabellen „Kurse“ und „Kurskontrolle“ eine 1-m-Beziehung be-
steht, welche uns dazu zwingt, für jeden neuen Kurs sofort an-
zugeben, welche Funktionen diesen Kurs besuchen dürfen.
Dies ist aber nur möglich, wenn bereits alle Funktionen einge-
geben worden sind. Eine Funktion können wir aber nur einge-
ben, wenn mindestens eine Person dieser Funktion angehört.
Unsere Transaktion zieht also einen richtigen Rattenschwanz
an Bedingungen mit sich. Man erkennt aus diesem Beispiel
schon, dass es wichtig ist, welche Daten man zuerst eingibt.
Diese Basisdaten werden auch Stammdaten genannt. In unse-
rem Falle wäre es am sinnvollsten, mit der Tabelle „Personen“
anzufangen, weil dann nur noch die Funktionen gleichzeitig
Search WWH ::




Custom Search