2.7. DTL – Linguagem de Transação de Dados
Algumas operações sobre um banco de dados são compostas por vários passos. Lembrando do exemplo da transferência bancária, essa operação é realizada pelos seguintes passos: débito na conta de origem, crédito na conta de destino e verificação de que as duas operações foram realizadas a contento. A implementação dessas atividades em nível de um sistema provavelmente será traduzida em comandos SQL de atualização de dados (comandos do tipo UPDATE) e/ou de inserção de dados (comandos do tipo INSERT).
Para garantir que, em caso de falha de uma das operações, todo o trabalho feito seja desfeito, é preciso um controle denominado transacional. Uma transação é um conjunto de operações DML. No nosso exemplo, caso a operação de crédito na conta de destino falhe, é preciso desfazer a operação de débito na conta de origem.
|
A DTL é utilizada para controlar basicamente transações baseadas em comandos DML. Não existe controle transacional para comandos DQL. |
Para controlar transações, o SQL implementa os seguintes comandos DTL – Linguagem de Transação de Dados:
BEGIN WORK (ou START TRANSACTION, dependendo do padrão SQL) para marcar o começo de uma transação de banco de dados que pode ser completada ou não. COMMIT finaliza uma transação dentro de um sistema de gerenciamento de banco de dados.ROLLBACK faz com que as mudanças nos dados existentes desde o último COMMIT ou ROLLBACK sejam descartadas.