Ir al contenido principal

ACID

¿Qué es ACID?

      ACID es un grupo de 4 propiedades que garantizan que las transacciones en las bases de datos se realicen de forma confiable.
       Para empezar a definir ACID en el ámbito de las bases de datos, es necesario comprender el concepto de transacción.
       En las bases de datos, se denomina transacción a una única operación lógica ("de negocio"). Por ejemplo, es una sola transacción la acción de transferir fondos de una cuenta bancaria a otra, aún cuando involucra varios cambios en distintas tablas.

Atomicidad

       La Atomicidad requiere que cada transacción sea "todo o nada": si una parte de la transacción falla, todas las operaciones de la transacción fallan, y por lo tanto la base de datos no sufre cambios. Un sistema atómico tiene que garantizar la atomicidad en cualquier operación y situación, incluyendo fallas de alimentación eléctrica, errores y caidas del sistema.

Consistencia

       La propiedad de Consistencia se asegura que cualquier transacción llevará a la base de datos de un estado válido a otro estado válido. Cualquier dato que se escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas definidas, incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y cualquier combinación de estos.

Aislamiento
t.       El aislamiento ("Isolation" en inglés) se asegura que la ejecución concurrente de las transacciones resulte en un estado del sistema que se obtendría si estas transacciones fueran ejecutadas una atrás de otra. Cada transacción debe ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se ejecutan concurrentemente, luego cada una debe mantenerse independiente de la otra.

Durabilidad
       La durabilidad significa que una vez que se confirmó una transacción (commit), quedará persistida, incluso ante eventos como pérdida de alimentación eléctrica, errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales, una vez que se ejecuta un grupo de sentencias SQL, los resultados tienen que almacenarse inmediatamente (incluso si la base de datos se cae inmediatamente luego).



Comentarios

Entradas populares de este blog

Consulta ejemplo de BD NORTHWND

--La siguiente instrucción SQL selecciona todas las columnas de la tabla "clientes": SELECT * FROM Customers; --La siguiente instrucción SQL selecciona sólo los valores distintos de la columna "País" en la tabla "clientes": SELECT DISTINCT Country FROM Customers; --La siguiente instrucción SQL selecciona todos los clientes del país "México", en la tabla "clientes": SELECT * FROM Customers WHERE Country='Mexico'; --La siguiente instrucción SQL selecciona todos los campos de "Clientes", donde el país es "Alemania" Y la ciudad es "Berlin": SELECT * FROM Customers WHERE Country='Germany' AND City='Berlin'; --La siguiente instrucción SQL selecciona todos los campos de "Clientes", donde la ciudad es "Berlín" o "München": SELECT * FROM Customers WHERE City='Berlin' OR City='München'; --La siguiente instrucción SQL selecciona t...

Sintaxis de SQL

Escribe el uso de cada instrucción en SQL: INSTRUCCIÓN USO SINTAXIS SELECT Se usa para seleccionar datos de la base de datos. Select*from table_name SELECT DISTINCT Se usa para regresar solo distintos  o diferentes valores. Select distinct column1, column2 … From teble_name WHERE  Se usa para extraer solo los registros que cumplen una condición específica. Select column1, column2 From table_name Where condition AND Dice que si todas las condiciones separadas por “y”  se cumplen el operador realizara la función. SELECT  column1 ,  column2, ... FROM  table_name WHERE  condition1  AND  condition2  AND  condition3 ... ; OR El operador se muestra si una de las condiciones de “or” se cumple. SELECT  column1 ,  column2, ... FROM  table_na...

Consultas con WHERE e INNER JOIN

select Profesores.Nombre, Cursos.IdCursos from  Profesores, Cursos where Cursos.IdProfesores = Profesores.IdProfesores and Cursos.IdCursos = 2 SELECT Profesores.Nombre, Cursos.IdCursos FROM Cursos INNER JOIN Profesores ON Cursos.IdProfesores = Profesores.IdProfesores and Cursos.IdCursos = 2 --Selecciona el nombre de la materia del alumno con clave 170576 select Materias.Nombre, Alumnos.clave from Materias, Alumnos, Cursos, HorarioAlumnos where HorarioAlumnos.IdCursos = Cursos.IdCursos and Cursos.IdMaterias = Materias.IdMaterias and HorarioAlumnos.IdAlumnos = Alumnos.IdAlumnos and Alumnos.clave = 170576 SELECT Materias.Nombre, Alumnos.clave FROM Alumnos INNER JOIN HorarioAlumnos ON HorarioAlumnos.IdAlumnos = Alumnos.IdAlumnos INNER JOIN Cursos ON HorarioAlumnos.IdCursos  = Cursos.IdCursos INNER JOIN Materias ON Cursos.IdMaterias = Materias.IdMaterias WHERE Alumnos.clave = 170576 --Seleccionas el nombre del profesor que da la materia Contabilidad aplicada se...