Aufgabe 1 - Fachbereich 4: HTW Berlin
Aufgabe 1 - Fachbereich 4: HTW Berlin
Aufgabe 1 - Fachbereich 4: HTW Berlin
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Aufgabe</strong> 1: (30 Punkte)<br />
Konzeptuelles Modell.<br />
Erstellen Sie auf Basis des folgenden Anwendungsfalls ein<br />
Für die Finanzierung Ihres Studiums fangen Sie an, bei dem Oberschöneweider Lokalblatt<br />
„<strong>HTW</strong>-illu“ zu arbeiten. Primäre Zielgruppe der Wochenzeitung sind Studenten, die ihren<br />
phasenweise sehr lernintensiven und durch abstrakte Inhalte geprägten Alltag, mit ein wenig<br />
Klatsch und Tratsch aus dem Leben der sogenannten High Society versüßen möchten.<br />
Für die journalistische Arbeit müssen sie viel über die Welt der Prominenten wissen. Leider<br />
fällt es Ihnen schwer, sich die Beziehungsgeschichten und die damit verbundenen<br />
Skandalen zu merken, so dass sie sich entschließen, diese elektronisch zu erfassen und in<br />
einer Datenbank abzulegen. Im ersten Schritt analysieren sie ihren Anwendungsfall. Er ist<br />
durch folgende Zusammenhänge gekennzeichnet:<br />
Zentrales „Objekt“ ihres Anwendungsfalls sind sogenannte Prominente, die durch ihre<br />
Tätigkeit in mindestens einer Branche einen Bekanntheitsgrad in der Bevölkerung erreicht<br />
haben. Jede Branche hat eine eindeutige Bezeichnung wie z.B. Theater oder Sport.<br />
Jeder Prominente hat meist mehrere Wohnsitze, die durch eine Adresse bestehend aus<br />
Stadt und Straße mit Hausnummer beschrieben werden. Da Prominente auch<br />
Partnerschaften eingehen, können auch mehrere Prominente unter einer Adresse leben.<br />
Ein Prominenter hat einen Namen und ist entweder männlich oder weiblich. Um sie eindeutig<br />
identifizieren zu können, geben sie jedem Promi auch noch eine Nummer.<br />
Ein Prominenter kann mit beliebig vielen anderen Prominenten verheiratet (gewesen) sein,<br />
wobei sich diese Beziehung durch Anzahl der Kinder und ein evtl. vorhandenes<br />
Scheidungsdatum näher beschreiben lässt.<br />
Besonders interessant sind natürlich die durch die Prominenten verursachten Skandale. Sie<br />
treten auf, wenn ein Prominenter eine Affäre hat. Dabei lässt sich ein Prominenter mit einem<br />
anderen Prominenten ein und verursacht dabei genau einen Skandal, der eindeutig<br />
beschrieben werden kann.<br />
Affären können beliebig häufig und auch in beliebigen Konstellationen vorkommen. Sie sind<br />
jeweils durch ein Startdatum sowie ein evtl. bereits vorhandenes Enddatum geprägt.<br />
a) Erstellen Sie zu diesem Anwendungsfall ein Entity-Relationship-Diagramm. (20 Punkte)<br />
b) Weisen Sie den Beziehungen ihre Funktionalitäten und - sofern erforderlich - ihre Rollen<br />
zu. (10 Punkte)<br />
<strong>Aufgabe</strong> 2: (35 Punkte)<br />
Gegeben sei die folgende Datenbank zur Verwaltung aller Bestellungen eines Pizza-<br />
Services. Sie besteht aus den Tabellen Kunden, Bestellungen, bestellt, Speisekarte,<br />
Mitarbeiter. Die Tabelle Kunden und Mitarbeiter speichern personenbezogene Daten wie den<br />
Namen zu den einzelnen Entitäten. Alle Gerichte mit ihren Namen und ihrem Preis werden in<br />
der Tabelle Speisekarte geführt. Eine Bestellung besteht dann aus einem Kunden, einem<br />
Mitarbeiter, einem Bestelldatum, einer km-Anzahl (von Firma bis Kunde) sowie mehreren<br />
Artikeln aus der Tabelle Speisekarte. Die Zuordnung zwischen Bestellung und Speisekarte<br />
wird in der Tabelle bestellt geführt. Der Zusammenhang wird durch das folgende ER-<br />
Diagramm ausgedrückt:
Alle Tabellen enthalten einen eindeutigen Identifikator (ID) für die eindeutige Zuordnung<br />
eines Datensatzes. Die Datenbank ist mit dem folgenden Script aufgebaut:<br />
create table kunden(<br />
kundenid integer primary key,<br />
name VARCHAR(30) not null,<br />
vorname VARCHAR(20),<br />
strasse VARCHAR(50) not null,<br />
PLZ VARCHAR(5) not null,<br />
Stadt VARCHAR(20));<br />
create table mitarbeiter(<br />
mitarbeiterID integer primary key,<br />
Name VARCHAR(30),<br />
Vorname VARCHAR(20));<br />
create table Bestellungen(<br />
bestellid INTEGER primary key,<br />
kunde INTEGER references kunden(kundenid) on delete cascade,<br />
bearbeiter INTEGER references mitarbeiter(mitarbeiterid) on delete set null,<br />
tag DATE,<br />
km INTEGER);<br />
create table speisekarte (<br />
gerichtid integer primary key,<br />
gericht VARCHAR(20) unique,<br />
preis float);<br />
create table bestellt(<br />
bestellung INTEGER references bestellungen(bestellid) on delete cascade,<br />
artikel INTEGER references speisekarte(gerichtid) on delete cascade,<br />
anzahl int not null,<br />
primary key (bestellung, artikel));
a) Stellen Sie einen Operatorbaum auf für die Abfrage: Ermitteln Sie alle Mitarbeiter, die am<br />
02.02.2011 noch keine Bestellung bearbeitet haben. (11 Punkte)<br />
b) Ermitteln Sie die folgende SQL-Abfrage: Welche Kunden (vorname, name) wohnen in<br />
<strong>Berlin</strong>? (2 Punkte)<br />
c) Ermitteln Sie die folgende SQL-Abfrage: Welcher Mitarbeiter (*) hat die Bestellung mit<br />
der bestellid 5 bearbeitet? (4 Punkte)<br />
d) Ermitteln Sie die folgende SQL-Abfrage: Welche Kunden (kundenid, name, vorname)<br />
haben bereits eine ‘Pizza Diavolo‘ bestellt? (5 Punkte)<br />
e) Ermitteln Sie die folgende SQL-Abfrage: Wie viele Bestellungen (kundenid, name,<br />
vorname, anzahl) haben die einzelnen Kunden bereits in Auftrag gegeben? (6 Punkte)<br />
f) Ermitteln Sie die folgende SQL-Abfrage: Welcher Kunde (*) hat noch nichts am<br />
15.01.2011 bestellt? (6 Punkte)<br />
g) Ermitteln Sie die folgende SQL-Abfrage: Wie hoch ist der Betrag der einzelnen<br />
Bestellungen (bestellid, betrag)? (6 Punkte)<br />
<strong>Aufgabe</strong> 3: (4 Punkte) Beschreiben Sie, was passiert, wenn ein Kundendatensatz<br />
gelöscht wird. Wie wirkt sich das auf die Bestellungen aus? Gibt es weitere Abhängigkeiten,<br />
die Auswirkungen auf den Zustand der Datenbank haben?<br />
<strong>Aufgabe</strong> 4: (4 Punkte) Gegeben seien zwei Relationen R und V, wobei R k Elemente enthält<br />
und V n. Wie viele Elemente minimal und wie viele Elemente maximal sind enthalten in:<br />
a) R x V und<br />
b) R - V<br />
<strong>Aufgabe</strong> 5: (25 Punkte) Seit dem 14. Januar wird wieder Ihre Lieblingsserie „Ich bin ein Star<br />
– holt mich hier raus“ von RTL ausgestrahlt. In dieser Serie werden 10-11 B-Prominente für<br />
mehrere Wochen in ein Dschungelcamp eingeschlossen und müssen zahlreiche Ekel-<br />
Prüfungen zur Steigerung Ihres Beliebtheitsgrads bei den Fernsehzuschauern und zur<br />
Vergrößerung Ihrer Essensration im Camp bestehen.<br />
So mussten beispielsweise in der jetzigen Staffel die Teilnehmer Matthieu Carriere und<br />
Indira Weiß auf einem Zahnarztstuhl zahlreiche lebende Tiere wie Wasserspinnen,<br />
Rhinozeroskakalaken oder Blaue Flußkrebse für 20s in den Mund nehmen. Für jede<br />
bestandene Prüfung erhalten Sie einen Teilpunkt, wobei maximal 10 Punkte pro Prüfung<br />
erreicht werden können.<br />
Um sich die vielen Ekel-Prüfungen der einzelnen Staffeln merken zu können, legen Sie einen<br />
Karteikasten an, in dem Sie für jeden Dschungel-Camp-Teilnehmer eine Karte archivieren.<br />
Auf den Karten werden die folgenden Informationen aufgeschrieben:<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name des Teilnehmers,<br />
Staffel in der er teilnimmt,<br />
Kategorie des Teilnehmers (Sänger, Schauspieler, Sportler, etc.)<br />
Sieger der Staffel,<br />
Tag der Endausscheidung der Staffel und<br />
Prüfungen die der Teilnehmer durchlebt hat und Ergebnis der Prüfung.
Die Karten sehen folgendermaßen aus:<br />
Name Staffel Kategorie Sieger Endtermin Prüfung-Sterne<br />
Costa<br />
Cordales<br />
1 Sänger Costa<br />
Cordales<br />
20.01.2004 1. Schlangengrube, 7 Sterne<br />
2. Sternenfänger, 6 Sterne<br />
3. Spinnennetz, 8 Sterne<br />
Name Staffel Kategorie Sieger Endtermin Prüfung-Sterne<br />
Mathieu 5 Schauspieler<br />
28.01.2011 1. Dschungelzahnarzt, 10 Sterne<br />
Carrière<br />
Nach fünf Staffeln mit mittlerweile über 50 Teilnehmern, entscheiden Sie sich, die auf den<br />
Karteikarten gespeicherten Informationen mittels eines Datenbanksystems zu verwalten.<br />
Ein erster Entwurf der Datenbank sieht die folgende Tabellenstruktur vor:<br />
DschungelcampTeilnehmer: {name VARCHAR(30), staffel INT, kategorie VARCHAR(20),<br />
sieger VARCHAR(30), endtermin DATE, pruefung TEXT}<br />
Dabei gelten die folgenden Randbedingungen:<br />
<br />
<br />
<br />
<br />
Die Informationen, die in der Datenbank enthalten sind, entsprechen den Informationen<br />
des Karteikartensystems.<br />
Name eines Teilnehmers ist eindeutig, d.h. es gibt in allen Staffeln einen Teilnehmer mit<br />
einem bestimmten Namen nur einmal – es kann also jemand auch nur einmalig an einem<br />
Camp teilnehmen.<br />
Name einer Prüfung ist ebenfalls eindeutig, d.h. eine Prüfung wird immer nur einmal<br />
durchgeführt.<br />
Es können mehrere Personen an einer Prüfung teilnehmen – sie schreiben dann die<br />
Prüfung auf die Karten aller teilnehmenden.<br />
a) Beschreiben Sie, warum sich die Relation nicht in der Ersten Normalform befindet und<br />
überführen Sie diese dort hin. Wie sieht der Schlüssel in der ermittelten Relation aus? (5<br />
Punkte).<br />
b) Ermitteln Sie aus der Relation in der Ersten Normalform die Funktionalen<br />
Abhängigkeiten.<br />
c) Beschreiben Sie, welche Funktionalen Abhängigkeiten die Bedingungen der Zweiten und<br />
Dritten Normalform verletzen. Überführen Sie die Relation in die Dritte Normalform. Wie<br />
sehen die Schlüssel der einzelnen Relationen aus? (10 Punkte)