Prüfungsprotokolle lesen
Protokolle (18 gefunden)
Nr. | Prüfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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üfer | Fach |
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