21.01.2014 Aufrufe

Einführung in die Informatik: Systeme und Anwendungen ...

Einführung in die Informatik: Systeme und Anwendungen ...

Einführung in die Informatik: Systeme und Anwendungen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!