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.
Ich möchte öfters auch die Fremdschlüssel-Bedingung
formal aufgeschrieben haben.
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?
- Dann sollen Sie eine komplexere SQL-Anfrage formulieren.
D.h. mit Unteranfragen, Aggregationen, oder Selbstverbund
(explizite Tupelvariablen).
Relationenalgebra
- 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?
Normalformen
- Definition von funktionalen Abhängigkeiten.
- Implikation. Cover. Triviale Funktionale Abhängigkeiten.
- Kann man funktionale Abhängigkeiten aus einem
Beispielzustand automatisch ermitteln?
- Definition von BCNF.
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.
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 mach 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?
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
- 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
- Was ist die typische Datenstruktur für einen Index?
- Skizzieren Sie einen 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?
Sonstige Fragen
- Wie werden Nullwerte in SQL behandelt?
- ... (die Liste wird noch erweitert)
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.
- 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.
- 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.
Empfehlungen zur Prüfungsvorbereitung
- Praktische SQL-Erfahrungen sollten Sie durch Übung
am Rechner erworben 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.
- Bedenken Sie,
daß Sie auch rechtzeitig vor der Prüfung
zu Professor oder Mitarbeitern in die Sprechstunde kommen
können.
Das ist besonders wichtig,
falls Sie die Vorlesung nicht bei dem Professor gehört haben,
oder falls dies eine Wiederholungsprüfung ist.
Wenn dies Ihre erste Prüfung ist
- 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.
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.
- 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.
Stefan Brass
(brass@acm.org),
02. März 2004
Original URL:
http://www.informatik.uni-halle.de/~brass/db03/pruefung.html
[HTML 3.2 Checked]
[Links Geprüft]