DML, double page fault etc.

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

DML, double page fault etc.
Hi, habe 8 finale Fragen, wäre nett wenn mir jemand helfen würde (auch mit einer Antwort bin ich schon zufrieden :slight_smile: ):

  1. Welchen Nachteil hat die FORCE-Strategie?
    ?

  2. Was ist logische Protokollierung?

    -in Skript steht nur etwas über physische Protokollierung

  3. 2 Phasen des 2-Phasen-Freigabeprotokoll
    ?

  4. Gegeben seien die hierarchischen Sperrgranulate
    “Datenbank (DB)”
    “Segment (S)”
    “Relation (R)”
    “Tupel (T)”
    Welche hierarchischen Sperren sind zu setzen,
    um bei größtmöglicher Nebenläufigkeit
    a) ein Tupel t zu lesen?
    ?

    b) ein Tupel t zu modifizieren?
    ?

  5. Serialisierungsgraph
    Transaktion T1 konfligiert mit Transaktion T2 UND
    Transaktion T2 konfligiert mit Transaktion T3
    a) Zeichnen Sie hierzu einen möglichen Serialisierungsgraphen
    ?

    b) Warum gilt nicht allgemein die ‘Transitivität’
    WENN T1 mit T2 konfligiert
    UND T2 mit T3 konfligiert
    DANN konfligiert T1 mit T3?

     Meine Antwort: z.B. T1 und T3 lesen, T2 schreibt
     nebenläufiges Lesen erlaubt, Schreiben u. Lesen
     oder nebenläufiges Schreiben nicht.
    
  6. Was ist ‘DML’ ?

  7. Aufgabe 8:

    Gegeben sei ein Auszug aus einer temporären Protokolldatei
    BI = Before Image
    AI = After Image
    S# = Seitennummer
    LSN= Log-Sequence-Number
    TKN= Transaktionserkennung
    Bestimmen Sie die Information, die bei einer indirekten
    Sicherungspunktnahm zwischen dem Begin_Checkpoint-Satz und
    dem End_Checkpoint-Satz geschrieben werden muss, und tragen
    Sie sie in das folgende Diagramm ein.

[font=Courier]
BI AI AI BI AI | |
S#=10 S#=50 S#=11 S#=21 S#=50 | |
LSN=310 LSN=311 LSN=312 LSN=313 LSN=314 | |
TKN=29 TKN=11 TKN=8 TKN=42 TKN=11 | |
Daten Daten Daten Daten Daten | |
^ Begin_Checkpoint
End_Checkpoint ^
[/font]

Häh was?

  1. Was ist ein ‘double page fault’?
    Was ist ein ‘database fault’?

Nebenbei: ich finde die Übungsklausuren voll sozial, da kommt ja in jeder Klausur fast das selbe dran :gun:


  1. S.435 aus dem Diagramm kann man das rauslesen - logisch ist das Verfolgen der Transaktionen, im Gegensatz zu den physischen Datenänderungen. Also quasi die Benutzerbefehle, wenn man sich das so vorstellen will…

  2. viele Zugriffe, hohe Systemlast ?

Edit:
Double Page Fault heißt - denke ich - dass nach dem Auftreten eines PF für eine best. Seite(z.B. weil sie ausgelagert ist) beim Wiederholen der Anfrage nochmal einer auftritt.


Zu 8) Da die DB für das BS ein ganz normales Anwendungsprogramm ist und in einem virtuellen Adressraum arbeitet, unterliegt sie der Seitenpufferverwaltung des BS. Das heisst also alle Seiten des DB Puffers, auch wenn diese gefixt sind, können durch das BS aus dem realen Hauptspeicher verdrängt werden.

Die beiden Faults treten nun auf, wenn eine angeforderte Seite nicht im DB Puffer ist und eine andere Seite verdrängt werden muss.

Database Fault bedeutet schlichtweg dass die angeforderte Seite nicht im DB Puffer ist. Die Seite die verdrängt wird ist aber im Hauptspeicher (also nicht durch das Betriebssystem ausgelagert) und kann bei Bedarf zurückgeschrieben werden.

Bei einem Double Page Fault befindet sich die zu ersetzende Seite nicht im Hauptspeicher, muss also erst vom BS bereitgestellt werden. Dann kann die Seite ggf ausgeschrieben werden und erst dann kann die neue Seite eingelesen werden.

zu 6) Ich denke das damit dürfte die Data Modification Language gemeint sein, ein Bestandteil von SQL. Umfasst Anweisungen wie insert,update,select. Ansonsten gibt es noch die DDL (Data Definition Language) die Befehle zur Schemabearbeitung umfasst (create table etc). Es gibt noch einen unwichtigeren Teil, dessen genaue Bezeichnung mir grad entfallen ist. Der umfasst Sachen zur Zugriffskontrolle usw, Data Administration Language koennte es sein…


