MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG
Institut für Informatik
Prof. Dr. Stefan Brass
Datenbanken I
Informationen über mündliche Prüfungen
Die folgenden Informationen sind selbstverständlich
nicht eine vollständige Liste aller möglichen
Prüfungsfragen, sollten aber schon einen guten
Anhaltspunkt für Ihre Vorbereitung geben.
Diese Seite hat ein striktes Copyright (C) 2004 von Stefan Brass.
Sie dürfen sie keinesfalls an anderer Stelle ins Netz stellen.
Ich behalte mir vor,
sie jederzeit wieder aus dem Netz heraus zu nehmen.
Links auf diese Seite sind natürlich zulässig.
Beispiele für Prüfungsfragen
Allgemeines/Einleitung
- Angenommen, Sie sollen ein Softwaresystem entwickeln,
das persistent gespeicherte Daten benötigt.
Sie stehen vor der Wahl,
die Daten in einem DBMS oder direkt in
Betriebssystem-Dateien abzuspeichern.
Was würde Ihnen das DBMS abnehmen,
was Sie sonst selbst programmieren müßten?
- Nennen Sie mindestens zwei Beispiele für Datenmodelle.
Was legt ein Datenmodell allgemein fest?
Was ist allgemein die Semantik eines Datenbank-Schemas?
- Erklären Sie physische Datenunabhängigkeit,
und wie sie mit der ANSI/SPARC Drei-Schema-Architektur zusammen
hängt.
- Wann ist logische Datenunabhängigkeit wichtig?
Wie können Sichten dafür verwendet werden?
- Nennen Sie mindestens drei Datenbank-Managementsysteme.
- Nennen Sie mindestens ein Lehrbuch zu Datenbanken.
- Erklären Sie die Eigenschaften von Transaktionen
(ACID-Merkregel).
Hauptteil der Prüfung
- Entwerfen Sie ein ER-Diagramm für eine kleine Anwendung,
die ich schildere
(maximal 3 Entitytypen, 2 Relationships).
Geben Sie Schlüssel und Kardinalitäten an.
- Übersetzen Sie dieses ER-Diagramm in das relationale Modell.
Erklären Sie dabei Schlüssel und Fremdschlüssel.
- Dann sollen Sie eine komplexere SQL-Anfrage formulieren.
D.h. mit Unteranfragen, Aggregationen, oder Selbstverbund
(explizite Tupelvariablen).
Die SQL-Anfrage bezieht sich auf das Schema,
daß mit ER-Entwurf und logischem Entwurf selbst erstellt haben.
- Diese drei Hauptteile der Prüfung
werden in den folgenden Abschnitten noch näher erläutert.
Konzeptioneller Entwurf im ER-Modell
- In praktisch jeder Prüfung kommt ein ER-Entwurf dran.
Sie müssen dabei Schlüssel und Kardinalitäten
angeben.
- Beispiel: Ich möchte ähnlich wie bei Amazon
Bewertungen von Kunden über Bücher abspeichern.
Über Bücher möchte ich die ISBN, Autoren, und Titel
abspeichern,
über Kunden Kunden-Nr, Name, und EMail-Adresse.
Die Bewertung kann von 1 bis 5 Sterne sein
und hängt sowohl vom Buch als auch vom Kunden ab.
D.h. das gleiche Buch kann von verschiedenen Kunden
unterschiedlich bewertet worden sein.
- Es ist in Ordnung, wenn Sie nochmal nachfragen müssen.
Auch in der Praxis muß der Datenbank-Entwerfer ja mit
dem Kunden reden.
- Beachten Sie,
daß auch schwache Entity-Typen drankommen können.
- Manchmal müssen wir aus Zeitgründen auch eher
einfachere Lösungen wählen,
die eigentlich nicht optimal sind.
So habe ich im Beispiel gedacht,
daß die Autoren als einfaches Attribut modelliert werden,
obwohl eigene Entities vielleicht besser wären
(dann muß man aber auch die Reihenfolge in der Autorenliste
abspeichern).
Wenn Sie das versuchen,
würde ich Ihnen wahrscheinlich sagen,
daß mir die einfachere Lösung reicht.
Eventuell würde ich Sie aber auch machen lassen,
dann würden andere Themen hinterher etwas kürzer kommen.
- Eventuell müssen Sie erklären,
was die Kardinalitätsangaben bedeuten.
Logischer Entwurf, Integritätsbedingungen
- Nachdem der ER-Entwurf fertig ist,
müssen Sie Ihr ER-Diagramm in das relationale Modell
übersetzen,
und dabei Schlüssel und Fremdschlüssel angeben.
- Welche Notation Sie für das relationale Schema verwenden,
ist relativ egal
(Sie müssen natürlich auch die Fremdschlüssel
klar festlegen/erklären).
Datentypen möchte ich an dieser Stelle normalerweise nicht
sehen,
wir haben ja relativ wenig Zeit und wollen noch zu interessanteren
Dingen kommen.
- Ich möchte öfters auch die Fremdschlüssel-Bedingung
formal aufgeschrieben haben.
Oder möchte,
daß Sie einen Beispielzustand angeben,
in dem die Fremdschlüsselbedingung verletzt ist.
Sie sollten auch wissen,
wie sich ein DBMS verhält,
wenn ein Fremdschlüssel verletzt ist.
- Manchmal bitte ich auch,
zu erklären,
warum ein bestimmter Schlüssel nicht richtig ist
(besonders für Tabellen,
die aus einem Relationship entstehen).
- Dabei können wir uns auch allgemeiner über
Integritätsbedingungen unterhalten.
Z.B. welche Integritätsbedingungen kann man in heutigen
DBMS deklarativ spezifizieren?
Was kann man machen,
wenn man eine andere Integritätsbedingung hat?
Braucht man manchmal allgemeine Integritätsbedingungen
für die Übersetzung von ER-Diagrammen?
Was bedeutet es,
daß eine Integritätsbedingung
von anderen logisch impliziert wird?
Was bedeutet es,
daß Integritätsbedingungen zusammen inkonsistent sind?
- Es könnte auch passieren,
daß Sie einmal einen CHECK-Constraint aufschreiben müssen.
SQL
- Jede Prüfung enthält eine SQL-Anfrage,
und normalerweise auch eine etwas komplexere
(Unteranfragen, Aggregationen, Selbstverbund).
- Beispiel: Geben Sie Bücher aus,
die sowohl eine Bewertung mit fünf Sternen haben,
als auch eine mit einem Stern
(bei denen die Meinungen also weit auseinandergehen).
Ich möchte Autoren und Titel ausgegeben haben.
- Beispiel: Geben Sie Bücher aus,
die mindestens drei Bewertungen haben,
aber keine einzige schlechter als 4 Sterne.
- Natürlich brauchen Sie nicht die Feinheiten
über Unterschiede zwischen verschiedenen Systemen zu wissen,
die im Skript im Kleingedruckten stehen.
Ich sage ja nur, was die Anfrage liefern soll.
Wie Sie es in SQL formulieren,
ist (mit wenigen Ausnahmen) Ihre Sache:
SQL-86 würde ja ausreichen.
Zu den Ausnahmen gehört ein Outer Join:
Ich würde Sie zwar zunächst die Lösung mit UNION
aufschreiben lassen, wenn Sie das wollen,
würde Sie aber dann fragen,
ob es nicht auch noch kürzer geht.
Entsprechendes gilt für Lösungen
im Relationenalgebra-Stil,
z.B. die Verwendung von MINUS/EXCEPT:
Hier würde ich doch auch gern noch eine zweite Lösung
mit NOT EXISTS bzw. NOT IN sehen.
- Es ist gefärlich,
SQL-Konstrukte zu verwenden,
die nur in einem ganz speziellen System funktionieren:
Ich könnte sie vielleicht für falsch halten.
Versuchen Sie,
möglichst portabeles SQL zu schreiben.
- Wir könnten uns auch ein bißchen über
Syntaxregeln von SQL unterhalten,
z.B. wann man eine Tupelvariable in der Attributreferenz
angeben muß,
und wie die Beziehung zwischen Attributen unter SELECT
und unter GROUP BY ist.
Selbstverständlich sollten Sie auch die Klauseln
einer SQL-Anfrage kennen: SELECT, FROM, WHERE, ...
- Achten Sie auch darauf,
daß Sie unnötige Komplikationen vermeiden,
z.B. einen unnötigen Join.
Wir könnten uns auch darüber unterhalten,
ob für eine bestimmte Anfrage DISTINCT nötig ist.
- Wie werden Nullwerte in SQL behandelt?
Relationenalgebra, Ausdrucksfähigkeit von Anfragesprachen
- Nennen Sie die Grundoperationen der Relationenalgebra.
- Eventuell müssen Sie auch eine einfache Anfrage
in der Relationenalgebra formulieren.
- Von welchen Operationen ist der Join abgeleitet?
- Was bedeutet es,
daß eine Anfrage sich nichtmonoton verhält?
Welche Algebra-Operation müssen Sie dann verwenden?
- Bei welchen Anfragen brauchen Sie die Vereinigung?
- Was sind die Grenzen der Relationenalgebra?
Kann man beliebige berechenbare Funktionen
(von Datenbankzuständen in Ausgaberelationen)
in Relationenalgebra aufschreiben?
Kennen Sie ein Beispiel für eine in polynomieller Zeit
zu berechnende Funktion,
die als Anfrage in bestimmten Anwendungen durchaus Sinn machen
würde,
die man aber nicht in Relationenalgebra formulieren kann?
- Vergleichen Sie die Ausdrucksstärke von Relationenalgebra,
SQL und Logik.
Logik
- Sie sollten die Grundbegriffe der Logik definieren können,
z.B. Signatur, Term, atomare Formel, Formel,
Interpretation, Modell,
logische Implikation, Konsistenz.
- Sie sollten übliche Äquivalenzen kennen
(z.B. wie man "wenn...dann..." auf "nicht...oder..."
zurückführt).
- Sie sollten wissen,
durch welche Einschränkungen man ER-Modell,
Relationenmodell in der Bereichskalkül-Varianten,
und Relationenmodell in der Tupelkalkül-Variante
aus der allgemeinen Prädikatenlogik ableiten kann.
Ein wichtiger Grund,
weswegen wir Logik behandelt haben,
war ja,
einen allgemeinen Rahmen für verschiedene Datenmodelle zu haben.
- Sie sollten (relativ einfache) Integritätsbedingungen
in diesen drei Modellen als logische Formeln aufschreiben
können.
- Bisher habe ich noch keine Anfragen in der Logik gefragt,
aber natürlich wäre das theoretisch möglich.
Ich erwarte,
daß Sie auch komplexe Anfragen in SQL aufschreiben können.
Da SQL dem Tupelkalkül sehr änlich ist,
brauche ich den Tupelkalkül normalerweise nicht getrennt
zu prüfen.
Wir haben logische Formeln hauptsächlich als Vorbereitung auf SQL
gemacht,
damit Sie SQL besser verstehen und beherrschen.
Bedenken Sie aber,
daß eine Prüfung immer auch spontan ist:
Ich kann und will nicht garantieren,
daß irgendwelcher Stoff,
den wir gemacht haben,
nicht in der Prüfung drankommt.
Normalformen
- Definition von funktionalen Abhängigkeiten.
Wann erfüllt ein Zustand eine funktionale Abhängigkeit?
- Implikation. Attribut-Hülle. Triviale Funktionale Abhängigkeiten.
- Kann man funktionale Abhängigkeiten aus einem
Beispielzustand automatisch ermitteln?
- Definition von BCNF.
(Hier hätte ich gerne eine mathematisch-präzise
Definition.)
Warum ist die Definition gerade so?
Zusammenhang mit Anomalien.
- Prüfung eines Beispiels auf BCNF.
- Was müssen Sie machen,
wenn eine Tabelle nicht in BCNF ist?
- Sie müssen auch abstrakte Beispiele mit Attributen A, B, C
behandeln können.
- Was bedeutet Verlustlosigkeit?
- Bedenken Sie bitte,
daß wenn Sie BCNF unter Verwendung der 3NF definieren,
ich dann natürlich als nächstes die Definition
der dritten Normalform abfrage.
Wenn Sie die über transitive Abhängigkeiten definieren,
möchte ich sehr genau wissen,
was transitive Abhängigkeit bedeutet.
Es reicht dabei nicht, nur zu sagen,
daß wenn ich Attribute A, B, C habe,
und A bestimmt B, und B bestimmt C,
eine transitive Abhängigkeit vorliegt.
Wenn das so in Ihrem Lehrbuch drinstehen sollte
(ohne weitere Zusätze),
nehmen Sie ein anderes Lehrbuch.
- Beispiel: Ist eine Relation R(A, B, C) mit folgenden funktionalen
Abhängigkeiten in BCNF?
Wenn Sie zuerst Schlüssel ermitteln wollen,
können Sie auch raten und es dann mit der Attribut-Hülle
verifizieren.
Eventuell helfe ich Ihnen auch beim Raten.
- A -> B
- B -> C
- B -> A
- A, C -> C
Transaktionen
- Erklären Sie die ACID-Merkregel.
- Was ist ein typisches Beispiel für eine Transaktion,
bei der Atomarität wichtig ist?
- Was sind die SQL-Kommandos zur Beendigung von Transaktionen?
- Angenommen,
ich habe schon einige Updates auf der Datenbank ausgefürt,
ohne die Transaktion zu beenden.
Plötzlich gibt es einen Stromausfall.
Was passiert dann?
Mehrbenutzer-Synchronisation
- Was ist das theoretische Ziel bei parallelem Zugriff mehrerer Benutzer?
- Warum arbeit man die Transaktionen nicht seriell ab?
- Was kann bei parallelem Zugriff passieren,
welche Probleme löst das DBMS automatisch,
wo muß der Programmierer aufpassen?
- Was ist das Dirty Read Problem?
Geben Sie ein Beispiel.
Wie vermeidet ein DBMS dieses Problem?
- Geben Sie ein Beispiel für einen Lost Update an.
Was macht das DBMS? Muß der Programmierer hier selbst etwas tun?
- Was ist das Phantom-Problem.
Warum ist es schwierig?
- Was ist ein Deadlock?
Geben Sie ein Beispiel.
Was tut das DBMS, wenn ein Deadlock auftritt?
Sicherheit
- Sie sollten mindestens das GRANT und das REVOKE-Kommando
von SQL kennen und erklären können.
- Sie sollten auch wissen,
warum Datenbankmanagementsysteme noch etwas mehr an Rechteverwaltung
benötigen,
z.B. Systemrechte in Oracle.
- Auch Zugriffsrechte im Zusammenhang mit Sichten sind interessant.
- Sie sollten auch zwei Minuten über allgemeine Anforderungen
an Sicherheitseigenschaften von DBMS reden können.
- Datenschutzrecht ist dagegen nicht prüfungsrelevant.
Sichten
- Was ist eine Sicht?
Warum kommt man überhaupt auf die Idee,
das Sichten updatebar sein sollten?
Was ist das Problem bei View Updates?
Welche Sichten sind sicher updatebar
(Sie brauchen nicht die SQL-92 Definition auswendig zu lernen).
- Kann man Zugriffsrechte an einer Sicht haben,
ohne Zugriffsrechte an den Basistabellen zu haben?
- Was bedeutet "WITH CHECK OPTION"?
Data Dictionary (für Teilnehmer 2005/06 eher nicht)
- Was ist ein Data Dictionary?
- Warum ist ein Data Dictionary nützlich
(verglichen etwa mit Kommandos wie DESCRIBE TABLE in SQL*Plus)?
- Nennen Sie drei beliebige Tabellen des Oracle Data Dictionary
(Sie brauchen nicht alle Tabellen aus dem Skript auswendig
zu lernen,
aber wenn Sie mit dem Data Dictionary gearbeitet haben,
würde ich erwarten,
daß Sie sich noch an irgendwelche Tabellen erinnern.)
Indexe (für Teilnehmer 2005/06 nur minimal)
- Was ist die typische Datenstruktur für einen Index?
- Skizzieren Sie einen B-Baum
(gemeint ist natürlich ein B+-Baum).
- Was ist der Aufwand zum Suchen/Einfügen in einem B-Baum
(aysmptotisch, d.h. in O-Notation).
- Was ist eine typische Operation der Relationenalgebra,
die mit einem Index schneller ausgewertet werden kann?
Bemerkungen zur Bewertung
- Praktische Fähigkeiten bei der Formulierung von SQL-Anfragen
sind mir sehr wichtig.
Wenn Sie SQL problemlos können,
können Sie kaum noch durchfallen.
Wenn Sie aber außer praktischer SQL-Programmierung,
ER-Modellierung, und der Übersetzung ins relationale Modell
praktisch nichts theoretisch/konzeptionell erläutern können,
wird es vermutlich auf eine Zensur im Bereich "Befriedigend"
herauslaufen.
- Kein Professor mag nur auswendiggelerntes Wissen.
Sie sollen die Dinge verstehen,
und bei Nachfragen auch erklären können,
warum etwas so ist,
und es praktisch anwenden können.
Wenn Sie nur reproduzieren können,
was im Skript steht,
aber es nicht mit eigenen Worten oder an anderen Beispielen
erklären können,
kann es passieren,
daß Sie durchfallen.
Jedenfalls wird es wohl kaum besser als ausreichend werden.
Umgekehrt frage ich normalerweise nicht nach Jahreszahlen
oder Dingen,
die Sie stur auswendiglernen müssten
(auf plus/minus 10 Jahre genau sollten Sie aber wissen,
seit wann es SQL gibt).
- Sie sollten auch formale Definitionen formulieren können,
z.B. wann gilt eine funktionale Abhängigkeit in einem
Datenbank-Zustand.
Man könnte natürlich sagen,
daß dies etwas ist,
was man auswendig lernen könnte oder vielleicht sogar müsste.
Aber einerseits kommt es auf die ganz genauen Worte nicht an:
Wenn man funktionale Abhängigkeiten verstanden hat,
und die in der Mathematik üblichen Formulierungen kennt,
kann man sich mit etwas Übung die genaue Formulierung
dieser konkreten Definition
auch in der Prüfung zurechtlegen.
Irgendwo ist natürlich gelerntes Wissen über
diese Definition nötig,
aber es ist jedenfalls nicht das gleiche,
wie ein Gedicht oder Jahreszahlen auswendig zu lernen.
Auf der anderen Seite müssten Sie die Definition
auch anwenden können,
oder etwa für ein konkretes Beispiel spezialisieren.
Wenn Sie in Ihrem Kopf nur so etwas wie eine Tonbandaufnahme der
Definition hätten,
würde das nicht funktionieren.
Sicherlich sollten Sie aber auch solche mathematisch/formalen
Formulierungen üben
(wenn das auch ein deutlich kleinerer Teil der Prüfung ist,
als die Anwendung von SQL und Datenbank-Entwurf).
- Sie können bei vergleichsweise unwesentlichen Dingen
durchaus einmal sagen,
daß Sie etwas nicht wissen.
Es darf nur nicht zu häufig vorkommen,
und nicht bei ganz wichtigen Dingen.
Dann würde Ihnen ein einmaliges "Passen"
auch nicht die 1.0 verderben
(wenn sonst alles stimmt).
- Natürlich versuche ich auch,
Ihnen Tips zu geben,
wenn ich merke,
daß es nicht recht vorwärts geht.
Andererseits sind zu viele davon auch schädlich
für die Zensur.
Die Prüfung sollte relativ zügig und glatt ablaufen.
Zuviel Nachhaken bedeutet,
daß wir in der beschränkten Zeit nicht weit genug kommen,
was dann die Zensur verschlechtert.
Ich hatte auch einmal eine Prüfung,
bei der der Kandidat wirklich sehr langsam gesprochen hat,
mit langen Pausen.
Wenn wir zu den schwierigen Dingen nicht mehr kommen,
kann allein das die Zensur verschlechtern,
Sie brauchen nicht unbedingt etwas echt Falsches gesagt haben,
oder mehrfach etwas nicht gewußt zu haben.
Andererseits sind das Extremfälle.
Sie brauchen bestimmt nicht ungewöhnlich schnell zu sprechen.
Aber wenn ich einen Punkt wie z.B. Transaktionen antippe,
erwarte ich schon,
daß Sie darüber ca. drei Minuten flüssig
reden können.
Es macht immer einen besseren Eindruck,
wenn das Wissen sozusagen aus Ihnen heraus sprudelt,
als wenn man es mühsam mit viel Nachfragen suchen muß.
- Umgekehrt wäre es auch schlecht,
wenn Sie erst reden und dann denken
(den Fall hatte ich auch schon).
Sie müssen nicht besonders schnell reden und können
auch kurz nachdenken.
Es ist ja wichtig,
daß Sie auch auf meine Frage eingehen
und mir nicht einfach etwas anderes aus dem größeren
Gebiet erzählen
(das können Sie natürlich auch machen,
nachdem Sie meine Frage beantwortet haben:
In gewissen Grenzen können Sie den Prüfungsverlauf durchaus
selbst steuern).
Bei einer Prüfung ist es vorgekommen,
daß ich den Studenten durchaus nicht dazu bewegen konnte,
den Datenbankentwurf zu machen,
den ich wollte.
Natürlich weise ich in solchen Fällen mehrfach
mit unterschiedlichen Worten darauf hin,
was mir wichtig ist.
- Es gibt also einen weiten Bereich,
in dem die Geschwindigkeit des Redens
nur Ausdruck Ihrer Persönlichkeit ist,
und keinen Einfluss auf das Prüfungsergebnis hat.
Allgemein wäre es wichtiger,
möglichst schnell auf den Punkt zu kommen,
und zielgerichtet die Frage zu beantworten
(und danach ggf. noch etwas aus dem Umfeld zu erzählen),
als nur schnell zu reden.
Erst wenn wir trotz einer ziemlich langen Prüfung
nur unterdurchschnittlich viel Stoff geschafft haben,
würde sich das negativ auf die Zensur auswirken.
- Bedenken Sie,
daß Sie den Prüfungsverlauf teilweise
beeinflussen können.
Wenn ich z.B. allgemein nach Funktionen von Datenbanksystemen
frage,
und Sie nennen Transaktionen,
könnte es natürlich sein,
daß ich darüber mehr wissen möchte.
Gerade wenn es schwierig wird,
und Sie öfters passen mußten,
können Sie mir natürlich auch sagen,
in welchem Teilgebiet Sie sich besonders gut auskennen.
- Geben Sie auch nicht zu früh auf:
Gerade am Anfang mit dem ER-Entwurf braucht es manchmal ziemlich
viel hin und her,
bis wir bei dem Entwurf sind,
den ich mir gedacht hatte.
Das ist ziemlich normal.
Aber auch wenn Sie richtig falsche Dinge gesagt haben,
oder ein paar Mal passen mussten,
ist die Prüfung erst nach ca. 30-45 Minuten vorbei
(in Ausnahmefällen kann sie bis zu einer Stunde dauern).
Sie haben also vermutlich noch viele Gelegenheiten,
etwas gut und richtig zu beantworten.
Wenn ich dann merke,
daß Sie sich steigern,
würde ich normalerweise ein paar schwierigere Fragen stellen,
um Ihnen die Chance zu geben,
die Zensur wieder zu verbessern.
Intuitiv wiegt wohl auch der Eindruck am Ende der Prüfung
eher etwas stärker als am Anfang.
Eine mündliche Prüfung ist nicht wie eine Klausur
ein Zusammenzählen von Punkten.
- Mindestens für eine Eins ist es ziemlich wichtig,
noch weitere Literatur außer dem Skript zu lesen.
Eine Zwei bedeutet ja schon,
daß Sie die Anforderungen vollständig erfüllt haben,
bei einer Eins wären ein paar zusätzliche Glanzlichter
wünschenswert.
Wahrscheinlich können Sie theoretisch eine Eins bekommen,
wenn Sie nur das ganze Skript vollständig verstanden
hätten (das möchte ich aber nicht garantieren).
Aber zum wirklichen Verstehen ist es sicher hilfreich,
den Stoff nochmal aus einer etwas anderen Perspektive
oder mit anderen Worten zu hören,
und dann zu vergleichen.
Eigenes Durchdenken,
eigene begründete Ansichten,
Antworten auf die "Warum?"-Frage wären alles Dinge,
die einen "sehr guten" Kandidaten auszeichnen.
- Außerdem könnten Sie leichte Patzer vielleicht dadurch
wieder gut machen,
daß Sie Stoff kennen,
der über den Vorlesungsstoff hinausgeht.
Bedenken Sie aber,
daß wenn Sie irgendwelche Begriffe in die Debatte werfen,
ich wahrscheinlich nachfragen werde.
Natürlich ist es nicht sehr schlimm,
wenn Sie es dann nicht wissen
(es war ja in der Vorlesung nicht dran).
Aber im allgemeinen sollte man natürlich schon wissen,
wovon man redet.
- Natürlich erkennt ein Prüfer am leichesten
die eigenen Definitionen wieder.
Zum Beispiel finde ich die Definition von BCNF aus meinen Skript
einfach und natürlich.
Sie können gern noch äquivalente Definitionen wissen,
oder auch zusätzlich 3NF definieren können.
Aber Sie sollten mein Skript nun nicht völlig beiseite legen,
und sich nur nach einem Buch vorbereiten
(obwohl Sie natürlich,
wenn es ein gutes Buch ist,
auch so eine gute Zensur bekommen können:
Es gibt aber viele eher praktische Bücher,
die bei den konkreten, formalen Definitionen der Normalformen
eher schwach sind).
Bei den Beispielen finde ich persönlich die eigenen Beispiele
eher langweilig,
aber Sie können Sie natürlich gerne verwenden.
Aber es wäre auch kein Nachteil,
andere Beispiele zu benutzen.
Allgemein versuche ich natürlich festzustellen,
ob die von Ihnen genannte Definition äquivalent
zu der aus meinem Skript ist
(manche äquivalenten Fassungen kenne ich ja auch schon).
Es wäre ja akademisch nicht akzeptabel
(und ziemlich diktatorisch),
wenn ich sagen würde,
daß ich ausschliesslich nur die eigene Fassung hören will.
Andererseits wäre es klug von Ihnen,
mein Skript zu lesen,
und zusätzlich weitere Literatur zu lesen,
und dann beides zu vergleichen.
Falls Sie einen Widerspruch finden,
könnten Sie ja auch vor der Prüfung in meine Sprechstunde
kommen:
Eventuell haben Sie ja auch einen Fehler in meinem Skript gefunden.
- Meine persönliche Meinung zu akademischen Wissen ist:
Entweder muß man verstehen,
warum etwas so ist (das ist die bessere Alternative),
oder man muß es aus mehreren, möglichst unabhängigen
Quellen gehört haben.
Selbst ausprobieren wäre natürlich auch eine wichtige
Möglichkeit,
von der Korrektheit der Information zu vergewissern.
- Versuchen Sie sich auch möglichst nicht selbst schlecht zu machen:
Daß Sie bei SQL-Anfragen immer so lange rumprobieren,
bis es funktioniert,
gehört nicht gerade zu den Dingen,
die ich gerne hören will.
- Falls ich etwas fragen sollte,
von dem Sie meinen,
daß es nicht dran war,
oder von dem wir abgesprochen haben,
daß ich das nicht prüfen werde,
machen Sie mich bitte darauf aufmerksam.
Ich bin ziemlich vergesslich und habe recht viele Prüfungen,
eventuell weiß ich auch nicht mehr ganz genau,
was ich in welchem Semester genau geschafft habe.
Ich will aber ganz sicher keine bösen Tricks machen.
Empfehlungen zur Prüfungsvorbereitung
- Praktische SQL-Erfahrungen sollten Sie durch Übung
am Rechner erworben haben.
SQL ist eine spezielle Programmiersprache,
und Programmieren können ist mindestens zum Teil ein Handwerk.
Es ist sehr zu empfehlen,
daß Sie Anfragen praktisch mit einem DBMS (wie z.B. Oracle)
üben.
Auch Dinge wie die Verletzung von Integritätsbedingungen,
Sperren, Deadlocks etc. sollten Sie einmal ausprobiert haben.
- Üben Sie zu Hause mündliche Prüfungen:
Stellen Sie sich vor,
der Professor hat die Frage X gestellt,
und antworten Sie laut.
Es reicht nicht,
alles zu wissen,
man muß es dann auch formulieren können.
Übrigens gibt es in der Prüfung auch immer Papier,
wo Sie etwas aufschreiben können.
- Sie können sich auch in einer Gruppe gegenseitig abfragen.
- Stellen Sie sich vor,
Sie wären der Professor.
Was würden Sie denn fragen?
- Vielleicht schreiben Sie sich das Wichtigste noch einmal selbst
auf wenigen Seiten zusammen.
- Lesen Sie nicht nur das Skript,
sondern auch mindestens ein Buch.
Jeder Professor freut sich,
wenn Sie mehr wissen,
als in der Vorlesung dran war.
Sie können sich bei dieser Gelegenheit auch eine
eigene Meinung über die Stoffauswahl bilden,
und die Dinge kritisch hinterfragen.
Das zeichnet einen guten Studenten/eine gute Studentin aus.
- Selbstverständlich können Sie mit speziellen Fragen
vor der Prüfung
auch zu mir oder meinen Mitarbeitern in die Sprechstunde kommen.
Wenn Sie mich dagegen nur allgemein über Stoff,
der für Prüfungen über Datenbanken I relevant ist,
fragen würden,
würde ich Sie nur auf diese Webseite verweisen.
Sollte es aber eine Wiederholungsprüfung sein,
sollten Sie rechtzeitig vor der Prüfung zu einer Konsultation
kommen.
Ich könnte Ihnen dann schon ein bißchen
"auf den Zahn fühlen",
und vielleicht Hinweise geben,
ob Sie meiner Ansicht nach ausreichend vorbereitet sind
für die Prüfung.
Natürlich ist das nur eine unverbindliche Einschätzung,
am Ende zählt allein die eigentliche Prüfung.
Falls Sie die Vorlesung nicht bei mir gehört haben,
sollten Sie auch rechtzeitig vorher in meine Sprechstunde kommen.
Wir könnten dann einen leicht modifizierten Stoffumfang
absprechen.
Erinnern Sie mich in diesem Fall aber direkt vor der Prüfung
nochmal an die Absprache.
Allgemeine Hinweise zum Prüfungsablauf
- Warten Sie bitte vor der Tür,
bis Sie hereingerufen werden
(zumindest wenn ein Schild "Prüfung - Bitte nicht stören"
an der Tür ist).
Oft sind mehrere Prüfungen hintereinander,
und sie könnten eventuell in eine Prüfung hineinplatzen.
Verzögerungen des Prüfungsbeginns bis zu ca. einer Viertelstunde
sind leider nicht ungewöhnlich,
gelegentlich sind auch längere Verzögerungen vorgekommen
(wenn mehrere Prüfungen vor Ihrer Prüfung
aus irgendwelchen Gründen länger als geplant gedauert haben).
Sollten Sie allerdings zu spät zu Ihrem Termin kommen,
müssen Sie so schnell wie möglich auf sich aufmerksam machen.
Normalerweise sind Sie durchgefallen,
wenn Sie nicht pünktlich da sind,
aber wir würden vermutlich überlegen,
was sich noch machen läßt.
- Bringen Sie bitte einen Ausweis mit Lichtbild
(Studentenausweis, Personalausweis, etc.)
zur Prüfung mit.
Wir müssen kontrollieren,
daß niemand anders unter Ihrem Namen die Prüfung ablegt.
- Die erste Frage ist immer,
ob Sie sich prüfungsfähig fühlen.
Gemeint ist damit,
daß Sie sich nicht krank fühlen.
Wenn Sie "nein" antworten,
würde die Prüfung nicht stattfinden,
aber Sie müssten dann ein Attest liefern.
Ein bißchen Nervosität ist dagegen ganz normal,
und in gewissen Grenzen auch sogar förderlich für Ihre Leistung.
Falls Sie sich aber richtig schlecht fühlen sollten,
wäre es natürlich möglich,
5 Minuten Pause zu machen,
so daß Sie nochmal etwas frische Luft schnappen können.
Das wäre auch während der Prüfung möglich,
wenn Sie das Gefühl haben,
"Nichts geht mehr".
Sie müssen nur darum bitten.
Bedenken Sie auch,
daß der Prüfer Ihnen im Prinzip erstmal wohlgesonnen ist:
Für den Prüfer ist es ja auch das angenehmste,
wenn er gute Zensuren verteilen kann.
Aber er muß natürlich die akademischen Standards einhalten,
und den Ruf der Universität Halle hochhalten.
Deswegen kann es gute Zensuren nur für gute Leistungen geben.
- Bei der Prüfung ist außer dem Prüfer
noch ein Beisitzer anwesend
(normalerweise ein Mitarbeiter des Datenbank-Lehrstuhls).
Der Beisitzer stellt keine Fragen.
Seine Aufgabe ist es,
ein Protokoll zu schreiben,
und zu überwachen,
daß alles mit rechten Dingen zugeht.
Er ist also gewissermaßen neutraler Beobachter.
Bei der Festlegung der Zensur im Anschluß an die Prüfung
diskutiert er mit.
- Wenn die Prüfung beendet ist,
müssen Sie kurz vor die Tür gehen.
Prüfer und Beisitzer diskutieren dann über die Zensur.
Wenn es etwas länger dauert,
bedeutet das vermutlich,
daß Prüfer und Beisitzer noch zwischen zwei Zensuren schwanken
- dies müssen aber keineswegs 4 und 5 sein.
Außerdem wird Ihnen in dieser Situation vermutlich alles etwas
länger vorkommen,
selbst wenn Prüfer und Beisitzer nur noch einmal kurz das Protokoll
durchgehen.
- Anschließend werden Sie hereingerufen,
und Ihnen wird die Zensur bekanntgegeben,
normalerweise zusammen mit einer kurzen Erklärung.
- Ich werde manchmal zur Kleidung gefragt:
Sie müssen nicht mit Anzug und Krawatte kommen,
wenn Sie sich darin nicht wohlfühlen.
Sie sollten nur Kleidung vermeiden,
die ablenkend wirkt.
Im allgemeinen soll die Kleidung beim Prüfungsergebnis keine Rolle
spielen,
aber Prüfer sind auch nur Menschen
(sie bemühen sich aber um
größtmögliche Objektivität).
Ein Student hatte mal bei einem Seminarvortrag ein T-Shirt mit einem
(guten) Witz an:
Ich glaube,
es war sowohl für ihn störend,
wenn er mich grinsen gesehen hat,
als auch für mich nicht konzentrationsfördernd,
das möglichst zu unterdrücken.
Es wäre auch freundlich,
militärische Kleidung sowie bewußt schäbige Kleidung
zu vermeiden.
Alles, was sie zu einem Familientreffen mit konservativen (älteren)
Verwandten anziehen würden,
könnten Sie wohl auch zur Prüfung anziehen.
Ich werde normalerweise einen Anzug tragen,
um zu zeigen,
daß ich mir der Bedeutung der Situation für Sie bewußt bin
(aber mich stört der Anzug nicht mehr).
- Ich wurde auch gefragt,
ob es während der Prüfung Feedback gibt:
Ja, selbstverständlich.
Das ist ja gerade der Vorteil einer mündlichen Prüfung.
Wenn ich mit einer Antwort nicht zufrieden bin,
werde ich vermutlich nochmal nachhaken.
Wenn es ganz schlecht läuft,
würde ich das wahrscheinlich irgendwann aufgeben,
aber das ist selten.
Ich bemühe mich auch,
allzu negativen Feedback während der Prüfung zu vermeiden,
um Sie nicht zu verunsichern.
Allgemein entsteht aus dem Feedback während der Prüfung
aber kein Anrecht auf eine bestimmte Zensur.
Die Zensur wird erst hinterher im Gespräch mit dem Beisitzer festgesetzt.
Wenn ich wenig nachhake,
heißt das nicht automatisch,
daß Sie eine 1.0 bekommen:
Für eine so gute Zensur wäre ja Voraussetzung,
daß die Informationen von Ihnen fließen,
und ich sie mir nicht durch ständiges Nachfragen von Ihnen
in kleinen Stückchen holen muß.
Den meisten Studierenden gibt der Prüfungsverlauf
aber schon ein gewisses Gefühl für die Zensur,
das im wesentlichen zutreffend ist:
positive Überraschungen bei der Bekanntgabe der Zensur sind jedenfalls
deutlich häufiger als negative.
Stefan Brass
(brass@acm.org),
13. März 2006
Original URL:
http://www.informatik.uni-halle.de/~brass/pruef_dbI.html
[HTML 3.2 Checked]
[Links Geprüft]