Basis van databases

Er zijn transacties T1 tot T5, en vóór een storing is één checkpoint genomen. T1 is vóór het checkpoint begonnen en gecommit. T2 en T3 zijn vóór het checkpoint begonnen; T2 is na het checkpoint maar vóór de storing gecommit, en T3 was op het moment van de storing niet gecommit. T4 en T5 zijn na het checkpoint begonnen; T4 is vóór de storing gecommit, en T5 was niet gecommit. Welke transacties moeten bij het herstel na de storing met de log een rollforward krijgen?

  1. AT3 en T5
  2. BT1, T2 en T4
  3. CT2 en T4
Antwoord en toelichting tonen

Antwoord: C. T2 en T4

Bij een checkpoint worden de databasepagina's die tot dat moment in het geheugen zijn gewijzigd naar de opslag geschreven, en dat wordt in de log vastgelegd. De wijzigingen van T1, dat vóór het checkpoint is gecommit, staan daarom al in de database en vergen geen herstel. T2 en T4, die na het checkpoint maar vóór de storing zijn gecommit, hebben hun commit voltooid, maar een deel van hun wijzigingen is mogelijk nog niet naar de database geschreven, dus die worden met de waarden na de wijziging uit de log opnieuw uitgevoerd (rollforward). Bij T3 en T5, die op het moment van de storing niet waren gecommit, worden eventuele gedeeltelijke wijzigingen in de database met de waarden van vóór de wijziging uit de log ongedaan gemaakt (rollback). Ook een transactie die vóór het checkpoint begon, zoals T3, wordt ongedaan gemaakt als ze niet was gecommit. Checkpoints maken het herstel korter, omdat de log niet vanaf het allereerste begin hoeft te worden doorlopen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van databases

  1. Op de kolom LidNr van de tabel Lid met 1 miljoen rijen is een index in de vorm van een B+-boom aangemaakt. Welke combinatie van het effect dat in het algemeen mag worden verwacht en de prijs daarvoor is juist?
  2. Voor de tabel Lid met 1 miljoen rijen wordt overwogen op elk van de kolommen LidNr (allemaal verschillend), Prefectuur (47 waarden) en Geslacht (2 waarden, ruwweg half om half) een B+-boomindex aan te maken. Op welke kolom is een index waarschijnlijk het minst effectief bij een zoekopdracht waarin in de WHERE-clausule een waarde voor één kolom wordt opgegeven?
  3. Welke beschrijving van de kenmerken van een key-value-store, een van de databases die NoSQL worden genoemd, is in het algemeen juist?
  4. Welke beschrijving van de CAP-stelling voor een gedistribueerde database die kopieën van gegevens op meerdere servers bewaart, is passend?
  5. Welke term uit de terminologie van relationele databases komt overeen met één rij van een tabel (relatie)?