Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een transactie is een werkeenheid die wordt uitgevoerd als één atomische bewerking; Dat wil gezegd, de bewerking slaagt of mislukt als geheel. Denk bijvoorbeeld aan het overdragen van geld van de ene bankrekening naar de andere. Dit omvat twee stappen: het geld van de eerste rekening intrekken en in de tweede rekening storten. Het is belangrijk dat beide stappen slagen; het is niet acceptabel voor één stap om te slagen en de andere te mislukken. Een database die transacties ondersteunt, kan dit garanderen.
Transacties kunnen worden voltooid door te worden vastgelegd of teruggedraaid. Wanneer een transactie wordt doorgevoerd, worden de wijzigingen in die transactie permanent aangebracht. Wanneer een transactie wordt teruggedraaid, worden de betrokken rijen teruggezet naar de status waarin ze zich bevonden voordat de transactie werd gestart. Als u het voorbeeld van de accountoverdracht wilt uitbreiden, voert een toepassing één SQL-instructie uit om het eerste account en een andere SQL-instructie te debiteren om het tweede account te crediteren. Als beide instructies slagen, voert de toepassing de transactie vervolgens door. Maar als een van beide beweringen om welke reden dan ook mislukt, wordt de transactie teruggedraaid. In beide gevallen garandeert de toepassing een consistente status aan het einde van de transactie.
Eén transactie kan meerdere databasebewerkingen omvatten die op verschillende momenten plaatsvinden. Als andere transacties volledige toegang tot de tussenliggende resultaten hadden, kunnen de transacties elkaar verstoren. Stel dat één transactie een rij invoegt, een tweede transactie die rij leest en dat de eerste transactie wordt teruggedraaid. De tweede transactie bevat nu gegevens voor een rij die niet bestaat.
Om dit probleem op te lossen, zijn er verschillende schema's om transacties van elkaar te isoleren. Transactieisolatie wordt over het algemeen geïmplementeerd door rijen te vergrendelen, waardoor meer dan één transactie niet tegelijkertijd dezelfde rij kan gebruiken. In sommige databases kan het vergrendelen van een rij ook andere rijen vergrendelen.
Met verhoogde transactieisolatie wordt de gelijktijdigheid verminderd of de mogelijkheid van twee transacties om dezelfde gegevens tegelijkertijd te gebruiken. Zie Het niveau van transactieisolatie instellen voor meer informatie.
Deze sectie bevat de volgende onderwerpen.