Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Atomicidad | Acid
Quizzes & Challenges
Quizzes
Challenges
/
Optimización de SQL y Características de Consulta

bookAtomicidad

Atomicidad en SQL se refiere a una de las propiedades ACID, la cual garantiza el uso de transacciones al consultar datos mediante SQL.
En el contexto de bases de datos SQL, la atomicidad asegura que todas las operaciones dentro de una unidad lógica particular se completen, o ninguna de ellas lo haga.

Procesamiento de transacciones en SQL

Características clave

  • Rollback: Si alguna parte falla (por ejemplo, debido a un error o violación de restricción), toda la transacción se revierte, deshaciendo los cambios;

  • Commit: si todas las operaciones tienen éxito, la transacción se confirma, haciendo los cambios permanentes.

Creación de transacciones en SQL

En SQL, cada instrucción individual se considera una transacción.
Sin embargo, es posible crear manualmente transacciones que contengan más de una instrucción.

Imaginemos un escenario donde existen dos tablas:

  • la tabla BankAccounts, que incluye las siguientes columnas: account_number (Primary Key), account_holder y balance;

  • la tabla UserLogs con columnas: account_number, action, timestamp, etc. La combinación de account_number y timestamp es una clave primaria compuesta de esta relación.

En los siguientes ejemplos de código, se mostrará cómo se insertan y gestionan datos en estas tablas, demostrando operaciones atómicas utilizando entradas reales del esquema proporcionado.

12
SELECT * FROM BankAccounts;
copy
12
SELECT * FROM UserLogs;
copy

Ahora, consideremos un escenario en el que se desea crear una nueva cuenta bancaria y, al mismo tiempo, generar una entrada de registro para indicar la adición de la nueva cuenta.
Es fundamental que estas dos acciones, agregar la cuenta y registrar el evento, se traten como una sola unidad lógica y deben estar incluidas en una única transacción. A continuación, se muestra un ejemplo muy básico de cómo se podría realizar esto utilizando una transacción:

123456789101112131415161718
-- Begin the transaction BEGIN; -- Insert a new bank account with account number 109, account holder Emma Watson, and initial balance of 0 INSERT INTO BankAccounts (account_number, account_holder, balance) VALUES (109, 'Emma Watson', 0); -- Step 2: Add log entry if the account was added -- Insert a log entry into the UserLogs table indicating that a new account was added with account number 109 INSERT INTO UserLogs (account_number, action) VALUES (109, 'New account added'); -- Commit the transaction, making the changes permanent COMMIT; -- Check the result SELECT * FROM BankAccounts; SELECT * FROM UserLogs;
copy

En la consulta anterior, utilizamos el bloque BEGIN para indicar que todas las sentencias siguientes deben considerarse como una sola unidad; si una de ellas no se ejecuta, ninguna de las sentencias debe ejecutarse.
La palabra clave COMMIT indica el final del bloque de transacción.

question mark

¿Qué garantiza el concepto de atomicidad en el contexto de las transacciones de bases de datos?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookAtomicidad

Desliza para mostrar el menú

Atomicidad en SQL se refiere a una de las propiedades ACID, la cual garantiza el uso de transacciones al consultar datos mediante SQL.
En el contexto de bases de datos SQL, la atomicidad asegura que todas las operaciones dentro de una unidad lógica particular se completen, o ninguna de ellas lo haga.

Procesamiento de transacciones en SQL

Características clave

  • Rollback: Si alguna parte falla (por ejemplo, debido a un error o violación de restricción), toda la transacción se revierte, deshaciendo los cambios;

  • Commit: si todas las operaciones tienen éxito, la transacción se confirma, haciendo los cambios permanentes.

Creación de transacciones en SQL

En SQL, cada instrucción individual se considera una transacción.
Sin embargo, es posible crear manualmente transacciones que contengan más de una instrucción.

Imaginemos un escenario donde existen dos tablas:

  • la tabla BankAccounts, que incluye las siguientes columnas: account_number (Primary Key), account_holder y balance;

  • la tabla UserLogs con columnas: account_number, action, timestamp, etc. La combinación de account_number y timestamp es una clave primaria compuesta de esta relación.

En los siguientes ejemplos de código, se mostrará cómo se insertan y gestionan datos en estas tablas, demostrando operaciones atómicas utilizando entradas reales del esquema proporcionado.

12
SELECT * FROM BankAccounts;
copy
12
SELECT * FROM UserLogs;
copy

Ahora, consideremos un escenario en el que se desea crear una nueva cuenta bancaria y, al mismo tiempo, generar una entrada de registro para indicar la adición de la nueva cuenta.
Es fundamental que estas dos acciones, agregar la cuenta y registrar el evento, se traten como una sola unidad lógica y deben estar incluidas en una única transacción. A continuación, se muestra un ejemplo muy básico de cómo se podría realizar esto utilizando una transacción:

123456789101112131415161718
-- Begin the transaction BEGIN; -- Insert a new bank account with account number 109, account holder Emma Watson, and initial balance of 0 INSERT INTO BankAccounts (account_number, account_holder, balance) VALUES (109, 'Emma Watson', 0); -- Step 2: Add log entry if the account was added -- Insert a log entry into the UserLogs table indicating that a new account was added with account number 109 INSERT INTO UserLogs (account_number, action) VALUES (109, 'New account added'); -- Commit the transaction, making the changes permanent COMMIT; -- Check the result SELECT * FROM BankAccounts; SELECT * FROM UserLogs;
copy

En la consulta anterior, utilizamos el bloque BEGIN para indicar que todas las sentencias siguientes deben considerarse como una sola unidad; si una de ellas no se ejecuta, ninguna de las sentencias debe ejecutarse.
La palabra clave COMMIT indica el final del bloque de transacción.

question mark

¿Qué garantiza el concepto de atomicidad en el contexto de las transacciones de bases de datos?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3
some-alt