278 KB - Fachbereich 4: HTW Berlin
278 KB - Fachbereich 4: HTW Berlin
278 KB - 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.
Aufgabe 1: Erstellen Sie auf Basis des folgenden Anwendungsfalls ein Konzeptuelles Modell.<br />
Sie lesen in der Zeitung, dass die Firma Facebook – nach Meinung der Investment Banker<br />
von Goldman und Sachs - mittlerweile 50Mrd. Dollar wert ist. Völlig geblendet von dieser<br />
horrenden Summe entschließen Sie sich, das Geschäftskonzept der Firma Facebook zu<br />
kopieren und Ihr eigenes Web-Portal mit dem Namen www.finde-alle-coolen-Typen.de zu<br />
eröffnen.<br />
Wie bei Facebook soll es mit Ihrem Portal möglich sein, ein soziales Netzwerk mit dem<br />
Computer aufzubauen. Jeder Benutzer hat dabei ein eigenes Profil auf dem er sich vorstellt<br />
und persönliche Bilder ablegt. Ist ein Profil erstellt, so kann sich ein Nutzer über<br />
Freundschaftsanfragen mit anderen Nutzern vernetzen. Dabei kann er angeben, wie gut er –<br />
auf einer Skala von 0 bis 10 - mit jemandem befreundet ist. Der Freundschaftsgrad hat<br />
Auswirkungen darauf, ob Freunde die eingestellten Fotos sehen dürfen oder nicht.<br />
Sie planen, allen Nutzern Ihr Web-Portal kostenfrei zur Verfügung zu stellen. Finanziert<br />
werden soll es über das Versenden von Werbeemails. Zu diesem Zweck muss jeder<br />
Benutzer angeben, wie viel er verdient, welchen Freizeitbeschäftigungen er gerne nachgeht<br />
und welche Marken er bei seinen Klamotten vorzieht.<br />
Da Sie fleißig an der Vorlesung Datenbanken an der <strong>HTW</strong> teilgenommen haben,<br />
entscheiden Sie sich zur Speicherung aller Informationen ein Datenbank-System<br />
einzusetzen. Im ersten Schritt führen Sie dafür eine detaillierte Analyse des Anwendungsfalls<br />
durch und kommen zu den folgenden Zusammenhängen, die in einem Konzeptuellen Modell<br />
berücksichtigt werden müssen.<br />
Jeder Benutzer soll über eine E-Mail-Adresse identifiziert werden, da sie weltweit eindeutig<br />
ist und über sie Werbe-Emails versendet werden können. Weiter muss zu jedem Benutzer<br />
sein Name, sein Alter, sein Gehalt und sein Vorstellungstext gespeichert werden. Benutzer<br />
können dann Freundschaftsbeziehungen aufbauen. Gespeichert wird dabei wer mit wem<br />
befreundet ist und für wie gut jeder einzelne die Freundschaft hält (Kriterium für die<br />
Bildfreigabe).<br />
Zu jedem Benutzer können beliebig viele Bilder gespeichert werden. Ein Bild wird über eine<br />
URL (Textfeld) identifiziert, mit dem es von einem Webserver geladen werden kann. Weiter<br />
wird zu jedem Bild gespeichert, welchen Freundschaftsgrad ein Freund haben muss, um es<br />
sich anschauen zu dürfen.<br />
Jeder Nutzer kann beliebig viele Freizeitbeschäftigungen mögen. Eine Freizeitbeschäftigung<br />
hat jeweils ein Titel, über die sie identifiziert wird und eine Beschreibung, in der weitere<br />
Informationen gespeichert werden können. Eine Freizeitbeschäftigung kann natürlich von<br />
beliebig vielen Freunden gemocht werden.<br />
Weiter werden Vorlieben von Freunden für Klamottenmarken gespeichert. Eine<br />
Klamottenmarke wird eindeutig über Ihren Markenname identifiziert und gehört zu einem<br />
Preissegment (billig,..., teuer). Jeder Freund kann Kleidungsstücke mehrerer Marken tragen<br />
– umgekehrt ebenfalls.<br />
a) Erstellen Sie zu diesem Anwendungsfall ein Entity-Relationship-Diagramm.<br />
b) Weisen Sie den Beziehungen ihre Funktionalitäten und - sofern erforderlich - ihre Rollen<br />
zu.
Aufgabe 2:<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:<br />
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,
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));<br />
a) Stellen Sie einen Operatorbaum auf für die Abfrage: Ermitteln Sie alle Mitarbeiter<br />
(Namen), die am 02.02.2011 und am 03.02.2001 eine Bestellung bearbeitet haben.
) Ermitteln Sie die folgende SQL-Abfrage: Welche Gerichte (gerichtid, gericht) kosten<br />
weniger als 10€?<br />
c) Ermitteln Sie die folgende SQL-Abfrage: Welcher Kunde (*) hat die Bestellung mit der<br />
bestellid 4 aufgegeben?<br />
d) Ermitteln Sie die folgende SQL-Abfrage: Welcher Mitarbeiter (mitarbeiterid, name,<br />
vorname) hat eine Bestellung bearbeitet bei der eine ‘Pizza Diavolo‘ vorkam?<br />
e) Ermitteln Sie die folgende SQL-Abfrage: Wie viele Bestellungen (mitarbeiterid, name,<br />
vorname, anzahl) haben die einzelnen Mitarbeiter bearbeitet?<br />
f) Ermitteln Sie die folgende SQL-Abfrage: Welcher Mitarbeiter (*) hat am 15.01.2011 noch<br />
keine Bestellung bearbeitet?<br />
g) Ermitteln Sie die folgende SQL-Abfrage: Wie hoch ist die maximale Anzahl von<br />
Bestellungen, die ein Mitarbeiter an genau einem Tag bearbeitet hat?<br />
Aufgabe 3: Erstellen Sie eine Sicht gericht_bestellung, die alle Gerichte (gerichtid, gericht,<br />
preis) mit den zugehörigen Bestellungen (bestellid) in denen es vorkommt. Ist die Sicht in<br />
SQL updatefähig, theoretisch updatefähig oder gar nicht updatefähig?
Aufgabe 4: Gegeben seien zwei Relationen R und V, wobei R k Elemente enthält und V n.<br />
Wie viele Elemente minimal und wie viele Elemente maximal sind enthalten in:<br />
a) R U V und<br />
b) R ∩ V<br />
Aufgabe 5: Nach dem Ende ihres Studiums erfüllen Sie sich einen Traum und schaffen sich<br />
Ihren ersten Hund an, eine riesige Deutsche Dogge. Da sich die Erziehung des Hundes als<br />
schwierig erweist, suchen Sie Kontakt zu Gleichgesinnten und treten in den Hundeverein<br />
„Zum Goldenen Bello“ ein.<br />
In dem Verein versammeln sich viele ambitionierte Hundefreunde, die Ihre Geschöpfe nicht<br />
nur der Tierliebe wegen haben sondern mit ihnen auch zu den unterschiedlichsten<br />
Wettbewerben antreten. Manche Wettbewerbe sind auf Schönheit und Rassenreinheit<br />
ausgerichtet, manche auf Schnelligkeit (Hunderennen), manche aber auch auf die<br />
Kampfkraft.<br />
Da in einem deutschen Verein natürlich alles sorgfältig dokumentiert wird, muss jedes<br />
Mitglied des Vereins eine Karteikarte ausfüllen, auf der alle Informationen über den Hund,<br />
die Rasse und die teilgenommenen Wettkämpfe aufgeschrieben werden.<br />
Auf den Karten werden die folgenden Informationen abgebildet:<br />
<br />
<br />
<br />
<br />
<br />
<br />
Name des Hundehalters/Vereinsmitglied,<br />
Name des Hundes,<br />
Rasse des Hundes,<br />
Geschlecht des Hundes<br />
Wettkampf an dem er teilnimmt und<br />
welche Platzierung er in dem Wettkampf erreicht.
Die Karten sehen folgendermaßen aus:<br />
Halter Name Rasse Herkunftsland Geschlecht Wettkampf/Platzierung<br />
Katinka<br />
Klops<br />
Karl-<br />
Theodor<br />
Pudel Frankreich M 1. Pudel2010, 3.Platz<br />
2. Pudel2009, 1.Platz<br />
Stephanie Pudel Frankreich w 1. Pudel2010, 2.Platz<br />
Halter Name Rasse Herkunftsland Geschlecht Wettkampf/Platzierung<br />
Hans<br />
Stahl<br />
Killer Bullterrier<br />
Großbritanien M 1. FassDasKaninchen2009,<br />
3.Platz<br />
2. NoRules2010, 1.Platz<br />
Nachdem der Verein mit Ihrem Eintritt jetzt zweihundert Mitglieder hat, wird durch den<br />
Vorstand entschieden, die auf den Karteikarten gespeicherten Informationen mittels eines<br />
Datenbanksystems elektronisch zu verwalten.<br />
Ein erster Entwurf der Datenbank sieht die folgende Tabellenstruktur vor:<br />
Hundehalter: {HalterName VARCHAR(30), HundeName VARCHAR(30), Rasse<br />
VARCHAR(20) , Herkunftsland VARCHAR(20), Geschlecht VARCHAR(1), Wettkampf Text }<br />
Dabei gelten die folgenden Randbedingungen:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Die Informationen, die in der Datenbank enthalten sind, entsprechen den Informationen<br />
des Karteikartensystems.<br />
Ein Vereinsmitglied kann mehrere Hunde unterschiedlicher Rassen besitzen.<br />
Der Haltername ist als atomar anzusehen.<br />
Der Hundename, ist bei einem Hundehalter eindeutig, d.h. ein Hundename kann im<br />
Verein mehrfach auftreten, bei einem Halter aber nur einmalig.<br />
Eine Rasse hat immer nur ein Herkunfstland, während natürlich ein Herkunftsland<br />
mehrere Rassen hervorbringen kann (z.B. Deutsche Dogge und Deutscher<br />
Schäferhund).<br />
An einem Wettkampf nehmen immer mehrere Hunde teil.<br />
Der Wettkampfname ist eindeutig und als atomar anzusehen.<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).
) 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?