Ü2 (Deutsch) - Universität Basel | Informatik

Werbung
UNIVERSITÄT BASEL
Prof. Dr. Heiko Schuldt
Ihab Al Kabary, MSc
Ilir Fetai, MSc
Nenad Stojni¢, MSc
cs243: Datenbanken
Übung 2
FS 2013
Abgabe: 19.03.2013 (23:59 Uhr)
Aufgabe 1: Transformation ER-Modell nach SQL
(5 Punkte)
Abbildung 1 stellt ein ER-Modell einer Miniuniversität dar. Wandeln Sie das gegebene
ER-Modell in ein relationales Datenbankschema um und bilden Sie dieses auf ein ausführbares SQL Skript ab. Bestimmen Sie dabei alle Primär- und Fremdschlüssel und führen
Sie wo nötig künstliche Schlüssel ein. Wählen Sie eine der möglichen Varianten um die
Vererbung aus dem ER-Modell zu implementieren. Geben Sie an welche Variante Sie
gewählt haben und begründen Sie kurz Ihre Wahl.
Abbildung 1: Das Datenbankschema im Entity-Relationship-Modell
1
Aufgabe 2: Objektrelationale Datenbanken
(25 Punkte)
a) Vervollständigen Sie das unten gegebene Objektrelationale Datenbankschema. Dieses
unvollständige Schema implementiert Teile des Datenmodells aus der Aufgabe 1 unter
Verwendung von objektrelatonalen Konstrukten. Beachten Sie, dass ein neuer Typ
teachingAssistant_obj
hinzugefügt wurde.
Tipp: Sie können sich an der Syntax aus der Oracle Dokumentation orientieren, die
Sie unter http://docs.oracle.com/cd/E14072_01/appdev.112/e10472/create_
type.htm nden können.
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
TABLE teachingAssistant;
TABLE lecture;
TYPE professor_obj;
TYPE phdStudent_obj;
TYPE address_obj;
TYPE hobbies_varray;
TYPE person_obj;
TYPE teachingAssistant_obj;
TYPE lecture_obj;
CREATE TYPE person_obj AS object (
firstName varchar(30),
lastName varchar(30),
hobbies hobbies_varray,
address address_obj
) NOT FINAL NOT INSTANTIABLE;
CREATE TYPE teachingAssistant_obj UNDER universityStaff_obj (
institute varchar(30)
) NOT FINAL;
CREATE TYPE lecture_obj AS object (
title varchar(30),
[date] date,
location varchar(30)
) NOT FINAL;
(10 Punkte)
2
b) Fügen Sie Beispieldaten in das relationale und das objektrelationale Schema ein.
Betachten Sie für das Füllen des objektrelationalen Schemas das folgende Beispiel:
INSERT INTO teachingAssistant VALUES (
teachingAssistant_obj('Edgar', 'Codd',
hobbies_varray('Mathematik', 'Datenbanken', 'Fussball'),
address_obj('Bernoullistrasse', 16, 'Basel', 4056),
1100, 'Departement für Mathematik und Informatik')
);
(8 Punkte)
c) Geben Sie für das relationale und für das objektrelationalen Schema alle Personen
aus der Datenbank zurück.
Tipp: Geben Sie die die gesamte Extension von Person zurück.
Geben Sie ausserdem alle PhD Studenten und alle Professoren zurück.
(7 Punkte)
Zusatzaufgabe (5 Punkte)
Schreiben Sie eine ausführbare Funktion, die für den Type
Professor
die Anzahl Lehr-
veranstaltungen berechnet, die vom Professor gehalten werden.
Tipp: Sie können sich an der Syntax aus den Vorlesungsfolien oder der Oracle Dokumentation orientieren, die Sie unter http://docs.oracle.com/cd/E11882_01/appdev.112/
e25519/create_type_body.htm nden können.
3
Herunterladen