Einführung in die Informatik: Systeme und Anwendungen ...
Einführung in die Informatik: Systeme und Anwendungen ...
Einführung in die Informatik: Systeme und Anwendungen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Ludwig-Maximilians-Universität München München, 29.05.2013<br />
Institut für <strong>Informatik</strong><br />
PD. Dr. Peer Kröger<br />
Johannes Niedermayer<br />
E<strong>in</strong>führung <strong>in</strong> <strong>die</strong> <strong>Informatik</strong>: <strong>Systeme</strong> <strong>und</strong> <strong>Anwendungen</strong><br />
SS 2013<br />
Zentralübung Z3<br />
Aufgabe Z3-1<br />
Relationales Modell<br />
E<strong>in</strong> Großhandelsunternehmen bezieht Waren von verschiedenen Lieferanten zu bestimmten Preisen.<br />
Jeder Lieferant besitzt e<strong>in</strong>e Adresse. Jede bezogene Ware wird von genau e<strong>in</strong>em Lieferanten geliefert<br />
(nicht von mehreren). Die Informationen über <strong>die</strong> gelieferten Waren werden <strong>in</strong> e<strong>in</strong>er Tabelle mit den<br />
Attributen Lieferant, Adresse, Ware <strong>und</strong> Preis gespeichert. Die Tabelle habe folgenden Inhalt:<br />
Lieferant Adresse Ware Preis<br />
Albrecht Industriestr. 108 Rußfilter 36.20<br />
Albrecht Industriestr. 108 Schutzbrillen 61.00<br />
Huber Turmstr. 12 Schrauben 75.60<br />
Huber Turmstr. 12 Dübel 35.10<br />
Huber Turmstr. 12 Nägel 18.60<br />
Meier Tal 48 Spanplatten 108.00<br />
Lösungsvorschlag:<br />
Wiederholung: Relationales Modell<br />
• Relationen als ausschließliches Strukturelement<br />
– Darstellung der Relationen durch Tabellen<br />
– Datensätze = Zeilen der Tabelle (Tupel)<br />
– Merkmale des Objekts = Spalten der Tabelle (Attribute)<br />
• Def<strong>in</strong>ition Schlüssel<br />
Teilmenge S der Attribute e<strong>in</strong>es Relationenschemas R heißt Schlüssel, falls gilt<br />
(a) E<strong>in</strong>deutigkeit: Ke<strong>in</strong>e Ausprägung von R kann zwei verschiedene Tupel enthalten, <strong>die</strong> sich<br />
<strong>in</strong> allen Attributen von S gleichen<br />
(b) M<strong>in</strong>imalität: Ke<strong>in</strong>e echte Teilmenge von S erfüllt bereits Bed<strong>in</strong>gung (1)<br />
E<strong>in</strong>deutigkeit bezieht sich immer auf <strong>die</strong> Semantik der realen Welt. Schlüssel muss für jede<br />
Ausprägung e<strong>in</strong>deutig se<strong>in</strong>.<br />
– Schlüssel können zusammengesetzt se<strong>in</strong>.<br />
– mehrere mögliche Schlüssel: Schlüsselkandidaten<br />
1
(a) Welcher Nachteil ergibt sich, wenn <strong>die</strong> Tabelle nach obigem Schema gespeichert wird?<br />
Lösungsvorschlag:<br />
Für jede Ware wird <strong>die</strong> Adresse des Lieferanten gespeichert, d.h. <strong>die</strong> Adresse e<strong>in</strong>es Lieferanten<br />
ist u.U. mehrfach <strong>in</strong> der Datenbank enthalten (Red<strong>und</strong>anz).<br />
(b) Der Lieferant mit dem Namen Huber zieht <strong>in</strong> <strong>die</strong> Badstr. 34 um. Was ist beim Aktualisieren der<br />
Tabelle zu beachten? Welches Problem ergibt sich sonst?<br />
Lösungsvorschlag:<br />
Die Adresse ist <strong>in</strong> jedem betroffenen Tupel zu ändern, ansonsten erhält man e<strong>in</strong>en <strong>in</strong>konsistenten<br />
Datenbank-Zustand (Änderungsanomalie).<br />
(c) Das Großhandelsunternehmen nimmt Spanplatten aus se<strong>in</strong>em Sortiment. Da Lieferant Meier<br />
nun ke<strong>in</strong>e Spanplatten mehr liefern soll, wird <strong>die</strong> entsprechende Zeile aus der Tabelle entfernt.<br />
Welcher Nachteil entsteht dadurch?<br />
Lösungsvorschlag:<br />
Beim Löschen der letzten Ware e<strong>in</strong>es Lieferanten geht auch dessen Adresse verloren. Man kann<br />
<strong>die</strong> Adresse e<strong>in</strong>es Lieferanten nicht ohne e<strong>in</strong>e Ware <strong>in</strong> der Datenbank halten (Entfernungsanomalie).<br />
(d) Welches Problem ergibt sich, wenn e<strong>in</strong> neuer Lieferant mit Adresse <strong>in</strong> <strong>die</strong> Tabelle e<strong>in</strong>gefügt<br />
werden soll, der noch ke<strong>in</strong>e Ware liefert?<br />
Lösungsvorschlag:<br />
Zum E<strong>in</strong>fügen e<strong>in</strong>es neuen Lieferanten (Name, Adresse) benötigt man auch e<strong>in</strong>e Ware, d.h. man<br />
kann ke<strong>in</strong>e Lieferantenadresse ohne e<strong>in</strong>e Ware e<strong>in</strong>fügen (E<strong>in</strong>fügeanomalie).<br />
(e) Spalten Sie obige Tabelle <strong>in</strong> m<strong>in</strong>destens zwei Tabellen auf, so dass <strong>die</strong> <strong>in</strong> (a) bis (d) diskutierten<br />
Probleme <strong>und</strong> Nachteile vermieden werden.<br />
Lösungsvorschlag:<br />
LieferantAdresse (Lieferant, Adresse)<br />
Lieferant<br />
Adresse<br />
Albrecht Industriestr. 108<br />
Huber Turmstr. 12<br />
Meier Tal 48<br />
Lieferung (Ware, Preis, Lieferant)<br />
Ware Preis Lieferant<br />
Rußfilter 36.20 Albrecht<br />
Schutzbrillen 61.00 Albrecht<br />
Schrauben 75.60 Huber<br />
Dübel 35.10 Huber<br />
Nägel 18.60 Huber<br />
Spanplatten 108.00 Meier<br />
Aufgabe Z3-2<br />
Relationales Modell<br />
In vielen Datenbankanwendungen müssen personenbezogene Daten, z.B. Name, Adresse <strong>und</strong> Geburtsdaten<br />
e<strong>in</strong>er Person, gespeichert werden. Besonderer Bedeutung kommt dabei der Anforderung zu,<br />
jeden gespeicherten Datensatz e<strong>in</strong>deutig e<strong>in</strong>er bestimmten Person zuordnen zu können.<br />
Gegeben sei <strong>die</strong> Relation Person (Vorname, Nachname, Adresse, Geburtsdatum, Geburtsort).<br />
(a) Reichen <strong>die</strong> gegebenen Attribute aus, um e<strong>in</strong>en Schlüssel der Relation Person zu bestimmen?<br />
Untersuchen Sie für <strong>die</strong> folgenden Attributmengen, <strong>in</strong>wieweit sie als Schlüssel <strong>in</strong> Frage kommen.<br />
Geben Sie gegebenenfalls Gegenbeispiele an.<br />
2
(i) {Vorname, Nachname}<br />
(ii) {Vorname, Nachname, Geburtsdatum}<br />
(iii) {Vorname, Nachname, Adresse}<br />
(iv) {Vorname, Nachname, Adresse, Geburtsort}<br />
(v) {Vorname, Nachname, Adresse, Geburtsdatum}<br />
(vi) {Vorname, Nachname, Adresse, Geburtsdatum, Geburtsort}<br />
Lösungsvorschlag:<br />
(i) 2x Sab<strong>in</strong>e Müller<br />
(ii) 2x Sab<strong>in</strong>e Müller mit gleichem Geburtsdatum<br />
(iii) 2x Georg Busch (junior <strong>und</strong> senior) wohnen im selben Haus<br />
(iv) wie (iii) <strong>und</strong> im selben Ort geboren<br />
(v) wie (ii) <strong>und</strong> wohnen im selben Haus<br />
(vi) wie (v) <strong>und</strong> im selben Ort geboren<br />
(b) Um welche Attribute, <strong>die</strong> e<strong>in</strong>e Person e<strong>in</strong>deutig identifizieren, könnte man <strong>die</strong> Relation ergänzen?<br />
Lösungsvorschlag:<br />
Natürliche“ Schlüssel, biometrische Merkmale wie:<br />
”<br />
• F<strong>in</strong>gerabdruck<br />
• Iris- oder Ret<strong>in</strong>a-Merkmale<br />
• Stimmprofil<br />
(c) Wie werden Personen üblicherweise <strong>in</strong> e<strong>in</strong>er Datenbank identifiziert?<br />
Lösungsvorschlag:<br />
Künstliche Schlüssel“:<br />
”<br />
• K<strong>und</strong>ennummer<br />
• Personalnummer<br />
• Matrikelnummer<br />
• Sozialversicherungsnummer<br />
• Passnummer<br />
3