Fachschaft Informatik

Prüfungsprotokolle


Prüfungsprotokolle lesen



Protokolle (18 gefunden)

Nr.PrüferFach
53 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

Datum der Prüfung: 
? (laenger her)

Benötigte Lernzeit als Empfehlung: 
~6h: zu wenig

Verwendete Materialien (Bücher, Skripte etc...): 
Skript

"Atmosphäre" der Prüfung / Verhalten der Beisitzer: 
sehr fair, allerdings strenge, klare Nachfragen

Prüfungsfragen:
Recovery, 
Joinmethoden (alle aufzaehlen, am Ende link join nicht vergessen), 
Lockprotokolle (2pl, strict 2pl, hierarchical locking, rax, multiversioning, ...)
Histogramm, 

Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...):
gute und faire Prüfung. Sven Herrschel als Beisitzer hat sich echt fair für
mich ausgesprochen. 

Nr.PrüferFach
115 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

Datum der Prüfung: 
-02.08.2005

Lernzeit: 
-knapp 2 Wochen

Verwendete Materialien: 
-Foliensatz zur Vorlesung + Datenbanken -
 Implementierungstechniken (Saake, Heuer, Sattler)

"Atmosphäre" der Prüfung / Verhalten der Beisitzer
-erst ein bissel Smalltalk zur Entspannung
-es gab Wasser und M&Ms 
-die Atmosphäre war wirklich locker
-die Beisitzerin war nett und hielt sich im Hintergrund

Prüfungsfragen
-angefangen wurde mit den Speicherhierarchien (Cache, RAM,
 Festplatte, Bandroboter)
-von Backup der Bandroboter sind wir dann zu Recovery   
 gekommen
-erst wieder allgemein, was ist Recovery, was macht es, hier
 wollte er eine Definition hören (Konsistenz der  
 Datenbank...)
-dann ein wenig das Logfile erklären, sowie Undo/Redo
 Recovery erklären
-als nächstes dürfte ich mir einen Multidimensionales Index
 aussuchen und erklären --> Grid File im Detail mit Vor- und
 Nachteilen
-dazu nen Vergleich vom Grid-File und kd/b Baum
-danach noch ein wenig R-Tree erläutern
-zum Abschluss allgemein Query Abarbeitung ( SQL, Parsen,
 Operator Tree, Optimierung)
-anhand einer Beispielquery erklären, kurze IO Abschätzung,
 verschiedene Szenarien (zu wenig RAM)

Note: 2.0


Fazit:
-nette, entspannte Prüfung
-bei Schwächen wird eine Zeit lang nachgehakt
-Bewertung halte ich für sehr fair

Nr.PrüferFach
116 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung

3. August 2005, 10 Uhr

= Benötigte Lernzeit als Empfehlung

Das kann man ja allgemein nicht sagen, hängt von einem
selber ab. Ich hatte mir am Tag vorher nochmal die Folien
angeguckt und sonst in der Vorlesung größtenteils gut
aufgepasst.

= Verwendete Materialien (Bücher, Skripte etc...)

Vorlesung und Folien.

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer

Locker, kein Problem. Aber fordernd. Beisitzer hat in der
Prüfung selbst nichts gesagt.

= Prüfungsfragen

B-Baum: was, wie, Operationen, Höhe, Füllgrad. Vergleich mit
Binärbaum.

Join-Algorithmen: Index-Join, Hash-Join, Hybrid-Hash-Join,
Sort-Merge-Join. Wichtig: Komplexität der Algorithmen wissen
und erklären können. Da habe ich viel rumgestammelt und
nicht gewußt.

SQL-Query hingeschrieben, (naiven) Operatorbaum aufmalen,
Optimierungen aufzeigen. Übergang zur

Optimierung der Join-Reihenfolge: wie (dyn. Progr.), was ist
mit Kreuzprodukten, Left-deep-Trees vs. Bushy-Trees.
Spezialfrage: Aufzählung aller Join-Trees, inkl. Bushy-Trees
(kam nicht in der VL): Ind.-Vor: Alle optimalen Join-Trees
für k Rel. sind aufgezählt. Ind.-Schritt: Optimalen Tree
raussuchen aus allen Joins aus Join-Tree A und B mit |A| +
|B| = k + 1 und A geschnitten B = leer.

= Note (Optional)
2,0

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)

Ich fands gut und angemessen. Man hat nicht viel Zeit,
nachzudenken, die Prüfung ist schneller vorbei als du
Blaubeerkuchen sagen kannst. Daher sollte der Stoff sitzen.

Nr.PrüferFach
137 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
24.10.2005
= Benötigte Lernzeit als Empfehlung
3 Tage

= Verwendete Materialien (Bücher, Skripte etc...)
aus Folien Zusammenfassung geschrieben, WWW, empfohlene 
Literatur 

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
- kleiner Talk am Anfag
- Beisitzer hat nur Protokoll geführt

= Prüfungsfragen
- durfte mir ein Thema wählen
  - Recovery/Logging
    - Undo, Redo, Undo/Redo, Recovery, Checkpointing
      alles erklären    
    - diverse tiefgehende Fragen zu diesem Thema
    - viel zum Zusammenhang und globalen Kontext 
      gefragt/erzählt (Transaktionen, Konsistens der DB,...)
    - man sollte sich richtig gut mit dem Eistiegsthema
      auskennen und viel von sich aus erzählen

- Prof. Leser schrieb Query auf und meinte daran arbeiten
  wir bis zum Schluß
  - Query war mit Subselect, also Umformen
  - Operatorbaum aufschreiben (habe noch was von 
    Optimierung erzählt und was man machen kann/sollte)
  - er gab mir dann Kardinalitäten und Selektivitäten
  - berechen die Ergebnisstupel (war nicht ganz so einfach,  
    war keine Dynamische Programierung wie in der VL.)
  - anderen Operatorbaum für die Query aufschreiben und 
    wieder Ergebnistupel und Zwischenergebnisse berechnen
  - jetzt entscheiden welcher Plan besser ist

= Note (Optional)
1,3

= Fazit (Gute/schlechte Prüfung)
Prüfung lief super. Prof. Leser hat immer mal wieder einige 
knifflige Fragen gestellt. Ich habe viel von mir aus 
erzählt. Er hat einige Fragen zum Verständniss gestellt und 
einige um die Prüfung in seine Richtung zu lenken. Wenn man 
viel von sich aus erzählt, dann fragt er nur noch 
vereinzelt, damit man auch wirklich alles abdekt. Ich wusste 
mal auch wenige Kleinigkeiten nicht, war wohl angesichts der 
Note nicht so schlimm.

