La integridad de los datos es el mantenimiento y la garantía de la precisión y coherencia de los datos durante todo su ciclo de vida . [1] Es un aspecto crítico para el diseño, implementación y 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 informática . A veces se utiliza como término sustituto para la calidad de los datos , [2] mientras que la validación de los 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 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 (como una base de datos que rechaza correctamente posibilidades mutuamente excluyentes). Además, al recuperarlos posteriormente , asegúrese de que los datos sean los mismos que cuando se registraron originalmente. En resumen, la integridad de los datos tiene como objetivo evitar cambios involuntarios 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 intencionado en los datos como resultado de una operación de almacenamiento, recuperación o procesamiento, incluidos intentos maliciosos, fallas inesperadas de hardware y errores humanos , constituye una falla en la integridad de los datos. Si los cambios son el resultado de un acceso no autorizado, también puede deberse a una falla en la seguridad de los datos. Dependiendo de los datos involucrados, esto podría manifestarse desde situaciones tan benignas como que un solo píxel en una imagen aparezca con un color diferente al que se registró originalmente, hasta la pérdida de fotografías de vacaciones o de una base de datos crítica para el negocio, e incluso la pérdida catastrófica de vidas humanas en una vida. -sistema crítico .
La integridad física aborda los desafíos asociados con el almacenamiento y la recuperación correctos de los datos en sí. Los desafíos a 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 , una fuente de alimentación ininterrumpida , ciertos tipos de matrices RAID , chips reforzados contra la radiación , memoria de 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 , almacenamiento matrices que calculan cálculos de paridad, como exclusivas o utilizan una función hash criptográfica e incluso tienen un temporizador de vigilancia en subsistemas críticos.
La integridad física suele hacer 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 . Se utilizan para mantener la integridad de los datos después de la transcripción manual de un sistema informático a otro por parte de un intermediario humano (por ejemplo, tarjetas de crédito o números de ruta bancaria). Los errores de transcripción inducidos por computadora se pueden detectar mediante funciones hash .
En los sistemas de producción, estas técnicas se utilizan juntas para garantizar diversos grados de integridad de los datos. Por ejemplo, un sistema de archivos de computadora puede configurarse en una matriz RAID tolerante a fallas, pero es posible que no proporcione sumas de verificación a nivel de bloque para detectar y evitar la corrupción silenciosa de datos . Como otro ejemplo, un sistema de administración de bases de datos podría ser compatible con las propiedades ACID , pero el controlador RAID o la caché de escritura interna de la unidad de disco duro podrían no serlo.
Este tipo de integridad se ocupa de la exactitud 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 programas y otras comprobaciones de integridad 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 simultáneas para registrar y recuperar datos, el último de los cuales es un tema en sí mismo.
Si un sector de datos solo tiene un error lógico, se puede reutilizar sobrescribiéndolo con datos nuevos. En caso de error físico, el sector de datos afectado queda permanentemente inutilizable.
La integridad de los datos contiene pautas para la retención de datos , especificando o garantizando el período de tiempo que los datos pueden retenerse en una base de datos particular (normalmente una base de datos relacional ). Para lograr la integridad de los datos, estas reglas se aplican de manera consistente y rutinaria 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 de los datos lo más cerca posible de la fuente de entrada (como la entrada de datos humanos) hace que entren 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 un ahorro de tiempo 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 un dato puede tener con otros datos, como por ejemplo que un registro de Cliente pueda vincularse a Productos comprados , 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, basándose en un esquema fijo o un conjunto de reglas predefinidas. Un ejemplo son los datos textuales ingresados donde 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 en función del 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 normalmente se aplica 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 la entidad, integridad referencial e integridad del dominio.
Si una base de datos admite estas características, 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 la base de datos admite el modelo de coherencia para el almacenamiento y la recuperación de datos.
Tener un sistema de integridad de datos único, bien controlado y bien definido aumenta:
Las bases de datos modernas admiten estas características (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 principal posee uno o más registros secundarios relacionados, todos los procesos de integridad referencial son manejados por la propia base de datos, lo que garantiza automáticamente la exactitud e integridad de los datos para que ningún registro secundario pueda existir sin un padre (también llamado huérfano). y que ningún padre pierda los registros de sus hijos. También garantiza que no se pueda eliminar ningún registro principal mientras el registro principal sea propietario de los registros secundarios. Todo esto se maneja a nivel de base de datos y no requiere comprobaciones de integridad de codificación en cada aplicación.
Diversos resultados de investigaciones muestran que ni los sistemas de archivos más extendidos (incluidos UFS , Ext , XFS , JFS y NTFS ) ni las soluciones RAID de hardware proporcionan suficiente protección contra los problemas de integridad de los datos. [5] [6] [7] [8] [9]
Algunos sistemas de archivos (incluidos Btrfs y ZFS ) proporcionan sumas de verificación internas de datos y metadatos que se utilizan para detectar 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 adicionalmente los datos corruptos de manera transparente. [10] Este enfoque permite una protección mejorada de la integridad de los datos que cubre todas las rutas de datos, lo que generalmente se conoce como protección de datos de un extremo a otro . [11]