¿Qué son los datos inmutables?

Los datos inmutables son una parte de la información en una base de datos que no se puede (o no se debe) eliminar o modificar. La mayoría de las bases de datos tradicionales almacenan datos en un formato mutable, lo que significa que la base de datos sobrescribe los datos más antiguos cuando hay nuevos datos disponibles. Por ejemplo, en una base de datos de empleados, la información de la dirección se sobrescribe cuando un empleado cambia de residencia.

Diagrama de datos inmutables

Por el contrario, las bases de datos que almacenan datos inmutables no sobrescribirán un elemento antiguo cuando haya nueva información disponible. Utilizan diversas técnicas para preservar los valores históricos y actuales de los datos. Los datos inmutables son muy útiles para la auditoría y la depuración.

Un ejemplo de la vida real de datos inmutables son los registros médicos de alguien. A lo largo de los años, una persona podría haber buscado tratamiento para diferentes dolencias. La historia clínica consta de varias prescripciones, procedimientos e informes de pruebas. Estos archivos de datos son inmutables. Por ejemplo, cuando una persona recibe una nueva receta médica, no se debe sobrescribir su receta anterior. En su lugar, la base de datos debe agregar los datos nuevos a los existentes. Los datos médicos históricos son un ejemplo clásico de datos inmutables.

¿Por qué las organizaciones necesitan datos inmutables?

Con la llegada de los datos en la nube y el Internet de las cosas (IoT), las organizaciones reciben un gran volumen de datos de transacciones. Estos datos deben almacenarse rápidamente en una base de datos. Los archivos inmutables son una solución adecuada para almacenar registros de transacciones de alta velocidad. Las organizaciones también deben considerar la necesidad de datos históricos. Con las regulaciones de privacidad de datos cada vez más estrictas, muchas organizaciones optan por conservar sus datos históricos. Les ayudará a cumplir si un cliente o el gobierno solicita datos anteriores. Una base de datos que almacena datos en formato inmutable es la más adecuada para este caso de uso.

Las organizaciones a menudo necesitan comparar sus datos actuales con datos históricos para comprender las tendencias de los usuarios o medir el crecimiento. En tales casos, sobrescribir los datos históricos no es una buena idea. Los datos inmutables también ayudan a las organizaciones a realizar un seguimiento de los cambios que experimentaron a lo largo de los años; es especialmente útil en los sistemas de software.

Informe O'Reilly: Creación de una infraestructura unificada de datos
Informe O'Reilly: Creación de una infraestructura unificada de datos
Solo un tercio de las empresas se convirtieron en organizaciones basadas en datos. ¿Cual es la solución? ¡Descúbralo en este libro electrónico!

¿Cuáles son los usos de una base de datos inmutable?

Almacenamiento de datos de transmisión

Con la explosión de la información y la llegada de IoT, las organizaciones reciben una gran cantidad de datos cada segundo. No pueden permitirse retrasos en el almacenamiento de datos. La mayoría de las bases de datos tradicionales que usan un archivo mutable tienen cierta latencia porque borran los datos anteriores, escriben los nuevos y verifican la integridad. Pero en el caso de flujo de datos, por ejemplo, de sensores IoT, la base de datos debería almacenar rápidamente los datos. Cuando la base de datos usa archivos de datos inmutables, simplemente agrega los nuevos datos. Esto hace que las bases de datos inmutables almacenen datos mucho más rápido y, por lo tanto, sean más adecuadas para almacenar datos de flujo.

Preservar el contexto histórico

Los datos personales, como el historial médico de una persona, deben almacenarse de forma permanente para proporcionar un contexto para los nuevos datos. Por ejemplo, cuando una persona recibe tratamiento por una dolencia, todos sus medicamentos y tratamientos anteriores deben tenerse en cuenta. Si bien las bases de datos tradicionales pueden proporcionar un contexto histórico, no garantizan la conservación de los datos. Las bases de datos inmutables, por su propia naturaleza, garantizan que nunca se elimine ningún dato.

Auditoría y depuración

Los sistemas que cambian con frecuencia, como sitios web o software, deben conservar las principales instantáneas del sistema para realizar un seguimiento de los cambios. La mayoría de los sistemas de control de versiones almacenan datos en archivos inmutables para que no haya riesgo de sobrescribirlos. Las instituciones financieras también necesitan una base de datos inmutable para preservar todas sus transacciones históricas. Otras organizaciones que necesitan presentar datos para auditorías frecuentes también pueden beneficiarse de una base de datos inmutable.

¿Cómo funciona una base de datos inmutable?

A diferencia de las bases de datos relacionales tradicionales (bases de datos mutables) que se basan en registros, las bases de datos inmutables se basan en registros. Cuando un nuevo elemento de datos está disponible, la base de datos mutable reescribe una celda particular en una tabla de datos. La base de datos inmutable almacena datos en registros y crea un nuevo registro para cada nuevo dato.