Nr.PrüferFach
188 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
29.08.2006
= Benötigte Lernzeit als Empfehlung
3 Wochen
= Verwendete Materialien (Bücher, Skripte etc...)
Vorlesungsfolien + Mitschriften!
Es empfiehlt sich sehr die Vorlesung zu hören, auch wenn es
häufig etwas holprig wird und vieles im Verborgenen bleibt.
Prof. Freytag stellt in der Prüfung ähnliche Fragen wie in
der Vorlesung und bezieht sich zuweilen sehr explizit auf
die Vorlesungsfolien (s.u.). Entsprechende Mitschriften sind
also eine riesige Hilfe für die Prüfungsvorbereitung.
Was man in der Vorlesung nicht mitbekommen hat, und sich
auch  mithilfe der zuweilen kryptischen Folien nicht
nachvollziehen lässt, kann man hier nachlesen: 
Härder Rahm, "Datenbanksysteme - Konzepte und Techniken der
Implementierung"
Schneider, "Implementierungskonzepte für Datenbanksysteme"
Cormen, Leiserson, Rivest, "Introduction to Algorithms"
Kemper, Eickler, "Datenbanksysteme".
Auch die englische Version der Wikipedia liefert zumindest
den ein oder anderen hilfreichen Hinweis. Wer`s ganz genau
haben will, kann natürlich immer auch zu den
Originalveröffentlichungen greifen. Die lesen sich auch mit
mäßigen Englischkenntnissen ganz gut :)  

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Leicht angespannte Prüfungsatmosphäre. Das Einstiegsthema
war frei wählbar. Prof. Freytag machte es einem durch
häufige Unterbrechungen nicht unbedingt leicht, in die
Prüfung hineinzufinden. Alles wirkte ein wenig hektisch.
Detaillierte Kenntnis von Algorithmen ist Pflicht. Hier
fragt er gerne sehr genau nach.

= Prüfungsfragen
Zugriffsmethoden:
Aufzählung der besprochenen Zugriffsmethoden /-strukturen.
Optimierung:
Dazu hier meine persönliche Lieblingsfrage:
"In der Vorlesung, da gab es so eine Folie, da stand kaum
etwas drauf. Nennen Sie mir doch bitte mal die Ingredients
der Anfrageoptimierung!"
Die Antwort: Optimierungsmethode = Suchstrategie + Regeln
zur Erzeugung von Alternativen + Kostenfunktion! Tja, da
muss man erstmal drauf kommen.
Kostenabschätzung für den Zig-Zag-Join.
Recovery: 
Redo-Undo-Algorithmus (Schaubild aus der VL! Group-commit!).

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Insgesamt eine etwas unruhige Prüfungsatmosphäre, mit der
ein oder anderen verwirrenden Frage. Ansonsten aber eine
rundum faire Prüfung und Benotung.

Nr.PrüferFach
274 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
07.08.2006

= Benötigte Lernzeit als Empfehlung
>= 1 Woche 

= Verwendete Materialien (Bücher, Skripte etc...)
Skript, Silberschatz

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Frank Huber hat überhaupt nichts gesagt;
ansonsten ruhig und "entspannt" (so entspannt wie
eine Prüfung eben sein kann)

= Prüfungsfragen
Was ist eine Transaktion?
- abgeschlossene Einheit von Operation auf der DB die den
  ACID-Prinzipien genügen
Was bedeutet ACID?
In welche Komponenten zerfällt der Transaktionmanager?
- Concorrency Controll Manager und Recovery Manager
Welche Komponente ist für welche ACID-Eigenschaft
verantwortlich?
- CCM: C, I 
- RM: A, D
Was ist das Prinzip des RM?
- Undo-Redo-Paradigma
REDO-UNDO-Algorithmus erklären (mit Zeichnung)
Was bedeutet das "Force" genau?
- Alle erzeugen Log-Records werden in der Reihenfolge
  in der sie erzeugt wurden auf Platte geschrieben
Wie kann man die Reihenfolge einhalten?
- durchnummerieren mit LSN (den Begriff LSN wusste ich
  nicht mehr)
Was bedeutet REDO bzw. UNDO?
- REDO: im Falle eines Systemfehlers wird wiederholt
- UNDO: im Falle eines Transaktionsfehlers wird zurück-
        gesetzt
Erklären Sie REDO und UNDO Schritt genauer:
- REDO: Log lesen; alle "commiteten" TAs wiederholen, also
        alle neuen Werten neu auf Platte schreiben; alle
        ativen TAs zurücksetzen mittels UNDO
- UNDO: aktive TAs zurücksetzen, indem der alte Wert auf
        Platte geschrieben wird und ein Abort-Record in
        das Log (auf Platte) geschrieben wird
Wie viele Plattenzugriffe benötigt das Schreiben des
Commit-Records bei REDO-UNDO (also das Ausführen des
"zweiten" Force)
- MINDESTENS einen Schreibzugriff (mindestens war wichtig;
  Log steht im Hauptspeicher - muss also nicht gelesen
  werden)
Was wurde noch für ein "Logging-Verfahren" in der VL
behandelt?
- Timestamp-Verfahren

Checkpointing und Fuzzy-Checkpointing erklären.
Checkpointing: - Alle W-TAs beenden und keine neuen
zulasse; alle modifizierten Seiten auf Platte schreiben;
Log kan komplett gelöschen werden -> unrealistisch
das DB nicht angehalten werden kann
Fuzzy: - BEGIN_CP-Eintrag in Log (mit Liste der aktiven
TAs); keine neuen W-TAs zulassen; alle modifizierten Seiten
auf Platte schreiben END_CP-Eintrag ins Log (auf Platte;
eventuell nochmals Liste mit allen aktiven TAs schreiben)
Was ist das Problem bei Fuzzy?
- "uncommitete" Werte wurden auf Platte geschrieben
Was sind die Auswirkungen bei Recovery?
Wann dürfen welche Log-Einträge geloescht werden?
- nach dem FCP können alle TA Einträge aller TAs gelöscht
  werden, die VOR dem BEGIN_CP-Eintrag "commitet" oder
  "abortet" wurden

Was ist ein Schedule?
- Mögliche Folgen von Operationen von TAs
Was für Arten von Schedules gibt es?
- Seriel, seriellisierbar, recoverable, ACA, strict
Alle Arten genau erklären - was sind die Unterschiede
(hier wusste ich den Unterschied zwischen ACA und strict
nicht mehr - strict überschreibt keine "uncommiteten" Werte
- ACA schon)
Was ist der Vorteil von strict gegenüber ACA?
- Rücksetzen ist einfacher
Welche Schedules werden in "echten" DBMS verwenden
- stricte

Aufzählen aller Access-Methoden:
- Sequenzielles File, Indizierte Files (B-Baum, B*-Baum,
Hashing)
Welche Hash-Verfahren gibt es?
- statisches, virtuelles, lineares Hashing
Wie funktioniert virtuelles Hashing?
- Es gibt h(x), Key-Attribut, i (wie viele Bits werden
  aktuell benutzt; muss auf Platte stehen)
  Bit-Array (muss auch auf Platte stehen) - Erklären was
  das ist etc.
Wie funktioniert ein Split eines Buckets?
- i hochzählen; die Werte des Buckets auf die beiben
  neuen richtig Verteilen (Wichtig: Split ist lockale
  Operation)
Erklären sie hierarchisches Logging bzw. Granularity
Logging?
- Sperren auf Seiten/Tupel etc.
Was hat das für einen Vorteil?
- Man kann große "Einheiten" ohne einen großen
  Verwaltungaufwand sperren, aber auch gleichzeit
  "fein" Sperren
Baum aufmalen mit beliebigen Granularitäten:
- ich habe DB, Tabellen, Seite, Tupel gewählt
Wie werden die Sperren angefordert?
- von der Wurzel des Baum aus "top down"
Was gibt es für Sperren mit Kompatibilitätsmatrix?
- S, X, IS, IX, SIX (bei der Matrix hatte ich zwei
  kleine Fehler drin; einen hat Freytag zuerst selbst
  nicht gesehen; den Zweiten hat er mit gesagt -
  ich konnte aber dann selbst erklären warum es falsch
  war)
Wie könnte man diese Problem noch lösen? (hier wusste
ich nicht was er hören will)
- "Degrees of Isolation"

Wie kann man NO-UNDO-NO-REDO implementieren?
- Shadowing
Was ist das? Wie funktioniert das?
- Kopie der Seite; Neues "Verzeichnis" für die neue
  Version - Wichtig (was ist dachte gesagt zu haben,
  Prof.Freytag aber meinte nicht gehört zu haben)
  neue Tabelle wird per Pointer (auf Platte geschrieben;
  daher ATOMAR) zur aktuellen Tabelle gemacht

Ich habe sicher ein oder zwei Fragen vergessen...
(die Reihenfolge ist wohl auch nicht 100%ig korrekt 
wiedergegeben)
[die angegebenen Antwort sind die, die ich gegeben habe -
(soweit ich mich dran erinnere) - für die Korrektheit
übernehme ich keine Haftung ;-)]
Es gab auch (fast) immer noch kleine Nachfragen, wenn die
Antwort nicht präzise genug war (bzw. nicht das gesagt
wurde was Prof.Freytag hören wollte). Ist leider immer
etwas schwierig genau zu wissen was er hören will. Man
kann sich etwas an der VL orientieren - er hat ja so
seine Lieblingsthemen.

= Note (Optional)
1,3

= Fazit (Gute/schlechte Prüfung , angemessene Benotung 
etc...)
ne 1,0 zu bekommen ist wohl unmöglich (da man nie ganz
genau weiß was Prof.Freytag hören will)

Noch ein Tip: Prof.Freytag legt Wert darauf, dass die
Terminologie stimmt und dass man versucht die Frage so
präzise wie möglich zu beantworten (also nicht drum rum
"eiern" sondern zum Punkt zu kommen)

Nr.PrüferFach
277 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
03.09.2007

= Benötigte Lernzeit als Empfehlung
ca. 1 Woche bei ständiger Anwesenheit in der Vorlesung

= Verwendete Materialien (Bücher, Skripte etc...)
vor allem das Script

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Die Atmosphäre war recht locker. Die mir unbekannte
Beisitzerin verhielt sich ruhig und schrieb die ganze Zeit
fleißig mit.

= Prüfungsfragen
TA: Was ist das? ACID kurz erklären. Welche Komponente des
TA-Managers ist für welche Eigenschaft zuständig.
CC: Welche unterschiedlichen Ansätze gibt es? Timestamping
erklären. Hierarchisches Locking erklären und ein Beispiel
aufzeichnen (inklusive Kompatibilitätsmatrix!).
Recovery: Welche Prinzipien gibt es? UNDO-REDO-Algorithmus
erklären und aufzeichnen. Checkpointing + Fuzzy
Checkpointing erklären.
Anfrageoptimierung: Welche Schritte werden ausgeführt? Wann
kann ein Index verwendet werden bei der physischen Optimierung?
Zig-Zag-Join: Erklären + Kostenabschätzung (herleiten).

= Note (Optional)
2.0

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Prüfung und Benotung waren in Ordnung, ab und an weiß man
nicht genau was Prof. Freytag von einem hören will. Außerdem
möchte er sehr detaillierte Antworten hören. Weiterhin
werden viele Verständnisfragen gestellt, die alleine durch
das Script nicht beantwortet werden, man sollte also alle
Konzepte sehr gut verstehen!

Nr.PrüferFach
278 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
2007-09-03

= Benötigte Lernzeit als Empfehlung
Ich habe mir ca. 2 Wochen Zeit genommen. Wer in der
Vorlesung etwas aktiver dabei ist und sich mit dem
Vorlesungsstoff begnügt schafft es sicher auch schneller.

= Verwendete Materialien (Bücher, Skripte etc...)
Vorlesungsskript
QGM-Paper, diverse Skripte und Paper aus dem Netz
Database System Concepts ISBN: 0071122680
Fundamentals of Database Systems ISBN: 0201542633

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Zu Beginn leicht angespannte Athmosphäre. Wahrscheinlich
weil die Prüfung davor nicht so super lief (ja, gegen Ende
konnte man das auch auf dem Flur ganz gut hören!). Es wurde
dann aber besser und die Prüfung hat sich immer mehr in
Richtung entspanntes Gespräch entwickelt. Der Beisitzer,
A. Nonym, hat nur protokolliert.

= Prüfungsfragen
Als erstes darf man sich ein Teilgebiet aussuchen (worauf
ich verzichtet habe).

Zugriffsmethoden aufzählen (ein- und mehrdimensional)

R-Bäume erklären.
Unterschiede zu B-Bäumen? - Keine totale Ordnung auf den
Schlüsseln. Prüfung auf räumliche Beziehungen wie
Enhaltensein und Überschneidung.
Was ist der große Nachteil gegenüber B-Bäumen? - Auch bei
Punktanfragen müssen i.A. mehrere Pfade traversiert werden.
Wieviele maximal? - Im ungünstigsten Fall alle.
Können Sie den Fall aufzeichnen? - Denk, denk, wenn sich
alle Objekte im Baum überschneiden und in diesem Bereich
gesucht wird (da brauchte ich etwas Hilfe).

Arten des dynamischen Hashings? - virtuelles / lineares
Virtuelles Hashing erklären. - Wichtig: Anpassung an Anzahl
UND Verteilung verschiedener Schlüsselwerte. Letzteres ist
der Unterschied zum linearen Hashing.
Wie passt sich virtuelles Hashing an die Verteilung an? -
Gezieltes spalten voller Buckets.
Was ist das Problem beim virtuellen Hashing? - Bit-Array
muss im Sekundärspeicher aktuell gehalten werden (Recovery).

Anfrageoptimierung
QGM grob erklären. - Boxen, Bedeutung von Duplikaten,
verschiedene Distinct-Attribute

Was ist die wichtigste Regel? - SELMERGE
Warum? Warum betreibt man überhaupt Query-Rewriting? - Eine
Box entspricht etwa einem SQL-Query Block. Mehr
Freiheitsgrade für die physische Optimierung, wenn alles in
einem Block steht. Typisches Rewrite: Subquery in Join
umwandeln.

Physische Optimierung.
Join-Methoden aufzählen. Zig-Zag-Join erklären und Aufwand
(Anzahl Seitenzugriffe) abschätzen.
Formulieren Sie das mal in einem einzigen guten deutschen
Satz - Da musste ich passen. Gemeint war: Für jeden geraden
Block der äußeren Relation wird die innere Relation
vorwärts, für jeden ungeraden rückwärts gelesen.

Transaktionsverarbeitung
Welche 2 Arten von Protokollen gibt es - Lock-Protokolle,
Timestamping-Protokolle. Ein paar harmlose Fragen zum Locking...

Granularity Locking erklären.
Was ist der Sinn? - Sperraufwand verringern.
Kompatibilitätsmatrix der Locks aufschreiben.

Einiges habe ich sicher vergessen, es kamen Dutzende Nachfragen.

= Note (Optional)
1,3

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Gute Prüfung. Manchmal versteht man einfach nicht worauf
Herr Freytag hinaus will. Er nimmt es einem aber nicht
krumm. Die Benotung ist absolut fair, aber geschenkt bekommt
man nichts. Reproduzieren reicht für eine sehr gute Note
nicht aus. Es kommen immer wieder Zwischenfragen die zum
Nachdenken zwingen. Detaillierte und präzise formulierte
Antworten sind gefragt.

Nr.PrüferFach
351 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung: 2008

= Benötigte Lernzeit als Empfehlung: >1 Woche

= Verwendete Materialien (Bücher, Skripte etc...):
Die Folien als Anfang und die empfohlenen Bücher zur Klärung
der offenen Fragen (da die Folien eben nur Folien sind).
Letztlich aber zählt bei der Prüfung die Notation und
Definition, welche während der Vorlesung gegeben wurde.

= "Atmosphäre" der Prüfung
Locker und weitgehend entspannt.

= Prüfungsfragen
- Dateistrukturen auf eigenen Wunsch
  (Heap, Sorted Heap/ISAM, static/dynamic/part. Hash, 
   Grid)
  -> B/B*, k-d, R mit Z-ordering auf Anfrage, weil ich es
     eher als Indexstruktur einsortiert habe
     (total vergessen: quadtree, octree)
- folgend: Erklaerung linear Hashing angefragt
  -> hätte am Beispiel der VL erklären können müssen
     (d.h. mit der Funktion h_i+j(K) = K mod (2^j * M) )
  -> die Bücher geben das zu abstrakt wieder
- Sprung zu Joins
  -> alle Join-Methoden aufzählen
  -> ZigZag (scheint beliebt) erklären und Kostenfunktion
  -> Part. Hash-Join erklären ... Mist
- Query Optimization: physical/logical
  -> logical warum? -> mehr Freiheitsgrade
  -> generell: Kostenfkt. + Suchstrategie + Rewrite
  -> Suchstrategien (breadth/depth, heuristisch, probabil.)
  -> wieso Kostenfunktion? Und wie?
     -> Selectivity, SysCat, Histogramme! (detailliert)
- Transaktionen:
  -> Lock-Protokolle (2PL, RAX, timestamp, hierarchical)
  -> Timestamping Unterschied? -> keine Locks
  -> wie funktioniert hierarchical/granularity locking?
     -> Hierarchie aufmalen
     -> "intention" darauf erklären (von root als Beding.)
     -> Lock-matrix erklären

= Note: 2.7

= Fazit
Note ist für die nicht stringente Leistung in Ordnung.
Ich habe vier oder fünfmal weitergewinkt, weil ich es nicht
wusste und keine Zeit mit Stottern vergeuden wollte. Zweimal
hat er dabei protestiert und nochmal mit Hinweis der
Richtung nachgefragt, damit kam ich dann voran. Aber das
kostet auch Punkte.
Seiner Meinung nach wusste ich vieles nur zu oberflächlich.
Wenigstens zweimal (Filestrukturen vs. Index und Linear
Hashing) beruhte das auf anderen Definitionen, die ich im
Kopf hatte. Seine Folien und seine Vorlesung sind
ausschlaggebend!

Nr.PrüferFach
466 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
26.07.2010

= Benötigte Lernzeit als Empfehlung
bei stetiger anwesenheit (nicht nur körperlich, auch geistig!) reichen 3-4 tage zur wiederholung

= Verwendete Materialien (Bücher, Skripte etc...)
vorlesungsskript, QGM-paper

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
atmosphäre war sehr entspannt, katja tham hat nur mitgeschrieben

= Prüfungsfragen
erster bereich ist frei wählbar, habe in aufregung aber verzichtet

- transaktionsmanagement, was ist eine transaktion, ACID (mit zuordnung zu CCM und RM
- zu RM REDO-UNDO algorithmus
advantage / disadvantage
(die frage nach 5. methode (shadowing) kam, nach dessen nennung (leider von ihm) aber auch direkt weiter)
- zu CCM granularity locking (lock tabelle + beispiel)

switch zu
- files
 was gibt es (heap files, hashing, index files)
hashing noch unterteilung, statisch, virtuell, linear
 - virtuelles hashing erklären (hashfunktion, buckets, used-buckets-bit-array)
vorteil gegenüber statischem hashing -> keine überlaufseiten
nachteil -> bit array braucht transaktionsmanagement (error recovery etc.)

- letzter punkt physische optimierung von anfragen (optimization method = search strategy + "generation rules" for alternativ "search states" + cost function for comparing alternativs)

= Note (Optional)
bewertung insgesamt: gute bis sehr gute antworten, aber leider nicht so weit gekommen, wie gern gewollt (habe bei einiges sachen ein wenig gestottert, mir sachen aus der nase ziehn lassen müssen -> time consuming)
2,0

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
"die prüfung war gut" (zitat freytag)
bei obiger begründung der bewertung absolut zufriedenstellend
allgemeiner eindruck von freytag bestätigt: streng aber fair!

Nr.PrüferFach
574 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
19.07.2012
= Benötigte Lernzeit als Empfehlung
zu empfehlen ist die ständige, wachsame (!) Anwesenheit während der Vorlesung. Prof. Freytag erklärt viel und die Folien geben nicht alles wieder, was in der Prüfung erwartet wird. Bei Anwesenheit circa 1 Woche sonst gerne 2-3 Wochen.
= Verwendete Materialien (Bücher, Skripte etc...)
Skript + Vorlesungsnotizen, genannte Paper zB QGM (eher nicht so wichtig).
Ich hatte noch das Buch \"Datenbanksysteme\" von Härder - Rahm als Nachschlagewerk benutzt, kann dies aber NICHT empfehlen. Sehr chaotische Darstellung und für die Definitionen sind Freytags Folien maßgebend!
= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer
Name des Beisitzers ist mir entfallen, er verhielt sich aber völlig ruhig.
Die Atmosphäre war angenehm ( so angenehm wie eine Prüfung eben sein kann :). Zunächst durfte ich mir ein Thema aussuchen - das trägt zu einem guten Einstieg bei. 
= Prüfungsfragen
Wahlthema : Recovery
- Was ist eine TA? ACID?
- Worin zerfällt der Transaktionsmanager? 
>> RM & CM 
- Was ist für welche ACID Eigenschaft zuständig?
>> RM-> A,D
>> CM-> C,I
- Welche Algorithmen wurden behandelt?
>> 4 bzw. 5 wenn man \"Shadowing\" als eigenen Algorithmus versteht; für mich war das eher eine Implementierung für NO-Undo - No - Redo; was er auch akzeptiert hat
- Undo / Redo erklären (detailliert!!!)
- Warum undo / redo ? 
>> am häufigsten verwendet
- Was bedeutet Force?
- Wie kann man die Reihenfolge sicherstellen?
- Wann können Werte auf Platte übernommen werden ?
>> da wusste ich nicht, worauf er hinaus wollte: wenn der Wert der LSN im Log größer ist als der Wert der LSN im MM-DB.
Damit läuft es auch einen In-Int - Vergleich raus und ist einfacher. 
- Wie hängt 1. und 2. Force \"zusammen\"? bzw. was will man mit dem 2. Force erreichen?
>> komisch formulierte Frage; man will mit dem 2. Force nur noch das Commit-Schreiben (Group-Commit: sammeln vieler Commits von vielen TAs => spart Schreibzugriffe!)
- Checkpointing / Fuzzy-Checkpointing erklären (detailliert!)

- Sprung zu Schedules: Welche Arten gibt es ? Diagramm aufmalen!
- Warum gibt es neben serialisierbaren noch weitere? Probleme bei serialisierbaren ?
>> recovery ist nicht sichergestellt bzw. schwierig
- welche werden von DBMS verwendet?
>> strict!

- Sprung zu Zugriffsmethoden
- welche gibt es ? (Bäume, Hashing, seq. File)
- Welche Arten vom Hashing gibt es?
- virtuelles Hashing genau (!!!) erklären
- wie funktioniert der Splitt eines Buckets? Wann passiert er?
>> hier kam auch die Frage, wie man vom Bucket K die Split-Buckets berechnet... puh! Dazu muss man halt K in die Binärzahl umwandeln, haha meinte er nur, \"machen sie das doch mal\" >.< konnte ich natürlich nicht aus dem Kopf. Er hat aber nicht ganz unrecht ,dass angehende Informatiker sowas können sollten. Wieder ein Beispiel für eine \"Unberechenbarkeit\" in Prüfungen. Spielte aber sicher keine große Rolle für die Bewertung
- Wie findet man jetzt einen Wert? Algorithmus erklären

- Sprung zu Anfrageoptimierung (nicht mein Thema!)
- Ingredients der Anfrageoptimierung?
>> optimierungsmethode = Suchstrategie + alternative für searchstats + Kostenfunktion zum Vergleich
- Welche Suchstrategien gibt es? 
>> hier sollte man in der VL anwesend sein! Die Folien geben das SEHR verwirrend wieder. gefragt war so etwas wie Breiten/Tiefensuche; Propabilistische Algorithmen etc. da hatte er mich kalt erwischt => nur noch Gestammel ;)

- Sprung zu Joins bzw. deren Bewertung
- Was ist wichtig für Bewertung? 
>> Seitenzugriffe auf Platte (wichtig, MM ist egal!)
- Kosten beim Sort-Merge-Join aus? (Komplexitätsklasse reichte) 


Prof. Freytag stellt zahlreiche Fragen zum Verständnis, man sollte die Algorithmen, inbs. die seiner Lieblingsthemen (siehe Protokolle!) SEHR GENAU kennen und vor allem auch verstehen. Nur wiedergeben reicht hier nicht aus.


= Note (Optional)
2.0 - Ihm hat missfallen, dass er mir einige Informationen \" aus der Nase ziehen\" musste. Außerdem waren manche Antworten (wohl besonders zum Schluss) zu ungenau. 
= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Für mich eine der schwersten Prüfungen im Inf-Hauptstudium, dicht gefolgt von Rechnerkommunikation. Freytag will die Antworten sehr präzise und drum herum reden bringt nichts. Gut formulierte Antworten sind gefragt. Außerdem muss man die Algorithmen gut verstehen, es kommen zahlreiche Fragen über das Wiedergeben hinaus. 
Ansonsten eine angenehme und sehr faire Prüfung. Mein Eindruck von Prof. Freytag wurde bestätigt: streng aber fair!

Nr.PrüferFach
587 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
25.02.2013

= Benötigte Lernzeit als Empfehlung
Ich empfehle: 7 Tage Zeit. Es dauert, bis man alle Formeln und Beispiele durchgeacket und nachvollziehbar verstanden hat. 3 Tage Vollzeitlernen haben bei mir gereicht, jedoch konnte ich auch Kommilitonen fragen, wenn ich nicht weiter kam, die ein, zwei Dinge schon durchdrungen hatten. Ich empfehle hier besonders Lerngruppen, um die vielen Formeln und Beispiele auch zu verstehen. Gleiches dann auch kurz vor der Prüfung, wo jeder die Themen noch mal kurz erklärt bzw. auch sich selbst kontrolliert. Natürlich ist die Lernzeit Typ-abhängig!

= Verwendete Materialien (Bücher, Skripte etc...)
Hauptsächlich die Folien. Ich hatte mir das Buch >Datenbanken: Implementierungstechniken< von Saake, Heuer und Sattler noch ausgeliehen (aus der Bib), aber habe am Ende bis auf 1-2 Seiten nichts gelesen. Ansonsten viele Internetseiten zum Recherchieren der Formeln. (Google zeigte mir öfter als Treffer >Datenbanksysteme: Eine Einführung von Alfons Kemper,André Eickler< bei Google Books, was sich auch recht gut las)
Nicht zu verachten die Prüfungsprotokolle!!!! ... aber da du dies hier schon liest :)

= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer
Sehr entspannt. Da ich im 1. Masterjahrgang bin und es mir nicht so gut ging + starke Aufregung, dauert der Smalltalk etwas länger als die geplanten 5 Minuten. Er lenkte dann aber schon zur Prüfung, als es genug war. Der Beisitzer war ruhig, hat nur ab und zu mal genickt oder nen skeptischen Blick geworfen, den mal sich zu Herzen nehmen sollte und evtl. noch mal kurz nachdenkt. Ansonsten sagt Herr Leser einem aber auch, ob die Antwort in Ordnung ist oder nicht.

= Prüfungsfragen
Ich habe mit einem Wunschthema angefangen: Recovery
- Was ist Recovery, wann wird es gebraucht -> Fehlertypen
- Fehlertypen aufzählen + Beispiele, Recovery einordnen und Lösungsvorschläge für die anderen nennen (z.b. RAID für Plattenfehler)
- Erklären von REDO Logging: kurz erklärt, aber um den Vorteil herauszuheben auch kurz auf UNDO eingangen -> Informationsfluss / IO-Fluss
- Welche Abhängigkeiten gibt es bei der IO? Wie sieht der Zugriff auf IO dann aus? (batch/random) 
- Warum teilt man Log und Daten auf separate Platten
- Wie sieht das ganze bei UNDO/REDO aus?

Übergang zum Thema RAID:
- Erklären sie RAID 1 und 0 (Zeiten für Lesen/Schreiben, Ausfallsicherheit, Nettoverbrauch des Bruttoplatzes)
- - Was passiert bei kleinen Dateien mit wenigen Blöcken? Lohnt es sich hier? -> Da Seektime der statische und größte Faktor: weniger!
- Erklärung von RAID 1+0 (10): Wie sehen die genannten Punkte hier aus?
- - Wie schnell kann man bei RAID 10 lesen? (->mindestens 4fach, da mind. 4 Platten)
- Erklärung von RAID 5 (hier auch explizit nennen, dass Daten + Parität die Platte jeweils wechseln)
- - Wieviele Platten dürfen ausfallen (bei 3 Platten)? -> 1, wie kann man das steigern? Mirroring oder Parität häufiger speichern, wobei dann natürlich nur 1 Datenplatte maximal ausfallen darf + x Paritätplatten). < hier bin ich mir immer noch unsicher
- Wie sind die Ausfallzeiten einzuschätzen bei RAID 1 und 0? -> eher optimistisch, da idR. beide Platten nicht unabhängig ausfallen sondern dank Überspannung zusammen o.ä. (für 0 ebenfalls opt. auch wenn schon verringert durch MTTF/N)

Themawechsel zu Hashing
- Erklären sie allg. Hashing, wie bildet man eine Hashfunktion (z.b. über statistische Informationen, damit sie eine möglichst Gleichverteilung erstellt)
- - Wie viele Buckets erstellt man? Durch die Informationen hätte ich eben \"k\" gesagt, aber eine DB nutzt natürlich den ganzen Speicher, wenn möglich, also m Buckets
- - Wie werden die Daten aufgeteilt? -> alle lesen, hashen und wieder schreiben
- - Wie viel IO hat man hier? IdR 1 IO, aber durch Overflow-Buckets auch mehr möglich

- Dynamische Hashverfahren? > extensible und linear Hashing
- - Wie funktioniert extensible Hashing, wann wird ein Block gesplittet, wie passt sie sich dynamisch an?
- - -> Hashtabelle immer verdoppeln und Werte des Overflow-Blocks neu hashen und aufteilen; leere Buckets zeigen auf das bisherige Bucket
- - Aussagen zur Füllgarantie?
- - Fangfrage: Wenn man 50 Mio mal den gleichen Wert einfügt, wie groß wird die Hashtable (ohne Overflow)? --> Wenn dein Bucket nur 5 Werte fasst, reichen auch 6x gleicher Wert und die Hashtable würde dauernd splitten bis ins unendlich (<Antwort!), da die Werte nie aufgeteilt werden dank gleichem Hash < Hier habe ich erst falsch geantwortet, weil ich eine Formeln nennen wollte, bis er mir den Tipp gab, dass es eine Fangfrage ist..
- - Was passiert bei nicht unique (> doppelten) Werten? -> man braucht Overflow-Buckets, auch wenn bei extensible das nicht vorgesehen ist per se
- - Wie geht das löschen? -> Leere Buckets zusammenfassen, ggf. 2 Buckets mit jeweils unter der Hälfte an Werten zusammenfassen (je nach Implementierung)
- - Wann wird die Hashtabelle verkleinert: Wenn die >Local Depth< überall ungleich der >Global Depth< ist. (-> mindestens 50% der Buckets ohne eigenen Block)
- Erklären sie linear Hashing: Nur allgemein, welche Parameter braucht man, wie sieht die Cycle-Funktion aus, welche Bedingungen gibt es, was wird geteilt und welche Werte werden aufgeteilt

Ob meine Antworten hier jetzt richtig sind, sei mal dahin gestellt ... 

= Note (Optional)
1.0

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Trotz der Aufregung, die sich auch nicht so recht legen wollte, eine gute Prüfung. Durch das Wunschthema, konnte ich zumindest anfangs punkten und man gewinnt Selbstvertrauen. Die detaillierten Nachfragen bringen einen immer wieder ins Grübeln, wo man jedoch kurz nachdenken sollte und dann antworten. Wenn man falsch antwortet, hat man ggf. auch Zeit es noch mal zu korrigieren, je nach Frage. Die Note hat mich sehr gefreut, hatte ja auch 1-2 Patzer drin, aber die großteils selbst korrigiert. --> Fehler & Nachdenken sind also erlaubt. 
Wenn man eine Frage vergisst / nicht ganz versteht, unbedingt nachhaken - bringt einem etwas Zeit zum Nachdenken sowie evtl. eine zusätzliche, andere Sichtweise auf das Problem. Kleine Hinweise werden auch gegeben, wenn man nicht weiterkommt bzw. in die falsche Richtung geht (bei mir bei local/global Depth @Extensible Hashing).

Nr.PrüferFach
636 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
19.02.2014

= Benötigte Lernzeit als Empfehlung
1-2 Wochen bei ständiger Anwesenheit in der Vorlesung

= Verwendete Materialien (Bücher, Skripte etc...)
1) Folien + Aufzeichnungen aus der Vorlesung 
(um die Folien zu verstehen muss man in der Vorlesung anwesend und aufmerksam gewesen sein)
2) Zum Nachschlagen bei Verständnisproblemen / für mehr Infos:
- \"Datenbanksysteme - Konzepte und Techniken der Implementierung\" (Härder, Rahm)
- \"Datenbanken - Implementierungstechniken\" (Saake, Heuer, Sattler)
- \"Concurrency control and recovery in database systems\" (Bernstein et. al.)
  
= \"Atmosphäre\" der Prüfung / Verhalten der Beisitzer
Insgesamt relativ locker und \"entspannt\" (soweit dies eben in einer Prüfung möglich ist). Beisitzer bis auf die Formalitäten komplett ruhig.

= Prüfungsfragen
-> Wunsch-Themengebiet: Recovery

1) Transaktionen
- Was ist eine Transaktion? ACID-Eigenschaften nennen.
- Aus welchen Komponenten besteht TA-Manager? 
- Welche Komponente ist für welche ACID-Eigenschaft zuständig?
- Wie wird Atomarität durch Recovery-Manager gewährleistet? 
  -> Undo aller Änderungen von abgebrochenen TAs, Redo / Speicherung aller Änderungen bei Commit
- Sperrverfahren / -protokolle nennen und RAX-Protokoll erläutern
  -> Nach \"Umwandlungsanfrage\" von A nach X keine weiteren S-Sperren zulassen -> sonst verhungert TA mit der A-Sperre
  -> Immer nur eine TA mit einer A-Sperre auf einem Objekt möglich -> 2 As sind inkompatibel 

2) Recovery
- Recovery-Algorithmen nennen und UNDO-REDO-Algorithmus erläutern
    -> Force = mengenorientierte Operation + Rückschreiben der Einträge in Einfügereihenfolge
    -> Entkopplung von Commit + Disc (nur noch Sychronisation zw. Log und Disc)
- Checkpointing und Fuzzy-Checkpointing erläutern

3) Anfrageoptimierung
- Was sind die Bestandteile der Anfrageoptimierung?
  -> Suchstrategie + Alternativen-Generator (zur Aufspannung des Lösungs-/Suchraums) + Bewertungs-/Kostenfunktion
- Was ist bei der Kostenfunktion relevant im DB-Bereich?
  -> Anzahl der Seitenzugriffe auf dem Sekundärspeicher und(!) Anzahl Tupel
- Join-Algorithmen nennen und ZigZag-Join + Grace-Join erläutern (inkl. Kostenberechnung)
  -> Main-Memory-Join nicht vergessen
- Was passiert wenn eine Partition beim Grace-Join nicht in den Hauptspeicher passt?
  -> Entweder anderen (Hash-)Join anwenden (bspw. Simple Hash Join, Partitioned Hash Join) oder nochmal partitionieren mit Grace-Join-Verfahren
- Welche Komplexität hat der Grace-Join? -> linear
  -> Nested Loop und Blocked Nested Loop -> quadratisch

4) Zugriffstrukturen
- Welche Zugriffsstrukturen kennen Sie?
  -> Aufzählung aller behandelten ein- und mehrdimensionalen Zugriffsstrukturen
  -> Bei Mehrdimensionalen Struktur: ruhig auch Abbildung von mehrdimensionalen Anfragen durch eindimensionale Zugriffstrukturen nennen
 - Erläuterung des UB-Baumes + Z-Ordering (inkl. Zusammenhang)
  -> Bei Objekten die mehrere \"Felder\" belegen -> Speicherung der entsprechende Regionen / Intervalle auf der Kurve im Baum  

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Gute Prüfung. Wie in den anderen (bzw. allen) Protokolle erwähnt, achtet Prof. Freytag stark auf eine präzise Formulierung der Antworten. Ein gutes Gefühl hierfür bekommt man aber schon in den Fragerunden zu Beginn der Vorlesung (Anwesenheit lohnt sich also :-)). In vielen Fällen ist es hilfreich kleine Skizzien zu den Erläuterungen aufzumalen und anhand derer die Algorithmen zu erläutern. Zudem stellt Prof. Freytag immer wieder Verständnisfragen zu den Algorithmen, man sollte diese also wirklich beherrschen!     

Nr.PrüferFach
783 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
28.02.2017

= Benötigte Lernzeit als Empfehlung
Habe verteilt über ~2 Wochen die Kapitel für mich zusammengefasst (also etwa 1 pro Tag) und dann direkt vor der Prüfung noch 5 Tage zum Lernen Zeit gehabt. Ist schon sehr viel Stoff wenn man wirklich tief einsteigen will, mit den 5 Tagen bin ich so gerade ausgekommen.

= Verwendete Materialien (Bücher, Skripte etc...)
Skript, Saake (Grundlage für das Skript)

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
langer Smalltalk, genauso sympathisch wie sonst auch

= Prüfungsfragen
Im Gegensatz zu den etwas älteren Prüfungsprotokollen gab es kein Wunschthema zum Einstieg (auch bei meinen beiden Vorgängern nicht).

Themen waren Speicherarchitektur, Joins (mit Komplexität und im Vergleich) und in dem Kontext Merge-Sort (auch mit Komplexität) sowie Hashing (Grundlagen + ein dyn. Verfahren vorstellen). 

Prof. Leser hilft schnell auf die Sprünge wenn man mal an einer Frage/Stelle hängt und formuliert näher oder um. 

= Note (Optional)
1,3

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Benotung angemessen für die Leistung, und wie erwartet und von Prof. Leser angekündigt - Bestnoten werden nicht verschenkt, aber wer sich etwas auskennt braucht auch keine Sorge haben. Wer eine 1,0 will sollte souverän auftreten ;)

Nr.PrüferFach
837 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
April 2018

= Benötigte Lernzeit als Empfehlung
mind. 2 Wochen

= Verwendete Materialien (Bücher, Skripte etc...)
Skripte, Wikipedia, Google

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
relativ locker

= Prüfungsfragen

Einstiegsthema (kann selbst gewählt werden): Transaktionen
- Was ist eine TA? (logische Einheit von Operationen, ACID)
(es folgte: etwas verwirrende Frage, bei der er auf Schedules hinaus wollte)
- was ist eine Schedule?
- welche Klassen von Schedules gibt es?
- serialisierbare Schedules: was muss gewährleistet sein?
(er wollte auch hören: Reihenfolge der Operationen innerhalb einer TA darf nicht verändert werden)
- zu anderen Schedules genau erklären, was gewährleistet sein muss

Lock-Protokolle
- was war das "allgemeine Modell"
(er wollte darauf hinaus, dass es DB und Log gibt, bestehend jeweils aus MM-Teil und Sekundärspeicher-Teil)
- "wir hatten das ja graphisch dargestellt, malen Sie das mal auf" 
(2 Boxen "DB" und "Log" jeweils mit "MM-" und "S-" drin, er hat auch erwartet, dass die MM-Teile 
eingekreist werden und als Buffer bezeichnet, die S-Teile als stabiler Teil der DB)
- UNDO-REDO erklären (musste exakt wie Schaubild in der VL gezeichnet und dann erklärt werden)
-- diverse Fragen dazu, u.a. warum erst in Log, dann in DB schreiben?,
-- Force-Operator genau erklären (wichtig: wird in gleicher Reihenfolge auf Disk geschrieben wie in MM)
-- warum ist die Reihenfolge wichtig, man könnte sich ja auch LSN (Log Sequence Nummer) angucken?
(falls Fehler passiert, nachdem der Commit schon auf Disk geschrieben wurde)

Zugriffsmethoden
- alle bekannten aufzählen (er ist nicht zufrieden, bis er wirklich alle behandelten gehört hat, auch mehrdimensionale)
- R-Tree genau erklären (u.a. auch Approximation von Polygonen durch Rechtecke)
- Virtual Hashing genau erklären (Buckets, Hashfunktion, Bitvektor), Fragen u.a.:
-- wie wird Bucket gefunden, wenn nach best. Wort gesucht wird (Hashwert berechnen, diesen in binär umwandeln,
most significant bits abschneiden, bis 1 an entspr. Stelle im Bitvektor)
-- wenn ein Bucket gesplittet wird, welche Nummern haben dann die resultierenden Buckets?
(er will es dezimal haben - entsprechende Formel lernen!)

Relationale Algebra
- alle bekannten RA-Operatoren aufschreiben (ja keine vergessen)
- welche Menge an Operatoren ist ausreichend, um alle anderen darzustellen?
- wie lässt sich Schnitt von R und S mit dieser minimalen Menge darstellen? (R - (R - S))

(habe sicher auch etwas vergessen ;) )

= Fazit 
Prof. Freytag stellt Fragen hin und wieder so, dass man erst nicht versteht, worauf er eigentlich hinaus will, 
und kritisiert das am Ende ("musste Ihnen vieles aus der Nase ziehen"), auch bei der Benotung. 
Auch eher unwichtiger erscheinende Themen, wie mehrdimensionale Zugriffsmethoden, z.B. R-Tree, müssen 
für eine gute Note souverän und nach seinem Geschmack erklärt werden können. 

Nr.PrüferFach
838 Freytag J.C. Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung
April 2018
= Benötigte Lernzeit als Empfehlung
2-3 Wochen, bei ständiger Anwesenheit und aktiver Teilnahme reicht wohlmöglich auch weniger

= Verwendete Materialien (Bücher, Skripte etc...)
Vorlesungsfolien, eigene Aufzeichnungen(!), Wikipedia, Buch von Kempler/Eickler

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer
Etwas Smalltalk am Anfang, weitgehend lockeres Gespräch. Beisitzer hat nur mitgeschrieben und genickt.

= Prüfungsfragen
1. Einstiegsthema (durfte ausgesucht werden): Anfragebearbeitung/Optimierung
  - "Ingredients" der Optimierung: Suchstrategie + Regeln zum Erzeugen von Alternativen + Kostenfkt.
  - Wird zuerst der komplette Suchraum (Baum) erzeugt und dann durchsucht? Nein, zu viele Alternativen (Speicher!) und abhängig von der Suchstrategie (z.B. bei Hillclimbing) ist dies auch nicht notwendig.

  - Beispiele für die Erzeugung von Alternativen nennen: Join-Order, Umformungsregeln der Rel. Algebra 
    (Hier wurde nachgefragt, ob es sich hierbei tatsächlich um Äquivalenzen handelt oder um Regeln, die 
    "nur in eine Richtung gelten". Letzteres scheint die korrekte Antwort gewesen zu sein.)

  - Bekannte Operatoren der Rel. Algebra nennen und davon die minimal notwendige Menge angeben. 
    Wie lässt sich mit Hilfe dieser Menge der Schnitt von R und S angeben? (R-(R-S)), 
    daraufhin kam die Nachfrage nach einer Alternative (S-(S-R)). Zum Schluss nochmal für den Semijoin 
    von R und S mit dem Join-Attribut A. (S auf A projizieren, dann mit R joinen (Kreuzprodukt dann Selektion)) 

  - Alle 10 Join-Methoden nennen
  - Welches Kostenmaß haben wir verwendet? Anzahl der Seitenzugriffe
  - ZigZag-Join erklären mit Zeichnung, Kosten bestimmen (mit Ersparnis gegenüber dem Block Nested Loop Join)

2. Transaktionen
  - In der VL verwendete "Darstellungsform": Hier war ich zuerst verwirrt was er damit gemeint hat, 
    er wollte aber auf Schedules hinaus

  - Was ist ein Schedule?
  - Arten von Schedules und ihre Definitionen (Schaubild aus den Folien). Was ist der Vorteil eines 
    strikten Schedules gegenüber einem ACA Schedule? (z.B. W_T1(X), W_T2(X), wenn jetzt T2 abgebrochen wird 
    haben wir jedoch X von T1 überschrieben)

  - Wann ist ein Schedule serialisierbar? (Keine Zyklen im SG, gleicher Endzustand/Ausgabe wie ein serieller 
    Schedule)

  - Die Ausgaben von TA haben wir nicht betrachtet, was haben wir daher verwendet? Konflikt-Äquivalenz von
    Schedules -> Konflikt-Serialisierbarkeit

3. Recovery
  - Das in der VL verwendete "Modell": Schaubild aus der VL (DB und Log, jeweils mit MM- und S-Teil) 
    Wo befinden sich immer die aktuellen Werte? MM

  - UNDO/REDO Algorithmus aufzeichnen und erklären
    - Warum kommen in dem Algorithmus keine Read-Operationen vor? Keine Recovery für nur gelesene Werte notwendig

    - Wie viele Einträge schreibt das zweite Force idealerweise raus? Nur den einen Log(Commit)-Record, 
      sollte schnell gehen da vorher der TA kein Commit gemeldet werden kann (?)

    - Muss zuerst der Log(Commit)-Record rausgeschrieben werden oder der neue Wert von X (Disc(X)? 
      Commit und rausschreiben des neuen Wertes waren denke ich unabhängig voneinander

    - Recovery erklären (Warum müssen aktive TA zurückgesetzt werden? Haben wohlmöglich bereits den neuen 
      Wert auf die Platte geschrieben)

= Note (Optional)
- 

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)
Gute Prüfung, aber im Vergleich zu anderen mündlichen Prüfungen eher einer der schwierigen. 
Prof. Freytag stellt gerne Verständnisfragen und bei unklaren Antworten hakt er nach (wie auch in FF), darauf 
sollte man vorbereitet sein. Kann mich sonst nur den anderen Protokollen anschließen, auch was die Benotung 
angeht.


Nr.PrüferFach
1022 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung

26.02.2024

= Benötigte Lernzeit als Empfehlung

Wer in der Vorlesung wirklich anwesend war, sollte mit einer Woche gut hinkommen. Ist aber auch immer eine Frage des eigenen Anspruchs und des Lerntyps.

= Verwendete Materialien (Bücher, Skripte etc...)

Vorlesungsfolien mit eigenen Mitschriften sowie die Folien aus den Tutorien

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer

sehr ruhig und es konnten jederzeit Fragen gestellt werden

= Prüfungsfragen

2h Bearbeitungszeit, 90 Punkte

Aufgabe 1: Records und Blöcke

- Was ist die kleinste lesbare Einheit auf einer Festplatte?
- Wie hoch ist die maximale Anzahl an parallel ausführbaren Operationen bei einem RAID 0+1 mit 4 Platten?
- Welche 2 Informationen muss die Record ID bei einem directory enthalten
- Berechne die Anzahl an benötigter Blöcke für unspanned records zu einem gegebenen System
- Berechne die Anzahl an benötigter Blöcke für spanned records zu diesem System

Aufgabe 2: B+ Baum

- Interne Knoten mit Werten füllen, die durch die Blätter gegeben sind
- Löschen eines Werts und updaten des Baums

Aufgabe 3: Query optimization

- Es war eine Query gegeben, die auf die minimale Anzahl an Operationen reduziert werden sollte
- Führe alle Join orders von drei Relationen an
- Welche der drei Cache replacement policies reduziert die Anzahl der IO Zugriffe am meisten und warum? (LRU, LIFO, FIFO)

Aufgabe 4: Kardinalitäten (7+7 Punkte)

Es waren zwei Queries gegeben, für die möglichst genau die Größe des Ergebnisses berechnet werden sollte

- Die erste Query hatte ein equi-depth Histogramm für ein Attribut, welches in einer Range zwischen 13 und 21 liegen sollte sowie eine Selektion für ein zweites Attribut mit einem konstanten Wert
- Die zweite Query beinhaltete 3 Relationen, wobei für zwei eine Join Bedingung gegeben war und für die dritte Relation wurde ein exakter Wert abgefragt


Aufgabe 5: Synchronisierung

Es waren drei Transaktionen gegeben

- Dann war eine Abfolge der Transaktionen gegeben und es sollte begründet werden, ob der Schedule seriell ist und ob er serialisierbar ist
- Für eine zweite Abfolge der Operationen sollte begründet werden, ob der Schedule recoverable ist
- Zeige einen conflict-serializable Schedule für die oben aufgeführten 3 Transaktionen an

Aufgabe 6: Multiple Choice mit Minuspunkten ABER Aufgabe bringt mindestens 0 Punkte, maximal möglich waren 10 Punkte

- Wofür steht SQL?
- Frage zur 2. Normalform
- Welche ACID Eigenschaften werden durch den Recovery Manager adressiert?
- SSD ist schneller bei Random und Sequential Access [true/false]
- Welche Joins wurden in der Vorlesung behandelt?
- Tabelle beim linear hashing wächst exponentiell [true/false]
- Multi-dimensionale Indexstrukturen eignen sich schlechter als ein composite Index für einen bestimmten Fall [true/false]
- Was kann ein Schedule sein? -> sowas wie seriell etc.
- Welche Operationen kann eine Transaktion ausführen?

[eine Frage ist mir nicht mehr eingefallen]


Aufgabe 7: kdb Baum (4+5 Punkte)

- Einfügen von 3 Punkten und Baum neu zeichnen (Split der Dimensionen über Round Robin)
- Algorithmus für optimalen kdb Baum skizzieren

Aufgabe 8: Recovery

Gegeben war eine Abfolge von Transaktionsoperationen

- Welche Operationen und in welcher Reihenfolge würde der REDO Manager ausführen und warum?
- Welche Operationen und in welcher Reihenfolge würde der UNDO Manager ausführen und warum?

⇒ Ich habe bestimmt ein oder zwei Teilfragen vergessen oder nicht ganz korrekt wiedergegeben, dennoch sollte die Prüfung fast vollständig sein

= Note (Optional)

Wurde noch nicht bewertet

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)

Prüfung war alles in allem okay. Die Vorbereitung war etwas schwierig, da man nicht so genau wusste, was einen bei der schriftlichen Prüfung erwartet


Nr.PrüferFach
1028 Leser Prof. DBS2 - Implementation von Datenbanken

Protokoll

= Datum der Prüfung

08.04.2024

= Benötigte Lernzeit als Empfehlung
Eine Woche, wenn man in der Vorlesung und den Übungen aufgepasst hat

= Verwendete Materialien (Bücher, Skripte etc...)

Vorlesungsfolien 

= "Atmosphäre" der Prüfung / Verhalten der Beisitzer

Entspannte Atmosphäre, es konnten jederzeit Fragen gestellt werden, man durfte keine Hilfsmittel verwenden

= Prüfungsfragen

2h Bearbeitungszeit, 90 Punkte
An alle Fragen kann ich mich nicht mehr erinnern

Aufgabe 1: Records und Blöcke

Es waren die große von Sektoren, wieviele Sektoren pro Track, Tracks pro Oberfläche, Anzahl der Platten gegeben

- Berechne die Kapazität der Festplatte in Byte
- Wie lange braucht die Festplatte zum lesen, wenn der Kopf schon an der richtigen Stelle ist?
- Wieviel Speicher braucht man um bei Raid 0+1 wenn man 1 GB speichern will
- Berechne die Anzahl an benötigter Blöcke für unspanned records zu einem gegebenen System


Aufgabe 2: B+ Baum
Ein Baum war gegeben mit Höhe 3 und doppelten Werten

- In welcher Reihenfolge wurden die Werte zu dem Baum hinzugefügt, damit dieser Baum entsteht? 
- Wie sieht der Baum aus, wenn man einen Wert in den Blättern löscht

Aufgabe 3: 
- Zwei Relationen waren gegeben
- in welcher Reihenfolge würde ein Block Nested loop die Relationen öffnen
- Es war der Anfang eines C Codes gegeben und man musste Lücken füllen, zum programmieren so eines Block Nested Loop
- IO Zugriffe bei Tabelle, Hash und Baum vergleichen und berechnen und begründen für was man sich entscheiden würde

Aufgabe 4: 

- Es waren Werte gegeben man sollte ein Equi- Depth Histogramm erstellen
- Man sollte die Kosten errechnen wenn eine Relation bleichverteilt ist und von einer anderen ein Equi-Depth Histogramm bekannt ist


Aufgabe 5: Multi-Dimensional Index
Grid File: Es war ein Grid gegeben mit A, B, C und D
C sollte gesplitted werden

- Nach welchen Strategien kann man vorgehen
- In wiefern spielt Konvexität eine Rolle

Aufgabe 6: 10 Fragen 10 Punkte

- Wofür steht SQL?
- Welche Joins wurden in der Vorlesung behandelt?
- Warum wird extensive hashing normalerweise nicht verwendet
- irgendeine Frage zu linear Hashing gab es glaube auch
- Warum machen wir Query Optimisation
- Wofür steht LRU?

Aufgabe 7: Recovery

Gegeben war eine Abfolge von Transaktionsoperationen

- Welche Operationen und in welcher Reihenfolge würde der REDO Manager ausführen und warum?
- Was wäre anders wenn man einen Checkpoint einfügen würde

Aufgabe 8: Join

Es war eine Query gegeben über Vorlesungen, Studierenden, Professor:innen und Hörende, dazu waren noch weitere Infos gegeben, Studierende belegen jeweils 4 Vorlesungen, es gibt 1000 Studierende, es gibt 80 Professor:innen, jeder davon liest 4 Vorlesungen, 4000 sind in der Hörenden Relation

Man sollte Tabellen ausfüllen, wo jeweils ein Join eingetragen ist, die Kardinalität, die Kosten und der optimale Plan (wie in Folgesatz zur Query Optimization Folie 68)

Als Beispiel waren die Atomaren Relationen gegeben, man sollte dann 8? Spalten für die Paarweisen Joins ausfüllen
4? für die mit Drei und 2 für die mit 4 Relationen

= Fazit (Gute/schlechte Prüfung , angemessene Benotung etc...)

Prüfung war alles in allem okay