Está en la página 1de 2

Arquitectura de transacciones

Microsoft SQL Server 2000 mantiene la coherencia y la integridad de cada base de


datos a pesar de los errores que puedan tener lugar en el sistema. ada aplicaci!n que
actuali"a los datos en una base de datos de SQL Server lo hace mediante transacciones.
#na transacci!n es una unidad l!gica de traba$o formada por un con$unto de
instrucciones %selecciones& inserciones& actuali"aciones o eliminaciones'. Si no hay
errores durante una transacci!n& todas las modificaciones llevadas a cabo en la misma se
convierten en parte permanente de la base de datos. Si se producen errores& no se reali"a
ninguna modificaci!n en la base de datos.
#na transacci!n pasa por varias fases(
)ntes de que se inicie la transacci!n& la base de datos est* en un estado
coherente.
La aplicaci!n indica el inicio de la transacci!n. +sto puede reali"arse
e,pl-citamente con la instrucci!n .+/01 23)1S)2041. 5e manera
alternativa& la aplicaci!n puede definir opciones para e$ecutar en modo de
transacci!n impl-cita6 la primera instrucci!n 2ransact7SQL e$ecutada despu8s de
finali"ar una transacci!n anterior inicia una nueva transacci!n autom*ticamente.
uando se inicia la transacci!n& no se escribe nada en el registro6 la primera
entrada del registro se escribe cuando la aplicaci!n genera la primera entrada del
registro para una modificaci!n de datos.
La aplicaci!n comien"a a modificar los datos. +stas modificaciones se reali"an
en una tabla cada ve". 5ebido a que se reali"an varias modificaciones& 8stas
pueden de$ar temporalmente la base de datos en un estado intermedio
incoherente.
uando la aplicaci!n alcan"a un punto donde todas las modificaciones se han
completado correctamente y la base de datos es de nuevo coherente& la
aplicaci!n confirma la transacci!n. +sto hace que todas las modificaciones sean
una parte permanente de la base de datos.
Si la aplicaci!n encuentra un error que impide completar la transacci!n& deshace
todas las modificaciones de datos. +sto devuelve a la base de datos al punto de
coherencia en que se encontraba antes de que se iniciase la transacci!n.
Las aplicaciones SQL Server tambi8n pueden e$ecutarse en modo de confirmaci!n
autom*tica. +n el modo de confirmaci!n autom*tica& cada instrucci!n 2ransact7SQL
individual se confirma autom*ticamente si es correcta y se deshace si genera un error.
#na aplicaci!n no tiene por qu8 e$ecutarse en modo de confirmaci!n autom*tica para
emitir las instrucciones que inician o finali"an espec-ficamente una transacci!n.
2odas las instrucciones 2ransact7SQL se e$ecutan en una transacci!n( una transacci!n
e,pl-cita& una transacci!n impl-cita o una transacci!n de confirmaci!n autom*tica.
2odas las transacciones de SQL Server que incluyen modificaciones de datos alcan"an
un punto de coherencia y se confirman& o se deshacen hasta el punto de coherencia
inicial. Las transacciones no se de$an en un estado intermedio en que la base de datos no
sea coherente.
Observaciones
.+/01 23)1S)2041 representa un punto en el que los datos a los que hace
referencia una cone,i!n son l!gica y f-sicamente coherentes. Si se producen errores& se
pueden deshacer todas las modificaciones reali"adas en los datos despu8s de .+/01
23)1S)2041 para devolver los datos al estado conocido de coherencia. ada
transacci!n dura hasta que se completa sin errores y se emite 4MM02
23)1S)2041 para hacer que las modificaciones sean una parte permanente de la
base de datos& o hasta que se producen errores y se borran todas las modificaciones con
la instrucci!n 34LL.)9 23)1S)2041.
.+/01 23)1S)2041 inicia una transacci!n local para la cone,i!n que emite la
instrucci!n. Seg:n la configuraci!n del nivel de aislamiento de la transacci!n actual& la
transacci!n bloquea muchos recursos adquiridos para aceptar las instrucciones 2ransact7
SQL que emite la cone,i!n hasta que finali"a con una instrucci!n 4MM02
23)1S)2041 o 34LL.)9 23)1S)2041. Las transacciones que quedan
pendientes durante mucho tiempo pueden impedir que otros usuarios tengan acceso a
estos recursos compartidos.
)unque .+/01 23)1S)2041 inicia una transacci!n local& 8sta no se guardar* en el
registro de transacciones %log' hasta que la aplicaci!n realice posteriormente una acci!n
que se deba grabar en el registro& como la e$ecuci!n de una instrucci!n 01S+32&
#;5)2+ o 5+L+2+. #na aplicaci!n puede reali"ar acciones como& por e$emplo&
adquirir bloqueos para proteger el nivel de aislamiento de transacciones de instrucciones
S+L+2& pero no se guarda ning:n dato en el registro hasta que la aplicaci!n reali"a
una acci!n.

También podría gustarte