06.11.2013 Aufrufe

Aufgabe 1 - Fachbereich 4: HTW Berlin

Aufgabe 1 - Fachbereich 4: HTW Berlin

Aufgabe 1 - Fachbereich 4: HTW Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

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)

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!