Teil I: Wissen (35 Minuten)

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
S TA N DA R D -SO FTWA R E
K L AUS U R
Studiengang: Informatik
Studienquartal: VI. Theoriequartal
Prüfungsumfang: Vorlesungen und Gruppenarbeiten.
Dozent: Löwe
Termin: 22. September 2003
Dauer: 90 Minuten
40 Punkte sind zu erreichen: Wissen 16, Anwendung 16 und Transfer 8 Punkte. Bestanden ab 20 Punkte.
TEIL I: WISSEN (35 MINUTEN)
Aufgabe 1 (4 Punkte): Beschreiben Sie zwei der Standardmethoden, Klassenmodelle in relationale
Tabellenschemata abzubilden!
Aufgabe 2 (4 Punkte): Stellen Sie Vor- und Nachteile der beiden Methoden aus Aufgabe 1 anhand
(zuvor definierter) klarer Kriterien dar!
Aufgabe 3 (2 Punkte): Warum sollten Informationssysteme die Versionierung sowohl (1) der Daten
selbst als auch (2) der Datenmodelle unterstützen?
Aufgabe 4 (4 Punkte): Jede Veränderung von Daten in einer Standardsoftware sollte transaktionsgesichert
ablaufen. Was sind Transaktionen? Warum sind sie in einem System, in dem mehrere Nutzer gleichzeitig
auf denselben Datenbestand zugreifen, praktisch unverzichtbar? Was ist der Unterschied zwischen langen
Transaktionen und kurzen Datenbanktransaktionen? Warum benötigt man kurze Transaktionen, um lange
Transaktionen zu realisieren?
Aufgabe 5 (2 Punkte): Warum sollten alle (in SQL formulierten) Zugriffe einer „Client“-Software auf
einen Datenbank-„Server“ an einer Stelle konzentriert werden? Warum empfiehlt sich darüber hinaus die
„Server“-seitige Kapselung der Datenbankzugriffe in Form von „Stored Procedures“?
TEIL II: ANWENDUNG ( 35 MINUTEN)
Aufgabe 6 (8 Punkte):
*
Übersetzen
Sie
Person
Kommunikationskanal
nebenstehendes
name: String
Klassendiagramm in eine
relationale
Adresse
Telefon
Tabellenstrukturen
und
postleitzahl: Integer
vorwahl: Integer
zwar nach der Methode
Natürliche Person Juristische Person
ort: String
durchwahl: Integer
„Eine Tabelle pro Klasse
vorname: String
art: Integer
und
Realisierung
der
Vererbung
über
Postfachadresse
Straßenadresse
Fremdschlüssel“!
nummer: Integer
straßenname: String
Dokumentieren Sie die
nummer: Integer
resultierenden Tabellen in
Form von „create-table-Anweisungen“ in SQL (Muster siehe Aufgabe 8 )!
Aufgabe 7 (4 Punkte): Schreiben Sie für das Ergebnis aus Aufgabe 6 eine select-Abfrage, die
vorname, name und (Postfach)nummer der natürlichen Personen mit Postfachadressen ermittelt!1
Aufgabe 8 (4 Punkte): Zur Darstellung der Vererbungsbeziehung existiere folgende Tabelle:
create table Inheritance
(id number,
ancestor number not null,
descendant number not null,
constraint PKInheritance primary key (id),
constraint FKAncestorToClass foreign key (ancestor) references Class (id),
constraint FKDescendantToClass foreign key (descendant) references Class (id),
constraint UniquePairs unique (ancestor,descendant) );
Hier sind nicht nur die direkten Vererbungsbeziehungen eingetragen sondern auch alle abgeleiteten
Beziehungen, um den Zugriff auch alle Vor- und Nachfahren zu beschleunigen. Die Tabelle stellt also eine
partielle Ordnung (reflexiv, antisymmetrisch und transitiv) der Paare aus ancestor und descendant dar.
Schreiben sie ein Select-Statement, das nur die Schlüssel der direkten Vererbungsbeziehungen ermittelt;
d.h. das alle abgeleiteten Paare – transitiv und reflexiv – ausblendet!2
TEIL III: TRANSFER (20 MINUTEN)
Aufgabe 9 (3 Punkte): Oracle unterscheidet im Datentyp varchar2 nicht zwischen der leeren
Zeichenkette (““) und dem Null-Wert. Die leere Zeichenkette ist der Null-Wert (““ = null). Fügt man z.
B. in eine varchar2-Spalte die leere Zeichenkette ein, erhält man bei folgenden Abfragen null zurück.
Das stört! Und zwar so sehr, dass man varchar2 z. B. in Metamodellen für objektorientierte Systeme
nicht einfach als Modell für Zeichenketten benutzen kann. Man muss Zeichenketten, die null und ““
unterscheiden, erst selber in Oracle mit den Mitteln von Oracle realisieren. Wie?
Aufgabe 10 (2 Punkte): Warum sind Default-Werte für Assoziationen weder Objekte der Modellebene
noch normale Objekte der Instanzebene?
Aufgabe 11 (3 Punkte): In der objektorientierten Welt ist jedes Objekt Instanz genau einer Klasse und
zwar während seiner gesamten Lebensdauer? In einem Metamodell für objektorientierte
Informationssysteme gibt es dennoch Gründe, die revisionssichere Änderung der instanceOf-Beziehung
vorzusehen. Welche?
Benutzen Sie einen Ihnen geläufigen SQL-Dialekt! Der Inhalt muss stimmen nicht die Syntax!
Benutzen Sie einen Ihnen geläufigen SQL-Dialekt! Verwenden Sie Subqueries in einer klar erkennbaren Notation,
wo nötig! Der Inhalt muss stimmen nicht die Syntax!
1
2
2
Herunterladen