Fachhochschule Darmstadt ___Darmstadt, den 2

Werbung
Fachhochschule Darmstadt
Fachbereich Informatik
- Prof. Dr. Wolfgang Weber -
Darmstadt, den 15.01.02
Klausur-DB_WS01_02
KLAUSUR zur Lehrveranstaltung
"Datenbanken"
Teilnehmer(in)
Name:
Vorname:
Matrikel-Nr:
Hinweise:
- Tragen Sie bitte sofort Ihren Namen, Vornamen und Matrikelnummer ein.
- Legen Sie bitte Ihren Personalausweis zur Einsicht bereit.
- Die Bearbeitungszeit beträgt 75 Minuten.
- Zur Bearbeitung sind keine Unterlagen bzw. Hilfsmittel zugelassen.
- Bitte schreiben Sie deutlich.
- Alle Fragen sind zu beantworten.
- Schreiben Sie die Lösung jeweils auf die Rückseite des vorhergehenden Blattes
_______________________________________________________________
Aufgabe
1
2
3
4
5
6
SUM
_______________________________________________________________
max. Punkte: 17
23
21
9
3
8
81
_______________________________________________________________
erreichte
Punkte:
_______________________________________________________________
NOTE:
1
Aufgabe 1: Konstruktion eines E-R-Diagramms
(17 Punkte)
Für die Firma Maier Kfz-Ersatzteilhandel GmbH ist eine Auftragsabwicklung zu schreiben.
Als ersten Schritt dazu sollen Sie ein ER-Diagramm entwerfen.
Ein Auftrag der Firma Maier Kfz-Ersatzteilhandel GmbH sieht folgendermaßen aus:
________________________________________________________________
F. Müller AG
Im Feld 13
37657 Musterstadt
An Firma Maier Kfz-Ersatzteilhandel GmbH
Postfach 4711
64378 Darmstadt
15.01.02
Unsere Auftragsnummer: 4711
Hiermit bestellen wir gemäß Ihrer Preisliste:
3 Stück
7 Stück
Artikel Nr. 12345
Artikel Nr. 23456
Kupplungsscheiben
Kolbenrückzugsfedern
Mit freundlichen Grüßen
F. Müller
__________________________________________________________________
Nach Eingang der Bestellung wird eine Auftragsbestätigung geschrieben, in der zusätzlich die
Listenpreise für die bestellten Artikel angegeben sind.
Erstellen Sie als Grundlage für das zu erstellende System ein vollständiges ER-Diagramm mit
Angabe der Komplexitäten und der Attribute.
Im zu entwickelnden System sollen alle für die zur weiteren Verarbeitung in der
Auftragsabwicklung benötigten und in der Auftragsbestätigung auszudruckenden Daten
abgelegt werden können.
Bedenken Sie: Zum Schreiben der Auftragsbestätigung benötigen Sie die Listenpreise, die
irgendwo zugreifbar sein müssen. Während der Abwicklung des Auftrages können sich die
Listenpreise ändern. Bei der späteren Rechnungsschreibung müssen allerdings die in der
Auftragsbestätigung angegebenen Preise fakturiert werden. Auch die Auftragsbestätigung
habe ein Datum.
Die Rechnungsverwaltung sei ein eigenes System, d. h. in unserem ER-Diagramm wollen wir
keine Rechnungen modellieren.
Obwohl Auftrag und Auftragsbestätigung eigentlich verschiedene Datenobjekte sind, ist es
Ihnen in dieser Aufgabe freigestellt, in Ihrem ER-Modell beide Datenobjekte durch ein Entity
zu modellieren.
2
3
Aufgabe 3: SQL-Anweisungen
(21 Punkte)
Gegeben sei folgendes relationale Schema:
Mitarbeiter (Mitarb-Nr, Mitarb-Name)
Projekt (Proj-Nr, Proj-Name, Proj-Leiter-Nr)
Proj-Leiter-Nr sei Fremdschlüssel mit Referenz auf Mitarbeiter
Mitarbeiter_arbeitet_in_Projekt (Mitarb-Nr, Proj-Nr, Prozent_der_Arbeitszeit)
Mitarb-Nr und Proj-Nr seien Fremdschlüssel mit Referenz auf Mitarbeiter und Projekt
3a. (3P)
Definieren Sie die Relation Mitarbeiter_arbeitet_in_Projekt in SQL mit Schlüssel- und
Fremdschlüssel-Definition. Alle Attribute seien vom Typ Integer.
Generieren Sie aus der Datenbank mit den oben angegebenen Relationen SQL-Anweisungen,
die folgende Ausgaben erzeugen:
3b. (3P)
Geben Sie zu allen Projekten mit Projektleiter Maier Proj-Nr und Mitarb-Name des
Projektleiters aus. In der Überschrift der Liste stehe statt Proj-Nr Projektnummer und statt
Mitarb-Name Projektleitername.
3c. (5P)
Generieren Sie die Liste aller im Projekt 4711 und Projekt 4712 mitarbeitenden Mitarbeiter.
Geben Sie jeweils Proj-Nr, Proj-Name, Mitarb-Name und Prozent_der_Arbeitszeit aus.
3d. (7P)
Geben Sie zu allen Projekten Proj-Name und Anzahl der Mitarbeiterstunden pro Tag aus.
Anzahl der Mitarbeiterstunden pro Tag sei die Summe der (Prozent_der_Arbeitszeit/100)*8.
3e. (3P)
Definieren Sie eine Sicht (view) Maiers_und_Muellers_Projekte, die nur Projekte, die von
Herrn Maier oder Herrn Mueller geleitet werden enthält und in der nur Proj-Nr, Proj-Name
und Name_Projektleiter enthalten sind.
4
Aufgabe 4: Embedded SQL
(9 Punkte)
4a. (4P)
Definieren Sie einen Cursor AktMitarbeiter_Cursor über der Relation Mitarbeiter aus
Aufgabe 3. (Es handele sich um die gesamte Mitarbeiter-Relation mit allen Attributen.)
4b ( 2P)
Definieren Sie einen Record AktMitarbeiter_Record zur Aufnahme eines durch das FetchKommando aus der Mitarbeiter-Relation herausgeholten Mitarbeiter-Records (Verwendung
der %Rowtype-Operation) oder definieren sie andere Variablen, in die Sie die Attribute eines
Mitarbeiter-Datensatzes hineinbringen können.
4c. ( 3P)
Holen Sie per Fetch-Befehl den ersten Mitarbeiter-Datensatz in den unter 4b. definierten
Record AktMitarbeiter_Record. (oder in die in 4b. definierten Variablen).
Aufgabe 5: Objektorientierte Datenbanksysteme allgemein
(3 Punkte)
Nennen Sie mindestens 3 Eigenschaften von objektorientierten Systemen, die relationale
Systeme nicht haben
Aufgabe 6: Objektorientiertes Datenbanksystem POET
(8 Punkte)
5a. (5P)
Wie wird die Beziehung
Marke
1
0,..*
Auto
im objektorientierten Datenbanksystem POET dargestellt? (Man soll von einem Auto zur
dazugehörigen Marke und von der Marke zu den zugehörigen Autos navigieren können.)
Schreiben Sie jeweils die Zeile der entsprechenden Attributdefinition in Auto und in Marke
auf.
5b. (3P)
Wie rufen Sie (z. B. von der print-Operation der Klasse Auto) die Funktion print() im
in Beziehung stehenden Objekt der Klasse Marke auf. Schreiben Sie die entsprechende
Programmzeile.
5
Herunterladen