Basis van databases
In de tabel Rekening wordt een transactie gestart, en worden een UPDATE die 300 aftrekt van het saldo van rekening A en een UPDATE die 300 bij het saldo van rekening B optelt uitgevoerd. Daarna wordt in plaats van COMMIT een ROLLBACK uitgevoerd. Wat gebeurt er met de tabel Rekening?
- AAlleen de optelling bij rekening B wordt ongedaan gemaakt; de aftrekking van rekening A blijft bestaan
- BBeide UPDATE's worden ongedaan gemaakt, en de tabel keert terug naar de toestand van vóór het begin van de transactie
- COmdat de UPDATE's al zijn uitgevoerd, wordt geen van beide ongedaan gemaakt
Antwoord en toelichting tonen
Antwoord: B. Beide UPDATE's worden ongedaan gemaakt, en de tabel keert terug naar de toestand van vóór het begin van de transactie
Een transactie is een mechanisme dat een reeks bewerkingen op een database als één eenheid behandelt. Wijzigingen binnen een transactie worden definitief wanneer COMMIT wordt uitgevoerd, en worden allemaal ongedaan gemaakt wanneer ROLLBACK wordt uitgevoerd, waarbij de gegevens terugkeren naar de toestand van vóór het begin van de transactie. In dit voorbeeld worden zowel de aftrekking van rekening A als de optelling bij rekening B ongedaan gemaakt, en blijven beide saldi ongewijzigd. Als er halverwege een overboeking een fout optreedt, zorgt een rollback ervoor dat er geen halve toestand achterblijft waarin maar één rekening is bijgewerkt. Om slechts een deel van het werk ongedaan te maken, kan met SAVEPOINT een punt worden gemarkeerd en met ROLLBACK TO SAVEPOINT naar dat punt worden teruggekeerd.