| Home - Datenbank Theorie - Datenbank Design | www.sqldocu.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| zurück | vor | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Durch
Normalisierung
werden im Allgemeinen Informationen auf verschiedene
Relationen
aufgeteilt.
Oft exististiern nach der Normalisierung zwischen diesen Relationen Abhängigkeiten.
Ein Beispiel: In Tabelle captain sind alle Captains der Föderation abgespeichert, in Tabelle raumschiff alle Raumschiffe der Föderation.
Mit diesen Tabellen wissen wir welche Captains in der Föderation arbeiten und welche Raumschiffe die Föderation besitzt. Was wir nicht wissen: Welcher Captain befehligt welches Raumschiff! Es besteht somit eine Beziehung zwischen diesen Tabellen. Da jeder Captain genau ein Raumschiff befehligt und jedes Raumschiff von genau einem Captain befehligt wird ist dies eine 1:1 Beziehung. Eine Lösung ist z.B. den Primärschlüssel der Relation captain als Attribut der Relation raumschiff hinzu zufügen:
Man erkennt: James T. Kirk ist Captain des Raumschiffs NCC-1701, U.S.S. Enterprise.
Als Bespiel: Jeder Captain der Föderation hat genau ein Raumschiff, und jedes Raumschiff
hat genau einen Captain.
Eine 1:1 Beziehung kann in einer Relation abgespeichert werden:
Primärschlüssel von Relation captain: DienstNr Primärschlüssel von Relation raumschiff: RaumschiffNr Hinweis: In der Literatur wird zusätzlich die Beziehung 1:0 erwähnt. Diese Beziehung würde vorliegen, wenn wir zulassen würden, dass ein Captain kein Raumschiff besitzt (z.B Raumschiff wurde gerade zerstört). Der einzige Unterschied zur 1:1 Beziehuhg: Der Primärschlüssel der Relation captain könnte nicht mehr als Primärschlüssel der Relation raumschiff herangezogen werden. In unserem Bespiel ist das völlig irrelevant da das Attribute RaumschiffNr als Primärschlüssel fungiert.
Als Bespiel: Unter jedem Captain arbeiten n CrewMitglieder. Jedes Crewmitglied besitzt genau
einen Captain Eine 1:n Beziehung wird in 2 Relationen abgespeichert (durch Definition bereits impliziert)
Primärschlüssel von Relation captain: NrCaptain Primärschlüssel von Relation crewMitglied: NrCaptain und NrCrewMitglied ( zusammengesetzter Primärer Schlüssel) Hinweis: In der Relation crewMitglied ist ein zusammengesetzter Primärer Schlüssel nicht zwingend. Das Attribut NrCrewMitglied könnte z.B als Primärer Schlüssel dienen, wenn alle CrewMitglieder mit einer fortlaufenden Nummer abgespeicher werden würden (Mr. Spock->NrCrewMitglied=1, Dr. Mc Coy->NrCrewMitglied=2, 1.Offizier->NrCrewMitglied=3, usw.)
Als Bespiel: Jedes CrewMitglied kann m Shuttles eines Raumschiffes benutzen.
Jedes Shuttle kann von n CrewMitgliedern eines Raumschiffes benutzt werden.
Das klingt noch immer etwas theoretisch. Nehmen wir an das Raumschiff NCC-1701, U.S.S. Enterprise unter Kommando von James T. Kirk besitzt 3 Shuttles. Kirk hat Shuttle 1 und Shuttle 2 benutzt. Shuttle 1 wurde von Kirk, Mr. Spock, Dr. Mc Coy benutzt. Dies ist eine m:n Beziehung: Kirk hat m mal Shuttle 1 benutzt. Shuttle 1 wurde von n CrewMitgliedern benutzt. Um eine n:m Beziehung zwischen Entitäten in einem relationalen Datenbanksystem zu speichern, muss eine HilfsTabelle bebildet werden. In unserem Beispiel erhalten wir 3 Relationen:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||