SQL: quina diferència hi ha entre la transacció i la consulta?


Resposta 1:
  • Atomicitat (totes les declaracions de la transacció s’executen o no) Coherència (la base de dades mai es pot veure en un estat inconsistent) Aïllament (una transacció no afecta altres transaccions) Durable (un cop comesos, els canvis en la transacció són permanents)
INICI LA TRANSACCIÓ; ACTUALITZA comptes SET saldo = saldo + 100 WHERE compte_id = 98; ACTUALITZA comptes SET saldo = saldo - 100 WHERE compte_id = 42; COMENTAR;

Resposta 2:

Tingueu en compte que en la majoria (o no tot?) RDMS, tret que definiu explícitament una transacció, cada consulta en si mateixa estarà completament transaccionalment, però el grup no ho serà.

és a dir

actualitza la barra de conjunt FOO = Barra + 1

suprimir de la FOO on BAZ = 1000

és diferent transaccionalment

comença el tran

actualitza la barra de conjunt FOO = Barra + 1

suprimir de la FOO on BAZ = 1000

cometre tran

En el primer cas, si diem que el procés està aturat a la meitat de la supressió, després de la recuperació de la supressió, encara s'haurà fet l'actualització. En el segon, es tornarà a enrotllar si es torna a esborrar.


Resposta 3:

Tingueu en compte que en la majoria (o no tot?) RDMS, tret que definiu explícitament una transacció, cada consulta en si mateixa estarà completament transaccionalment, però el grup no ho serà.

és a dir

actualitza la barra de conjunt FOO = Barra + 1

suprimir de la FOO on BAZ = 1000

és diferent transaccionalment

comença el tran

actualitza la barra de conjunt FOO = Barra + 1

suprimir de la FOO on BAZ = 1000

cometre tran

En el primer cas, si diem que el procés està aturat a la meitat de la supressió, després de la recuperació de la supressió, encara s'haurà fet l'actualització. En el segon, es tornarà a enrotllar si es torna a esborrar.


Resposta 4:

Tingueu en compte que en la majoria (o no tot?) RDMS, tret que definiu explícitament una transacció, cada consulta en si mateixa estarà completament transaccionalment, però el grup no ho serà.

és a dir

actualitza la barra de conjunt FOO = Barra + 1

suprimir de la FOO on BAZ = 1000

és diferent transaccionalment

comença el tran

actualitza la barra de conjunt FOO = Barra + 1

suprimir de la FOO on BAZ = 1000

cometre tran

En el primer cas, si diem que el procés està aturat a la meitat de la supressió, després de la recuperació de la supressió, encara s'haurà fet l'actualització. En el segon, es tornarà a enrotllar si es torna a esborrar.