BBDD Operacionales
¿Qué es una base de datos transaccional?¶
Una base de datos transaccional almacena transacciones que son datos resultantes de una interacción entre dos o más partes. Estas interacciones pueden ser desde ventas de comercio electrónico hasta operaciones bancarias, reclamaciones de seguros o incluso órdenes sanitarias para pruebas de pacientes. Independientemente del tipo de datos almacenados, las bases de datos transaccionales presentan los siguientes atributos:
- Alta integridad de los datos: Al aplicar reglas y restricciones de datos, las bases de datos transaccionales evitan la introducción de datos incoherentes o no válidos. Hay que tener en cuenta que una transacción de base de datos puede ser cualquier cosa, desde una transacción comercial (por ejemplo, una venta de comercio electrónico) hasta un único documento (por ejemplo, una reclamación de seguro). Lo importante es que la transacción se complete y se ajuste a las reglas predefinidas relativas al sistema de gestión de bases de datos (DBMS) que rige la base de datos transaccional
- Procesamiento en tiempo real: Para mantener registros actualizados y precisos deben actualizarse en tiempo real para realizar un seguimiento de los cambios transaccionales y evitar conflictos de datos
- Acceso simultáneo: cuando dos usuarios (o más) están cargando transacciones en la base de datos (por ejemplo, un minorista con varias tiendas y varias cajas registradoras) las bases de datos transaccionales deben ser capaces de gestionar este tráfico simultáneo y evitar conflictos de datos. Esto también es importante cuando un software colaborativo con múltiples usuarios consulta y actualiza una base de datos transaccional. Las operaciones de la base de datos deben ser capaces de mantener el ritmo y el rendimiento de la base de datos sin que se produzcan fallos en el sistema
- Auditabilidad: una pista de auditoría (proporcionada por un registro de transacciones de la base de datos) es un aspecto importante de muchas bases de datos transaccionales. Ya se trate de registros financieros, actualizaciones de historias clínicas de pacientes por parte de médicos específicos o registros de la cadena de suministro, muchas organizaciones están obligadas a crear y mantener archivos auditables con fines de cumplimiento y gobernanza
¿Qué tipo de base de datos es una base de datos transaccional?¶
Existen diferentes tipos de bases de datos que pueden funcionar como bases de datos transaccionales. Entre ellas se incluyen:
- Bases de datos relacionales: Las bases de datos relacionales organizan los datos en filas y columnas que se utilizan para formar tablas. Se explotan utilizando software de sistema de gestión de bases de datos relacionales (RDMS) y, a menudo, utilizan el lenguaje SQL. Es importante señalar que, debido a su dependencia de reglas y formatos predefinidos, las bases de datos relacionales presentan dificultades a la hora de procesar datos no estructurados (por ejemplo, archivos de texto, fotos, vídeos). Estas bases de datos se utilizan principalmente para dar soporte a transacciones que incluyen tipos de datos estructurados o semiestructurados, como las transacciones comerciales que se consultan para el análisis de datos
- Bases de datos NoSQL: Las bases de datos NoSQL se utilizan para almacenar datos no estructurados, como archivos de texto, fotos, vídeos, etc. Se interactúa con las bases de datos utilizando cualquier lenguaje de programación compatible con dicha base de datos. Esto permite a las bases de datos escribir transacciones que incluyen desde un solo documento (por ejemplo, el resultado de una prueba de un paciente o fotos de un seguro) hasta sistemas de archivos que incluyen historiales completos de pacientes o expedientes de casos de seguros
Funcionamiento de las bases de datos transaccionales¶
Las bases de datos transaccionales se basan en las propiedades de atomicidad, consistencia, aislamiento y durabilidad (ACID) para garantizar la fiabilidad y precisión de los datos transaccionales
Propiedades ACID¶
Atomicidad: La atomicidad significa simplemente que una transacción se trata como una sola unidad (o unidad de trabajo). O bien se incluye la transacción completa o no se almacena en la base de datos y se produce un error si solo está disponible una parte de la transacción. Esto ayuda a garantizar que se mantenga la coherencia de los datos transaccionales en caso de que falle una transacción. Entre los mecanismos que intervienen para proveer esta funcionalidad destacan:
- Undo log: en caso de que falle una transacción, permite revertir los cambios realizados por la transacción. De esta manera, solo las transacciones de la base de datos que cumplen las reglas predefinidas del DBMS se incluyen en la base de datos transaccional
- Redo log: cuando se escribe una transacción exitosa en la base de datos transaccional, el registro de rehacer realiza un seguimiento de los cambios. De esta manera, si se produce un fallo del sistema después de que se haya completado una transacción pero antes de que se escriban los cambios de la transacción se puede utilizar el registro de rehacer para repetir los cambios
- Two-Phase Commit: la confirmación en dos fases garantiza que mantiene los datos en un estado coherente para una transacción distribuida
- Bloqueos: el bloqueo garantiza que solo una transacción pueda editar un dato específico a la vez. Esto ayuda a evitar conflictos de datos entre las transacciones de la base de datos, al tiempo que contribuye a mantener la integridad de los datos
- Consistencia: las bases de datos transaccionales mantienen la consistencia de los datos mediante la aplicación de reglas predefinidas y restricciones de datos que no solo se aplican a los datos ingresados, sino también a las modificaciones de los datos. Si una transacción ingresada o modificada infringe estas reglas, la transacción no se realizará o la modificación no se guardará. Además, en el caso de que dos usuarios (o más) escriban transacciones en la base de datos, cada usuario no podrá ver los cambios que está realizando el otro usuario hasta que se confirmen y se bloqueen
- Aislamiento: Cada transacción está aislada de las demás para evitar conflictos de datos y mantener un estado coherente de integridad de los datos. Esto también ayuda a las operaciones de la base de datos en relación con la gestión de múltiples entradas y transacciones de varios niveles. Por ejemplo, si dos usuarios intentan modificar los mismos datos (o incluso la misma transacción), el gestor de bloqueos del DBMS suspenderá a los demás usuarios hasta que se completen los cambios que se están realizando
- Durabilidad: La durabilidad garantiza que las transacciones almacenadas se conserven, incluso en caso de fallo