Para comprender cómo funciona una base de datos inmutable, mire una base de datos simple que almacene detalles de un artículo de blog. Una base de datos relacional clásica almacenaría estos datos en un formato mutable, con los detalles de la publicación del blog almacenados en una tabla. Suponga que el enlace permanente, el título y el contenido son las tres columnas de esta tabla. En una base de datos mutable, cuando cambia el título o el contenido, la base de datos realiza una operación de actualización. Los nuevos datos sobrescriben la entrada anterior. Los títulos y el contenido más antiguos se pierden para siempre. Una base de datos estándar e inmutable almacena esta misma información como registros.

La base de datos mutable solo almacena el estado actual del blog. La base de datos inmutable almacena la historia del blog junto con el estado actual. Una base de datos inmutable solo realiza operaciones de inserción y nunca actualiza un campo de datos existente.

¿Cómo almacena datos una base de datos inmutable?

Continuando con el ejemplo de la publicación de blog, la base de datos inmutable usa una estructura de tabla diferente de la base de datos mutable. Cada revisión de publicación de blog se inserta en una base de datos como una nueva fila en una tabla. Los campos de la tabla son los siguientes:

  • Número de revisión: esta es la clave principal de la tabla. Cada revisión de blog debe tener un número de revisión único.
  • Marca de tiempo: la hora en que ocurre la revisión. Debe ser un valor único.
  • Enlace permanente, título y contenido

En contraste con la base de datos mutable, donde cada revisión de la publicación del blog sobrescribe los datos del blog, la base de datos inmutable crea una nueva entrada de revisión para cada cambio en la publicación del blog. De esta manera, la información sobre cada edición anterior del artículo del blog se conserva y se puede recuperar en cualquier momento según la marca de tiempo o el número de revisión.

¿Cuáles son las ventajas de los datos inmutables?

Operaciones más rápidas

Cuando los datos se almacenan como inmutables, los datos nuevos se agregan a los anteriores, junto con una marca de tiempo. Esto significa que la base de datos puede simplemente insertar datos sin bloquear el sistema para realizar comprobaciones de integridad. Esta calidad de datos inmutables es crucial en el caso de los datos de flujo y sensor. En estos casos, los datos llegan continuamente y deben almacenarse con una latencia mínima.

Contexto histórico

Muchas organizaciones necesitan comparar datos históricos con la última versión para obtener un análisis mejor y más contextual. Las bases de datos inmutables conservan todos los datos históricos. Ayuda a crear puntos de control en el pasado a los que se puede restaurar un sistema.

Auditabilidad

Muchas industrias, especialmente la atención médica y la financiera, podrían enfrentar auditorías aleatorias. Es crucial para ellos conservar todos los datos para tener a mano los datos históricos si se requieren para una auditoría.

Cumplimiento de normas

En todo el mundo, las reglas de privacidad de datos son bastante estrictas. Los usuarios tienen derecho a exigir una copia de todos los datos que una organización ha recopilado de ellos. El almacenamiento de datos como inmutables ayuda a las organizaciones a cumplir con dichas solicitudes.

Recurso de datos inmutable
¿De qué forma la gestión eficaz de los datos de referencia da valor agregado al negocio?
Descubra las cuatro R de la gestión de datos de referencia y comience a construir su caso empresarial hoy mismo.

¿Cuáles son las desventajas de los datos inmutables?

Mayores requisitos de almacenamiento

El almacenamiento de datos inmutables tiene mayores requisitos de almacenamiento en comparación con las bases de datos mutables tradicionales. Cada actualización se almacena como un registro diferente, lo que aumenta el tamaño de la base de datos.

Complejidad

Las bases de datos inmutables son más complejas porque almacenan contexto histórico. La base de datos necesita manejar las complejidades de almacenar cada transacción.

Cumplimiento de datos

Por diseño, una base de datos inmutable nunca elimina ningún dato. Sin embargo, la mayoría de las regulaciones de datos exigen que el sistema elimine los datos si un usuario lo solicita. Este es un desafío importante para las bases de datos inmutables basadas en la suposición de que nunca se elimina ningún dato.

¿Cómo ofrecen las bases de datos inmutables una función de eliminación?

Intrínsecamente, las bases de datos inmutables no proporcionan una función de eliminación porque la base de datos en sí está diseñada según el principio de que los datos nunca se eliminan. Sin embargo, como vimos en el apartado anterior, las normas de privacidad de datos otorgan a los usuarios el derecho al “olvido”. Esto requiere que los datos se eliminen/sobrescriban.

Crypto-shredding o la destrucción de cifrado es una solución que se puede utilizar para "sobrescribir" los datos inmutables. En una base de datos con una función de destrucción de cifrado, los datos inmutables se almacenan en un formato cifrado. Se requiere una clave de cifrado para descifrar los datos personales almacenados en la base de datos. Todas estas claves se almacenan en una base de datos mutable. Cuando hay una solicitud para sobrescribir los datos, los datos no se eliminan. En su lugar, se sobrescribe la clave de cifrado asociada. Sin la clave de cifrado, los datos ya no son útiles. Es tan bueno como eliminar los datos asociados con la clave de cifrado. Esta es una solución aceptable para las reglas de privacidad de datos de la Unión Europea.