ISKlausur20041N - FHDW / bib Portalseite

Werbung
F A C H H O C H S C H U L E
F Ü R
D I E
W I R T S C H A F T
F H D W ,
H A N N O V E R
I N FO RM ATI ON S S Y TE M E
K L AU SUR
Studiengang: Informatik/Wirtschaftsinformatik
Studienquartal: III. Theoriequartal
Prüfungsumfang: Vorlesungen und Vorbereitungsmaterial vom 16. März 2004.
Dozent: Löwe
Termin: 18. Juni 2004
Dauer: 90 Minuten
40 Punkte zu erreichen: Wissen 16, Anwendung 16 und Transfer 8 Punkte. Bestanden ab 20 Punkte.
TEIL I: WISSEN (25 MINUTEN)
Aufgabe 1 (2 Punkte): Sei folgende Tabellendefinition in Oracle gegeben:
create table t (c1 number, c2 number);
Dann führen die Statements
insert into t values (1,2);
insert into t values (1,2);
auf der Basis einer zunächst leeren Tabelle zu zwei Zeilen. Warum stimmt das eigentlich nicht mit der
relationalen Semantik überein? Was muss man in Oracle tun, damit eine Tabelle t mit identischen zwei
Zeilen als Inhalt unmöglich wird?
Aufgabe 2 (3 Punkte): In jedem Select-Statement (Syntax) der allgemeinen Form
select an1.sn1, an2.sn2, ... anm.snm from t1 a1, ... tk ak where “condition”;
werden gleichzeitig drei semantische Operationen angewendet: (a) Die Bildung eines kartesischen Produkts,
(b) eine mengenmäßige Aussonderung und (c) eine Projektion aus einem Produkt. Welche syntaktischen
Teile des Select-Statements formulieren diese drei semantischen Operationen?
Aufgabe 3 (2 Punkte): Normalisierung von relationalen Schemata beseitigt viele Probleme bei ????? der
Tabellen, erhöht aber den Aufwand bei ?????
Aufgabe 4 (2 Punkte): Was ist ein View? Wozu benutzt man Views?
Aufgabe 5 (2 Punkte): Was hat Serialisierung von Transaktionen mit Isolation zu tun?
Aufgabe 6 (3 Punkte): Was ist Starvation? Welches Sperrkonzept kann zu Starvation führen?
Geben Sie ein Beispiel an!
Aufgabe 7 (2 Punkte): Warum muss man für die Vergabe von Primärschlüsseln spezielle Mechanismen
– wie etwa Sequencer in Oracle – einsetzen?
TEIL II: ANWENDUNG ( 45 MINUTEN)
Aufgabe 8 (6 Punkte): Partielle Ordnungen (z. B. die Vererbungshierarchie auch bei
Mehrfachvererbung) können auf zwei verschiedene Weisen in Relationenschemata abgebildet werden: (1)
Normalisiert durch Ablegen nur der erzeugenden Relation R oder (2) denormalisiert, indem der transitive
und reflexive Abschluss von R abgelegt und bei Veränderungen konsistent gehalten wird. Das Schema ist
dabei gleich:
create table Set(id number primary key,……);
create table PartialOrder(ancestor number foreign key references Set(id),
descendant number foreign key references Set(id),
constraint Relation unique (ancestor,descendant));
(a) Unter welchen Umständen wählen Sie die erste Abbildung?
(b) Unter welchen Umständen bevorzugen Sie die zweite?
Wir betrachten jetzt die zweite Darstellung, also den reflexiven und transitiven Abschluss:
(c) Schreiben Sie das Select-Statement, das alle Paare ermittelt, die man (einzeln) in R einfügen kann.
(d) Schreiben Sie das Select-Statement, das die Paare ermittelt, die man in R einfügen muss, wenn man ein
neues Paar (x, y) einfügen will. Setzen Sie hier Einfügbarkeit voraus!
(e) Schreiben Sie das Select-Statement, das die erzeugende Relation R herausfiltert!
Jetzt betrachten wir die erste Darstellung, also nur die Speicherung der erzeugenden Relation R:
(f) Geben Sie das Select-Statement an, das den transitiven und reflexiven Abschluss liefert! (Achtung!!!)
Aufgabe 9 (7 Punkte): Übersetzen Sie folgendes Klassendiagramm in relationale Tabellenstrukturen
und zwar nach der Methode „Eine Tabelle pro Vererbungshierarchie“! Dokumentieren Sie die
resultierenden Tabellen in Form von „create-table-Anweisungen“ in SQL!
VersicherungsVertrag
partner
Person
*
kanal
Kommunikationskanal
name: String
HaftpflichtVertrag
DeckungsSumme: Integer
Natürliche Person
SachVertrag
Telefon
Adresse
Nummer: Integer
Straße: String
Ort: String
Juristische Person
VersicherungsSumme: Integer
Aufgabe 10 (3 Punkte): Schreiben Sie für die Tabellenstruktur aus Aufgabe 9 eine Abfrage, die die
Haftpflichtverträge juristischer Personen mit Telefon ermittelt!
TEIL III: TRANSFER ( 20 MINUTEN)
Aufgabe 11 (3 Punkte): Transaktionen und kritische Abschnitte (Mutex) sind Hilfsmittel zur
Beherrschung von Parallelität oder Multi-User-Betrieb. Was haben beide Konzepte (in ihrer Reinform)
gemeinsam? Wo liegen die Unterschiede?
Aufgabe 12 (2 Punkte): Welches grundsätzliche Problem ergibt sich, wenn zwei der „fetten“ JavaKlienten, wie wir sie in der Vorlesung kennen gelernt haben, parallel auf dasselbe Schema im selben
Oracle-Server zugreifen?
Aufgabe 13 (3 Punkte): Interfaces oder Mehrfachvererbung machen das Verfahren zur Übersetzung
von Klassenmodellen in relationale Schemata nach dem Muster „Eine Tabelle pro Klassenhierarchie“
deutlich komplizierter. Warum?
2
Herunterladen