La integridad de los datos es el mantenimiento y la garantía de la precisión y la coherencia de los datos a lo largo de todo su ciclo de vida . [1] Es un aspecto fundamental para el diseño, la implementación y el uso de cualquier sistema que almacene, procese o recupere datos. El término tiene un alcance amplio y puede tener significados muy diferentes según el contexto específico, incluso bajo el mismo paraguas general de la informática . A veces se utiliza como un término sustituto de la calidad de los datos , [2] mientras que la validación de datos es un requisito previo para la integridad de los datos. [3]
La integridad de los datos es lo opuesto a la corrupción de los datos . [4] La intención general de cualquier técnica de integridad de datos es la misma: garantizar que los datos se registren exactamente como se pretende (por ejemplo, una base de datos que rechace correctamente las posibilidades mutuamente excluyentes). Además, en caso de recuperación posterior , garantizar que los datos sean los mismos que cuando se registraron originalmente. En resumen, la integridad de los datos tiene como objetivo evitar cambios no intencionales en la información. La integridad de los datos no debe confundirse con la seguridad de los datos , la disciplina de proteger los datos de partes no autorizadas.
Cualquier cambio no deseado en los datos como resultado de una operación de almacenamiento, recuperación o procesamiento, incluyendo intenciones maliciosas, fallas inesperadas de hardware y errores humanos , es un fallo de integridad de los datos. Si los cambios son el resultado de un acceso no autorizado, también puede ser un fallo de seguridad de los datos. Dependiendo de los datos involucrados, esto podría manifestarse de manera benigna, como un solo píxel en una imagen que aparece con un color diferente al que se registró originalmente, hasta la pérdida de fotografías de vacaciones o una base de datos crítica para la empresa, o incluso la pérdida catastrófica de vidas humanas en un sistema crítico para la vida .
La integridad física se ocupa de los desafíos asociados con el almacenamiento y la obtención correctos de los datos en sí. Los desafíos con la integridad física pueden incluir fallas electromecánicas , fallas de diseño, fatiga del material , corrosión , cortes de energía , desastres naturales y otros peligros ambientales especiales como radiación ionizante , temperaturas extremas, presiones y fuerzas g . Garantizar la integridad física incluye métodos como hardware redundante , un sistema de alimentación ininterrumpida , ciertos tipos de matrices RAID , chips reforzados contra la radiación , memoria con corrección de errores , uso de un sistema de archivos en clúster , uso de sistemas de archivos que emplean sumas de comprobación a nivel de bloque como ZFS , matrices de almacenamiento que calculan cálculos de paridad como exclusivos o usan una función hash criptográfica e incluso tener un temporizador de vigilancia en subsistemas críticos.
La integridad física a menudo hace un uso extensivo de algoritmos de detección de errores conocidos como códigos de corrección de errores . Los errores de integridad de datos inducidos por humanos a menudo se detectan mediante el uso de comprobaciones y algoritmos más simples, como el algoritmo Damm o el algoritmo Luhn . Estos se utilizan para mantener la integridad de los datos después de la transcripción manual de un sistema informático a otro por un intermediario humano (por ejemplo, números de ruta de tarjetas de crédito o bancos). Los errores de transcripción inducidos por computadora se pueden detectar a través de funciones hash .
En los sistemas de producción, estas técnicas se utilizan en conjunto para garantizar diversos grados de integridad de los datos. Por ejemplo, un sistema de archivos informático puede estar configurado en una matriz RAID tolerante a fallos, pero es posible que no proporcione sumas de comprobación a nivel de bloque para detectar y evitar la corrupción silenciosa de los datos . Como otro ejemplo, un sistema de gestión de bases de datos puede ser compatible con las propiedades ACID , pero el controlador RAID o la memoria caché de escritura interna de la unidad de disco duro pueden no serlo.
Este tipo de integridad se ocupa de la corrección o racionalidad de un dato, dado un contexto particular. Esto incluye temas como la integridad referencial y la integridad de la entidad en una base de datos relacional o ignorar correctamente datos de sensores imposibles en sistemas robóticos. Estas preocupaciones implican garantizar que los datos "tengan sentido" dado su entorno. Los desafíos incluyen errores de software , fallas de diseño y errores humanos. Los métodos comunes para garantizar la integridad lógica incluyen cosas como restricciones de verificación , restricciones de clave externa , aserciones de programa y otras comprobaciones de cordura en tiempo de ejecución.
La integridad física y lógica a menudo comparten muchos desafíos, como errores humanos y fallas de diseño, y ambas deben lidiar adecuadamente con solicitudes concurrentes para registrar y recuperar datos, este último es un tema completamente aparte.
Si un sector de datos solo tiene un error lógico, se puede reutilizar sobrescribiéndolo con datos nuevos. En caso de un error físico, el sector de datos afectado queda inutilizable de forma permanente.
La integridad de los datos contiene pautas para la retención de datos , que especifican o garantizan el tiempo durante el cual se pueden retener los datos en una base de datos en particular (normalmente una base de datos relacional ). Para lograr la integridad de los datos, estas reglas se aplican de manera sistemática y sistemática a todos los datos que ingresan al sistema, y cualquier relajación de la aplicación podría causar errores en los datos. La implementación de controles sobre los datos lo más cerca posible de la fuente de entrada (como la entrada de datos humana) hace que ingresen menos datos erróneos al sistema. La aplicación estricta de las reglas de integridad de datos da como resultado tasas de error más bajas y tiempo ahorrado en la resolución de problemas y el seguimiento de datos erróneos y los errores que causan en los algoritmos.
La integridad de los datos también incluye reglas que definen las relaciones que puede tener un dato con otros datos, como por ejemplo, que un registro de un cliente pueda vincularse a productos adquiridos , pero no a datos no relacionados, como activos corporativos . La integridad de los datos a menudo incluye comprobaciones y correcciones de datos no válidos, según un esquema fijo o un conjunto de reglas predefinidas. Un ejemplo son los datos textuales introducidos en los que se requiere un valor de fecha y hora. También se aplican reglas para la derivación de datos, que especifican cómo se deriva un valor de datos según el algoritmo, los contribuyentes y las condiciones. También especifica las condiciones sobre cómo se puede volver a derivar el valor de los datos.
La integridad de los datos se suele garantizar en un sistema de base de datos mediante una serie de restricciones o reglas de integridad. Tres tipos de restricciones de integridad son parte inherente del modelo de datos relacionales : integridad de entidad, integridad referencial e integridad de dominio.
Si una base de datos admite estas funciones, es responsabilidad de la base de datos garantizar la integridad de los datos, así como el modelo de coherencia para el almacenamiento y la recuperación de datos. Si una base de datos no admite estas funciones, es responsabilidad de las aplicaciones garantizar la integridad de los datos mientras que la base de datos admite el modelo de coherencia para el almacenamiento y la recuperación de datos.
Disponer de un sistema de integridad de datos único, bien controlado y bien definido aumenta:
Las bases de datos modernas admiten estas funciones (consulte Comparación de sistemas de gestión de bases de datos relacionales ) y se ha convertido en responsabilidad de facto de la base de datos garantizar la integridad de los datos. Las empresas, y de hecho muchos sistemas de bases de datos, ofrecen productos y servicios para migrar sistemas heredados a bases de datos modernas.
Un ejemplo de un mecanismo de integridad de datos es la relación padre-hijo de registros relacionados. Si un registro padre posee uno o más registros hijos relacionados, todos los procesos de integridad referencial son manejados por la propia base de datos, lo que garantiza automáticamente la precisión e integridad de los datos, de modo que ningún registro hijo pueda existir sin un padre (también llamado huérfano) y que ningún padre pierda sus registros hijos. También garantiza que ningún registro padre pueda eliminarse mientras el registro padre posea algún registro hijo. Todo esto se maneja a nivel de la base de datos y no requiere la codificación de comprobaciones de integridad en cada aplicación.
Varios resultados de investigación muestran que ni los sistemas de archivos generalizados (incluidos UFS , Ext , XFS , JFS y NTFS ) ni las soluciones RAID de hardware proporcionan protección suficiente contra los problemas de integridad de los datos. [5] [6] [7] [8] [9]
Algunos sistemas de archivos (incluidos Btrfs y ZFS ) proporcionan una suma de comprobación interna de datos y metadatos que se utiliza para detectar la corrupción silenciosa de datos y mejorar la integridad de los datos. Si se detecta una corrupción de esa manera y también se utilizan los mecanismos RAID internos proporcionados por esos sistemas de archivos, dichos sistemas de archivos pueden reconstruir además los datos dañados de forma transparente. [10] Este enfoque permite una mejor protección de la integridad de los datos que cubre todas las rutas de datos, lo que generalmente se conoce como protección de datos de extremo a extremo . [11]