Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 6 » Prüfung OODB/MMDB April 2016
Inhaltsverzeichnis
Prüfung OODB/MMDB April 2016
- Prüfer: Prof. Dr-Ing. Klaus Mayer-Wegener
- Atmosphäre: relativ entspannt
- Vorbereitung: Skript stichpunktartig verfassen und lernen, Prüfungsprotokolle anschauen
- Vorbereitungszeit: 1,5 bis 2 Wochen
OODB
1. Was ist ODMG?
ODMG ist :
- Object Database Management Group. Zusammenschluss mehrerer Firmen, die ihre objektorientierten Datenbanksysteme normieren wollten.
- Norm (Portabilität)
Bestandteile:
- Objektmodell
- Datenanfragesprache: OQL
- Datendefinitionssprache: ODL
- Anbindung an OO-Sprache
- kein OML (wird per OO-Sprache gemacht)
2. Was wurde denn normalisiert?
Hier wollte er vor allem Persistenz hören. Möglichkeiten bei der Normalisierung:
Persistenzdefinition:
- typabhängig (bspw. durch Erben von d_Object)
- typunabhängig (=objektabhängig)
Persistierung:
- statisch
- dynamisch
Persistenzpropagierung:
- automatisch (Viel Müll wird persistent gespeichert!)
- explizit
- (Zwischenfrage: Wie hat es ODMG gemacht? → explizite Propagierung)
Persistente Klassenextention:
- implizit (für jede persistente Klasse)
- explizit (z.B. durch Schlüsselwort „extent“)
3. Definieren Sie einen Datentyp ihrer Wahl in ODL
interface Person (extent Personen key PIN) { //Zwischenfrage: Hier musste man das Konzept der Extention erklären. attribute int PIN; attribute string Name; attribute date Geburtsdatum; relationship Set<Person> _Eltern inverse Person::_Kinder; relationship Set<Person> _Kinder inverse Person::_Eltern; //Erwähnt habe ich noch die Bidirektionalität der Relationships. }
4. Was gehört noch dazu?
Verhalten: Funktionen
5. Wieso hat man sich für bidirektrionale Beziehungen entschieden:
referenzielle Integrität, Anwendungsneutralität
MMDB
1. Modellieren Sie einen Datentyp ihrer Wahl:
Via Java: Image
interface Image { //Aufbau nur mündlich erwähnt. }
public class ImageClass implements Image { //Aufbau nicht weiter erwähnt, nur dass hier die Attribute gespeichert werden. }
Aufbau des Mediums:
- Rohdaten
- Registrierungsdaten
- Beschreibugsdaten
Methoden zum Interface (mündlich):
- height, width, window (zur Änderung), replaceColorMap, replacePixrect, compareHistogram
2. Wie komme ich denn an den Inhalt heran?
- getPixrect()
- asJPG()
- asGIF()
3. Motivation von asJPG
= Erläuterung von Datenunabhängigkeit
4. Geben Sie ein RDB-Schema an um den Typ zu speichern.
Fotos( FID integer PRIMARY KEY AUTOINCREMENT, Foto Image )
5. Speichern Sie ein Bild:
INSERT INTO Fotos (Foto) VALUES (ImageClass(:pr, :cm));
pr steht für eine Variable, in der ein Pixrect abgelegt ist.<br> cm = ColorMap
6. Was macht die compareHistogram Methode?
- Vergleicht das Aktuelle Histogramm mit dem eines anderen Bildes.
- Auf X-Achse: Pixelwert, auf Y-Achse: Häufigkeit.
- Differenz Histogramm: Werte einzeln voneinander abziehen und Betrag bilden.
- Danach Beträge der Differenzen zu einem Wert aufaddieren.
- Auf Basis dessen ein Ähnlichkeitsmaß errechnen.
7. Formulieren Sie eine lesende Anfrage. Benutzen Sie dabei compareHistogram().
SELECT FID, Foto.asJPG() FROM Fotos WHERE Foto.compareHistogram(ImageClass('a.JPG')) >= 0.7