Lösungsvorschlag - Technische Universität Kaiserslautern

Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
Prof. Dr.-Ing. Stefan Deßloch
AG Heterogene Informationssysteme
Fachbereich Informatik
Technische Universität Kaiserslautern
Übungsblatt 3
Für die Übungen in der Woche vom 19. bis 22. Mai 2015, Abgabe bis Mi., 13. Mai 9:00 Uhr
Aufgabe 1: Abbildung von ERM ins Relationenmodell (Pflichtabgabe)
Setzen Sie das folgende E/R-Diagramm in das Relationenmodell um. Modellieren Sie die Generalisierung mit dem Hausklassenmodell. Geben Sie die Relationen mit ihren Attributen an, unterstreichen
Sie die Primärschlüssel und nennen Sie die Fremdschlüsselbeziehungen, die zwischen den Relationen
existieren.
ANR
1
Abteilung
AName
1
Budget
PNR
Name
angestellt
GebDat
POrt
1
n
is-a
Personal
m
1
n
n
Projekt
Manager
1
leitet
mitarbeit
JNR
leitet
kontrolliert
Titel
n
Lösung:
Hausklassenmodell:
ABTEILUNG (ANR, AName, Budget)
PERSONAL (PNR, Name, GebDat, angestellt)
MANAGER (PNR, Name, GebDat, angestellt, Titel, leitet)
PROJEKT
(JNR, POrt, leitet, kontrolliert)
MITARBEIT (PNR, JNR)
PERSONAL.angestellt ist Fremdschlüssel zu ABTEILUNG.anr
MANAGER.angestellt ist Fremdschlüssel zu ABTEILUNG.anr
MANAGER.leitet ist Fremdschlüssel zu ABTEILUNG.anr
MITARBEIT.jnr ist Fremdschlüssel zu PROJEKT.jnr
1
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
PROJEKT.leitet kann nicht als Fremdschlüssel auf Personal definiert werden, da in der Personal-Relation die Manager nicht auftauchen. Würde man doch einen Fremdschlüssel definieren, hätte das zur
Folge, dass Manager keine Projekte leiten können, da in diesem Fall die referentielle Integrität verletzt
wäre. Gleiches gilt für PROJEKT.kontrolliert und MITARBEIT.pnr.
Bei dieser Modellierung ist die Eindeutigkeit eines Primärschlüssels innerhalb der Hierarchie nicht
garantiert, da Paare von Manager- und Personal-Tupeln existieren können, deren Primärschlüssel
identisch sind, die sich aber auf verschiedene Personen beziehen.
Aufgabe 2: Abbildung von ERM ins Relationenmodell - Fortsetzung
Setzten Sie das E/R-Diagramm aus Aufgabe 1 nun zusätzlich mit den drei weiteren Verfahren um:
Vertikale Partitionierung, Volle Redundanz, Hierarchierelation. Beachten Sie die daraus resultierenden Unterschiede insbesondere bei der Repräsentation von Relationships mit Hilfe von Fremdschlüsseln. Welche Garantien können für die Eindeutigkeit der Primärschlüssel in der Generalisierungshierarchie gemacht werden?
Geben Sie für jede Modellierung das oder die Tupel an, welche(s) für den Manager "Schmidt", PNR
4711, geboren am 3.3.1966, mit dem Titel "Verkaufsleiter", Leiter (und Angestellter) der Abteilung
55, im Relationenschema zu speichern ist/sind.
Lösung:
Hausklassenmodell:
Relationen: siehe Lösung zu Aufgabe 1
MANAGER (4711, "Schmidt", 3.3.1966, 55, "Verkaufsleiter", 55)
Vertikale Partitionierung:
ABTEILUNG (ANR, AName, Budget)
PERSONAL (PNR, Name, GebDat, angestellt)
MANAGER (PNR, Titel, leitet)
PROJEKT
(JNR, POrt, leitet, kontrolliert)
MITARBEIT (PNR, JNR)
PERSONAL.angestellt ist Fremdschlüssel zu ABTEILUNG.anr
MANAGER.pnr ist Fremdschlüssel zu PERSONAL.pnr (Stellt sicher, dass für jedes Manager-Tupel
auch ein Personal-Tupel mit den von Personal geerbten Attributen existiert)
MANAGER.leitet ist Fremdschlüssel zu ABTEILUNG.anr
PROJEKT.leitet ist Fremdschlüssel zu PERSONAL.pnr
PROJEKT.kontrolliert ist Fremdschlüssel zu PERSONAL.pnr
MITARBEIT.pnr ist Fremdschlüssel zu PERSONAL.pnr
MITARBEIT.jnr ist Fremdschlüssel zu PROJEKT.jnr
Durch den Fremdschlüssel zwischen Manager und Personal ist sichergestellt, dass zu jedem ManagerTupel auch ein Personal-Tupel existiert. Da keine Attribute redundant gespeichert werden, kommt es
nicht zu Konsistenzproblemen, ein Primärschlüssel identifiziert also eindeutig ein Personal-Tupel
(das eine Person beschreibt, die auch ein Manager sein kann).
PERSONAL (4711, "Schmidt", 3.3.1966, 55)
MANAGER (4711, "Verkaufsleiter", 55)
2
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
Volle Redundanz:
ABTEILUNG (ANR, AName, Budget)
PERSONAL (PNR, Name, GebDat, angestellt)
MANAGER (PNR, Name, GebDat, angestellt, Titel, leitet)
PROJEKT
(JNR, POrt, leitet, kontrolliert)
MITARBEIT (PNR, JNR)
PERSONAL.angestellt ist Fremdschlüssel zu ABTEILUNG.anr
MANAGER.angestellt ist Fremdschlüssel zu ABTEILUNG.anr
MANAGER.pnr ist Fremdschlüssel zu PERSONAL.pnr (stellt sicher, dass Tupel in der Relation für
die Superklassse existiert)
MANAGER.leitet ist Fremdschlüssel zu ABTEILUNG.anr
PROJEKT.leitet ist Fremdschlüssel zu PERSONAL.pnr
PROJEKT.kontrolliert ist Fremdschlüssel zu PERSONAL.pnr
MITARBEIT.pnr ist Fremdschlüssel zu PERSONAL.pnr
MITARBEIT.jnr ist Fremdschlüssel zu PROJEKT.jnr
Durch den Fremdschlüssel zwischen Manager und Personal ist sichergestellt, dass zu jedem ManagerTupel auch ein Personal-Tupel existiert. Es ist damit jedoch nicht sichergestellt, dass die weiteren Attribute des redundanten Personal-Tupels für einen Manager konsistent mit denen des Manager-Tupels
sind. Dadurch könnte eine Anfrage unterschiedliche Werte für diese Attribute eines Managers liefern,
wenn sie einmal an Manager und einmal an Personal gestellt wird.
PERSONAL (4711, "Schmidt", 3.3.1966, 55)
MANAGER (4711, "Schmidt", 3.3.1966, 55, "Verkaufsleiter", 55)
Hierarchierelation:
ABTEILUNG (ANR, AName, Budget)
PERSONAL (PNR, TT, Name, GebDat, angestellt, Titel, leitet)
PROJEKT
(JNR, POrt, leitet, kontrolliert)
MITARBEIT (PNR, JNR)
PERSONAL.angestellt ist Fremdschlüssel zu ABTEILUNG.anr
PERSONAL.leitet ist Fremdschlüssel zu ABTEILUNG.anr
PROJEKT.leitet ist Fremdschlüssel zu PERSONAL.pnr
PROJEKT.kontrolliert ist Fremdschlüssel zu PERSONAL.pnr
MITARBEIT.pnr ist Fremdschlüssel zu PERSONAL.pnr
MITARBEIT.jnr ist Fremdschlüssel zu PROJEKT.jnr
Bei dieser Modellierung ist die Eindeutigkeit eines Primärschlüssels innerhalb der Hierarchie garantiert.
PERSONAL (4711, "Manager", "Schmidt", 3.3.1966, 55, "Verkaufsleiter", 55)
3
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
Aufgabe 3: Multiple Choice – ER-Modell & Relationenmodell
Beim Aufgabetyp "Multiple Choice" ist von den (zumeist fünf) angegebenen Lösungen A bis E immer nur eine einzige anzukreuzen. Wenn mehrere einzelne Lösungen korrekt sind, existiert immer
eine Lösung, die diese korrekten Lösungen zusammenfasst, z.B.: Lösung D: "Antworten A und C".
In diesem Fall ist nur diese zusammenfassende Lösung anzukreuzen.
a) Welche Aussage bzgl. des Abstraktionskonzepts Generalisierung ist nicht korrekt?
A [ ] Die spezialisierende Klasse erbt alle Integritätsbedingungen der Superklasse.
B [ ] Alle Instanzen der Superklasse sind auch gleichzeitig Instanzen der Subklasse.
C [ ] Mittels Overloading kann das Verhalten von geerbten Methoden in einer Subklasse modifiziert werden.
D [ ] Default-Werte von Attributen dürfen geändert werden.
E [ ] Antworten B und C
Lösung:
Richtig ist E.
Zu B: Umgekehrt!
Zu C: Überschreiben ist tatsächlich erlaubt, aber der Mechanismus heißt Overriding. Overloading
bezeichnet mehrere Methoden gleichen Namens mit unterschiedlichen Parametern.
b) Was ist keine Grundregel des Relationenmodells?
A [ ] Relationen sind Mengen von Tupeln.
B [ ] Die Reihenfolge der Attribute ist relevant.
C [ ] Datenwerte in einer Relation sind atomar.
D [ ] Eine Relation muss einen Primärschlüssel aufweisen.
E [ ] Die Reihenfolge der Tupel ist nicht relevant.
Lösung:
Anzukreuzen ist B:
Die Reihenfolge der Attribute ist nicht relevant, sie sind durch ihren Namen innerhalb der Relation
eindeutig identifiziert.
c) Welche der Aussagen über Fremdschlüssel ist korrekt?
A [ ] Ein Fremdschlüssel muss sich auf den Primärschlüssel einer Relation beziehen.
B [ ] Fremdschlüssel beziehen sich nie auf die gleiche Relation in der sie definiert wurden.
C [ ] Fremdschlüssel können Nullwerte aufweisen.
D [ ] Zyklische Fremdschlüssel dürfen nicht auftreten.
E [ ] Ein Fremdschlüssel erlaubt die Abbildung von beliebigen Relationship-Mengen im Relationenmodell.
Lösung:
Anzukreuzen ist C:
Nullwerte in Fremdschlüsseln sind erlaubt wenn nicht explizit NOT NULL spezifiziert wurde und sie
nicht Teil eines Primärschlüssels sind. A ist falsch, da sich FS auch auf Schlüsselkandidaten beziehen
4
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
dürfen. E ist falsch, da zur Abbildung von n:m-Beziehungen zwei Fremdschlüssel und eine
Zwischentabelle erforderlich sind.
d) Welche Aussage über die verschiedenen Modellierungsmöglichkeiten der Generalisierung ist korrekt?
A [ ] Bei der vertikalen Paritionierung wird für jede Subklasse eine Relation erstellt, die nur die
in der Subklasse im Vergleich zu ihrer Superklasse neu hinzugekommen Attribute enthält.
B [ ] Das bei einer Umsetzung mittels Hausklassenmodell entstehende Relationenschema ist
identisch zu dem bei einer Umsetzung mit voller Redundanz. Lediglich die enthaltenen Tupel unterscheiden sich.
C [ ] Das Hausklassenmodell ermöglicht ein effizientes Auffinden aller Tupel einer Klasse.
D [ ] Vertikale Partitionierung erfordert i.A. Verbundoperationen für den Zugriff auf Instanzen.
E [ ] Die Abbildung mittels Hierarchietabelle benötigt den geringsten Speicherplatz.
Lösung:
D ist korrekt.
A ist falsch, da zusätzlich der Primärschlüssel mit übernommen wird.
B ist falsch, da sich die Schemata bzgl. ihrer Fremdschlüssel unterscheiden.
C ist falsch, da man für das Auffinden aller Tupel einer Klasse (d.h. inkl. Subklassen!) auch in den
Relationen der Subklassen suchen muss (Union-Operator).
E ist falsch, da erhöhte Speicherkosten für den Typidentifikator und Nullwerte für unzutreffende Attribute in einer Hierarchietabelle anfallen.
Aufgabe 4: Integritätssicherung bei der Hierarchierelation
Für die Type-Tag-Spalte bei der Hierarchierelation verwendet man oft einen Datentyp, der
"sprechende" Tags ermöglicht, i.A. eine Zeichenkette (also TT="Manager" statt TT=4). Wie können
Sie mit den ihnen bekannten Mitteln des Relationenmodells sicherstellen, dass Anwendungen, die
neue Tupel in die Hierarchierelation einfügen, nicht beliebige unsinnige Werte im Type-Tag eintragen, sondern nur die im Entwurf vorgesehenen Typen verwenden?
Lösung:
Zunächst sollte das Type-Tag keine Nullwerte erlauben (NOT NULL), um die Angabe eines Typs zu
erzwingen.
Um die ungültige Werte im Type-Tag zu verhindern, kann für eine Hierarchierelation zusätzlich eine
einspaltige Relationen (z.B. "ValidTypes") erstellt werden, deren Spalte "Types" den gleichen Datentyp wie die Type-Tag-Spalte der Hierarchie besitzt (und die natürlich Primärschlüssel der Relation
ist). Hier werden nun alle zulässigen Ausprägungen des Type-Tags eingefügt. In der Hierarchierelation definiert man nun einen Fremdschlüssel von der Type-Tag-Spalte auf die ValidTypes-Relation.
Die vom Fremdschlüssel garantierte referentielle Integrität stellt so sicher, dass jeder Wert im TypeTag eine Entsprechung in ValidTypes haben muss.
5
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
Aufgabe 5: ER-Modell-Umwandlung in ein Relationenmodell
Wandeln Sie das folgende ER-Modell eines Reisebüros in ein Relationenmodell um:
Straße
Name
Passwort
Nr
E-Mail
Stadt
Kürzel
Adresse
Land
n [0;*]
Kunde
PLZ
1 [0;*]
1 [1;*]
Vorname
Name
Nachname
Gebdat
liegt_in
liegt_in
liegt_in
n [1;1]
n [0;*]
m [0;*]
für
PLZ
m [1;*]
Region
Nummer
n [1;1]
Stadt
liegt_in
m [1;*]
n [0;*]
Name
Reise
Beschreibung
1 [0;*]
nach
Name
1 [0;*]
von
1 [1;*]
Teil_von
verbindet
n [1;1]
n [1;1]
laufendeNr
Abschnitt
n [1;1]
Datum
Zeit
mit
Name
Abfahrt
Kürzel
n [1;1]
Schiffsverbindung
Schiffsname
Unternehmen
von
Verbindung
Ankunft
Zeit
Telefonnr
1 [0;*]
1 [0;*]
E-Mail
is-a
Datum
Busverbindung
Flugverbindung
Starthaltestelle Endhaltestelle Startflughafen
Sitzplätze
Bahnverbindung
Zielflughafen Startbahnhof
Flugzeugtyp
Zielbahnhof
Zugtyp
LAND (Kürzel, Name)
REGION (Name)
REGION_LIEGT_IN_LAND (Region-Name, Land-Kürzel)
REGION_LIEGT_IN_REGION (Region-Name1, Region-Name2)
STADT (PLZ, Liegt-in-Land, Name)
STADT_LIEGT_IN_REGION (Stadt-PLZ, Stadt-Liegt-in-Land, Region-Name)
KUNDE (Email, Nachname, Vorname, Gebdat, Passwort, Plz, Stadt, Strasse, HausNr)
REISE (Nummer, Beschreibung, Fuer-Kunde)
ABSCHNITT (LaufendeNr, Teil-von, VonStadt, VonLand, NachStadt, NachLand,
Mit-Verbindung-Kürzel, Mit-Verbindung-Unternehmen)
6
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
UNTERNEHMEN (Name, Email)
TELEFON-UNTERNEHMEN (TelefonNr, Unternehmen-Name)
VERBINDUNG (Kürzel, Von-Unternehmen, Ankunft-Zeit, Ankunft-Datum, Abfahrt-Zeit, AbfahrtDatum)
SCHIFFSVERBINDUNG (Kürzel, Von-Unternehmen, Schiffsname)
BUSVERBINDUNG (Kürzel, Von-Unternehmen, Start, End, Sitzplätze)
FLUGVERBINDUNG (Kürzel, Von-Unternehmen, Start, Ziel, Flugzeugtyp)
ZUGVERBINDUNG (Kürzel, Von-Unternehmen, Start, Ziel, Zugtyp)
7
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !
Informationssysteme
SS 2015 – Lösungsvorschläge zu Übungsblatt 3
8
! Es kann durchaus vorkommen, dass die Lösungsvorschläge fehlerhaft oder unvollständig sind !