Введение
Сохранение данных на протяжении всего жизненного цикла. Целостность данных – это поддержание и обеспечение точности и непротиворечивости данных на протяжении всего их жизненного цикла. Это критически важный аспект при проектировании, реализации и использовании любой системы, хранящей, обрабатывающей или извлекающей данные. Термин имеет широкую область применения и может иметь различные значения в зависимости от конкретного контекста, даже в рамках общей области информационных технологий. Иногда его используют как синоним качества данных, при этом валидация данных является необходимым условием для обеспечения целостности данных.
Data integrity is the maintenance of, and the assurance of, data accuracy and consistency over its entire life cycle. It is a critical aspect to the design, implementation, and usage of any system that stores, processes, or retrieves data. The term is broad in scope and may have widely different meanings depending on the specific context even under the same general umbrella of computing. It is at times used as a proxy term for data quality, while data validation is a prerequisite for data integrity.
Определение
Целостность данных – это противоположность повреждению данных. Общая цель любой методики обеспечения целостности данных одинакова: гарантировать, что данные записываются именно так, как и предполагалось (например, база данных корректно отклоняет взаимоисключающие варианты). Более того, при последующем извлечении необходимо убедиться, что данные не изменились с момента первоначальной записи. Иными словами, целостность данных направлена на предотвращение случайных изменений информации. Целостность данных не следует путать с безопасностью данных – областью, занимающейся защитой данных от несанкционированного доступа. Любое непреднамеренное изменение данных в результате операций хранения, извлечения или обработки, включая злонамеренные действия, неожиданные аппаратные сбои и человеческий фактор, является нарушением целостности данных. Если изменения произошли в результате несанкционированного доступа, это также может быть нарушением безопасности данных. В зависимости от типа данных, это может проявляться в самых разных формах – от изменения цвета одного пикселя в изображении до потери фотографий из отпуска или критически важной базы данных, вплоть до катастрофических последствий, включая потерю человеческих жизней в системах, от которых зависит жизнь людей.
Физическая целостность
Физическая целостность связана с проблемами, возникающими при правильном хранении и извлечении самих данных. Проблемы с физической целостностью могут включать электромеханические сбои, конструктивные недостатки, усталость материала, коррозию, отключения электроэнергии, стихийные бедствия и другие особые экологические угрозы, такие как ионизирующее излучение, экстремальные температуры, давление и перегрузки. Обеспечение физической целостности включает в себя такие методы, как резервное оборудование, источники бесперебойного питания, определенные типы RAID-массивов, радиационно-стойкие микросхемы, память с коррекцией ошибок, использование кластерных файловых систем, файловые системы, использующие контрольные суммы на уровне блоков, такие как ZFS, системы хранения, вычисляющие паритет, например, исключающее ИЛИ или использующие криптографические хеш-функции, а также сторожевые таймеры для критически важных подсистем. Физическая целостность часто широко использует алгоритмы обнаружения ошибок, известные как коды коррекции ошибок. Ошибки целостности данных, вызванные человеком, часто обнаруживаются с помощью более простых проверок и алгоритмов, таких как алгоритм Дамма или алгоритм Луна. Они используются для поддержания целостности данных после ручного переноса из одной компьютерной системы в другую с помощью человека-оператора (например, номера кредитных карт или банковских маршрутов). Ошибки переноса данных, вызванные компьютером, могут быть обнаружены с помощью хеш-функций. В производственных системах эти методы используются совместно для обеспечения различных уровней целостности данных. Например, компьютерная файловая система может быть настроена на отказоустойчивый RAID-массив, но при этом может не обеспечивать контрольные суммы на уровне блоков для обнаружения и предотвращения скрытой порчи данных. В качестве другого примера, система управления базами данных может соответствовать свойствам ACID, но контроллер RAID или внутренний кэш записи жесткого диска могут не соответствовать этим требованиям.
Логическая целостность
Этот тип целостности связан с корректностью или осмысленностью фрагмента данных в определенном контексте. Это включает в себя такие аспекты, как референтная целостность и целостность сущностей в реляционной базе данных, или правильное отбрасывание невозможных показаний датчиков в роботизированных системах. Эти вопросы подразумевают обеспечение того, чтобы данные "имели смысл" в своей среде. Среди проблем – ошибки в программном обеспечении, недостатки проектирования и человеческий фактор. Распространенные методы обеспечения логической целостности включают в себя проверочные ограничения, ограничения внешнего ключа, программные утверждения и другие проверки корректности во время выполнения. Физическая и логическая целостность часто сталкиваются с общими проблемами, такими как ошибки, вызванные человеческим фактором, и недостатки проектирования, и обе должны адекватно обрабатывать одновременные запросы на запись и извлечение данных, причем последнее является отдельной темой для изучения. Если в секторе данных присутствует только логическая ошибка, его можно повторно использовать, перезаписав новыми данными. В случае физической ошибки, затронутый сектор данных становится навсегда непригодным для использования.
Базы данных
Целостность данных включает в себя правила хранения данных, определяющие или гарантирующие срок хранения данных в конкретной базе данных (обычно реляционной). Для обеспечения целостности данных эти правила последовательно и регулярно применяются ко всем данным, поступающим в систему, и любое ослабление контроля может привести к ошибкам в данных. Проверка данных как можно ближе к источнику ввода (например, при ручном вводе данных) позволяет уменьшить количество ошибочных данных, попадающих в систему. Строгое соблюдение правил целостности данных приводит к снижению количества ошибок, а также экономит время на поиск и устранение ошибок в данных и вызванных ими проблем в алгоритмах. Целостность данных также включает правила, определяющие взаимосвязи между данными, например, запись о клиенте может быть связана с приобретенными продуктами, но не с несвязанными данными, такими как корпоративные активы. Целостность данных часто включает проверку и исправление недопустимых данных на основе фиксированной схемы или предопределенного набора правил. Например, ввод текстовых данных вместо значения даты и времени. Также применимы правила вывода данных, определяющие, как значение данных вычисляется на основе алгоритма, источников и условий, а также условия повторного вычисления этого значения.
Примеры
Примером механизма обеспечения целостности данных является отношение «родитель-потомок» между связанными записями. Если родительская запись имеет одну или несколько связанных дочерних записей, все процессы обеспечения ссылочной целостности обрабатываются самой базой данных, которая автоматически гарантирует точность и целостность данных, предотвращая существование дочерней записи без родительской (также называемой «сиротской») и потерю дочерних записей родительской записью. Также обеспечивается невозможность удаления родительской записи, пока у нее есть связанные дочерние записи. Все это выполняется на уровне базы данных и не требует включения проверок целостности в код каждого приложения.
Файловые системы
Различные результаты исследований показывают, что ни широко распространенные файловые системы (включая UFS, Ext, XFS, JFS и NTFS), ни аппаратные RAID-решения не обеспечивают достаточной защиты от проблем с целостностью данных. Некоторые файловые системы (включая Btrfs и ZFS) предоставляют встроенные контрольные суммы данных и метаданных, которые используются для обнаружения скрытой порчи данных и повышения их целостности. Если таким образом обнаружена порча, и при этом используются внутренние механизмы RAID, предоставляемые этими файловыми системами, то они могут дополнительно прозрачно восстановить поврежденные данные. Такой подход обеспечивает улучшенную защиту целостности данных по всей цепочке обработки, что обычно называют сквозной защитой данных.
Целостность данных в различных отраслях
Управление по санитарному надзору за качеством пищевых продуктов и лекарственных средств США разработало проект руководства по целостности данных для фармацевтических производителей, обязанных соблюдать Кодекс федеральных нормативных актов США 21 CFR, части 210–212. За пределами США аналогичные руководства по целостности данных были опубликованы в Соединенном Королевстве (2015), Швейцарии (2016) и Австралии (2017). Различные стандарты производства медицинских изделий рассматривают вопросы целостности данных прямо или косвенно, включая ISO 13485, ISO 14155 и ISO 5840. В начале 2017 года Управление финансового регулирования (FINRA), отметив проблемы с целостностью данных в автоматизированных системах торговли и мониторинга денежных потоков, заявило, что приоритизирует "разработку программы обеспечения целостности данных для контроля точности предоставляемых данных". В начале 2018 года FINRA сообщило о расширении своего подхода к обеспечению целостности данных на "политики и процедуры управления изменениями в технологиях" компаний, а также на проверку казначейских ценных бумаг. Другие сектора, такие как горнодобывающая промышленность и производство продукции, все больше внимания уделяют важности целостности данных в связанных с ними системах автоматизации и мониторинга производства. Поставщики облачных хранилищ уже давно сталкиваются со значительными трудностями в обеспечении целостности или подтверждении подлинности данных клиентов и отслеживании нарушений.