Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Atomicidad | Acid
Técnicas Avanzadas en SQL

bookAtomicidad

Atomicidad en SQL se refiere a una de las propiedades ACID, que 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, se pueden crear transacciones manualmente 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.

Ahora, consideremos un escenario en el que se pretende crear una nueva cuenta bancaria y, de manera concurrente, 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, sean tratadas 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 podríamos hacer esto con una transacción:

-- 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;

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 la 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

Awesome!

Completion rate improved to 4.35

bookAtomicidad

Desliza para mostrar el menú

Atomicidad en SQL se refiere a una de las propiedades ACID, que 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, se pueden crear transacciones manualmente 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.

Ahora, consideremos un escenario en el que se pretende crear una nueva cuenta bancaria y, de manera concurrente, 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, sean tratadas 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 podríamos hacer esto con una transacción:

-- 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;

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 la 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