04.11.2013 Aufrufe

278 KB - Fachbereich 4: HTW Berlin

278 KB - Fachbereich 4: HTW Berlin

278 KB - 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.

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?

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!