Hab ich wieder was gelernt :o)


hi

  1. Welchen Nachteil hat die FORCE-Strategie?
    ?
    Im Prinzip ist FORCE nichts anderes, als den (Schreib-)Cache auszuhebeln. Dieser ist aber für die Performance sehr wichtig.

  2. Was ist logische Protokollierung?

    -in Skript steht nur etwas über physische Protokollierung

Logische / physische Protokollierung bezeichnet im Allgemeinen (und auch hier) das Protokollieren auf zwei verschiedenen Ebenen. Die physische Schicht liegt dabei natürlich unter der logischen. Bei der Protokollieren bedeutet das:
physisch → Rohdaten
logisch → ausgeführte Operationen auf einen gesicherten physischen Urzustand
Bei der Wiederherstellung wird ein logisches Protokoll also “nachgespielt”.

  1. 2 Phasen des 2-Phasen-Freigabeprotokoll
    ?
    Laut Script:
    Phase 1: Sichern der isolierten Wiederholbarkeit und Schreiben des EOT-Satzes
    Phase 2: Freigabe aller Sperren und Beendung der Aktivität

Viel mehr kann ich aber auf Anhieb jetzt auch nicht dazu sagen…

  1. Gegeben seien die hierarchischen Sperrgranulate
    “Datenbank (DB)”
    “Segment (S)”
    “Relation (R)”
    “Tupel (T)”
    Welche hierarchischen Sperren sind zu setzen,
    um bei größtmöglicher Nebenläufigkeit
    a) ein Tupel t zu lesen?
    ?

    b) ein Tupel t zu modifizieren?
    ?

Hierbei geht es darum, dass du auf höherer Ebene schon diese “halben” Sperren setzen musst… ist im Script gut erklärt, muss man aber länger dran sitzen…

Die Antwort auf die Frage kann man sehr einfach dem Script entnehmen (bin aber zu faul, das nachzublättern)

  1. Serialisierungsgraph
    Transaktion T1 konfligiert mit Transaktion T2 UND
    Transaktion T2 konfligiert mit Transaktion T3
    a) Zeichnen Sie hierzu einen möglichen Serialisierungsgraphen
    ?
    Der Serialisierungsgraph beschreibt, welche Transaktionen in welcher Reihenfolge parallel ablaufen… hier z.B.:
    T1 T3
    T2

T1 und T3 stehen nicht gegenseitig im Weg und können deswegen parallel gestartet werden. Erst wenn beide beendet sind, kann T2 gestartet werden…

b) Warum gilt nicht allgemein die 'Transitivität'
	WENN T1 mit T2 konfligiert
	UND T2 mit T3 konfligiert
	DANN konfligiert T1 mit T3?

	Meine Antwort: z.B. T1 und T3 lesen, T2 schreibt
	nebenläufiges Lesen erlaubt, Schreiben u. Lesen
	oder nebenläufiges Schreiben nicht.

Klingt auf den ersten Blick vernünftig. Ich hätte geschrieben:
T2 kann auf Daten zugreifen, die von T1 bearbeitet werden, und dabei auch Daten benötigen, die von T3 bearbeitet werden. Diese müssen aber nicht die gleichen sein.

  1. Aufgabe 8:

    Gegeben sei ein Auszug aus einer temporären Protokolldatei
    BI = Before Image
    AI = After Image
    S# = Seitennummer
    LSN= Log-Sequence-Number
    TKN= Transaktionserkennung
    Bestimmen Sie die Information, die bei einer indirekten
    Sicherungspunktnahm zwischen dem Begin_Checkpoint-Satz und
    dem End_Checkpoint-Satz geschrieben werden muss, und tragen
    Sie sie in das folgende Diagramm ein.

[m]
BI AI AI BI AI | |
S#=10 S#=50 S#=11 S#=21 S#=50 | |
LSN=310 LSN=311 LSN=312 LSN=313 LSN=314 | |
TKN=29 TKN=11 TKN=8 TKN=42 TKN=11 | |
Daten Daten Daten Daten Daten | |
^ Begin_Checkpoint
End_Checkpoint ^
[/m]

Häh was?

Das kann ich so nicht wirklich entziffern… formatier das doch mal vernünftig und benutz dabei m und nicht font=


Aufgabe 8 hängt als Screenshot an (m hat auch nicht funktioniert)

Attachment:
Aufgabe8.gif: https://fsi.cs.fau.de/unb-attachments/post_19448/Aufgabe8.gif