Целостность данных можно рассматривать как

СОДЕРЖАНИЕ

Типы целостности

Физическая целостность

Логическая целостность

Как физическая, так и логическая целостность часто имеют много общих проблем, таких как человеческие ошибки и недостатки проектирования, и оба должны соответствующим образом обрабатывать параллельные запросы на запись и извлечение данных, последний из которых является полностью самостоятельной темой.

Если в секторе данных есть только логическая ошибка, его можно использовать повторно, перезаписав его новыми данными. В случае физической ошибки затронутый сектор данных навсегда становится непригодным для использования.

Базы данных

Типы ограничений целостности

Целостность данных обычно обеспечивается в системе баз данных с помощью ряда ограничений или правил целостности. Три типа ограничений целостности являются неотъемлемой частью реляционной модели данных: целостность объекта, ссылочная целостность и целостность домена.

Если база данных поддерживает эти функции, она несет ответственность за обеспечение целостности данных, а также за модель согласованности для хранения и извлечения данных. Если база данных не поддерживает эти функции, приложения несут ответственность за обеспечение целостности данных, в то время как база данных поддерживает модель согласованности для хранения и поиска данных.

Наличие единой, хорошо контролируемой и четко определенной системы целостности данных увеличивает

Современные базы данных поддерживают эти функции (см. Сравнение систем управления реляционными базами данных ), и де-факто ответственность за обеспечение целостности данных стала возложена на базу данных. Компании и многие системы баз данных предлагают продукты и услуги для переноса устаревших систем на современные базы данных.

Примеры

Примером механизма целостности данных являются отношения между родителями и потомками связанных записей. Если родительская запись владеет одной или несколькими связанными дочерними записями, все процессы ссылочной целостности обрабатываются самой базой данных, что автоматически обеспечивает точность и целостность данных, так что ни одна дочерняя запись не может существовать без родительской записи (также называемой осиротевшей) и что ни один родитель не теряет свои дочерние записи. Это также гарантирует, что никакая родительская запись не может быть удалена, пока родительская запись владеет какими-либо дочерними записями. Все это обрабатывается на уровне базы данных и не требует проверки целостности кода в каждом приложении.

Файловые системы

Источник

Ограничения целостности данных

Вы будете перенаправлены на Автор24

Целостность данных

Целостностью данных можно назвать механизм поддержания соответствия базы данных предметной области.

В реляционной модели данных определяют две базовые категории обеспечения целостности:

Под целостностью понимают правильность данных в любой момент времени.

Данной цели можно достигнуть только в определенных пределах: СУБД не может выполнять контроль правильности каждого отдельного значения, которое вводится в базу данных (несмотря на то, что можно выполнить проверку каждого значения на правдоподобность). К примеру, невозможно проверить, что введенное значение 7, которое представляет номер дня недели, на самом деле должно быть равным 4. Но значение 8 однозначно будет являться ошибочным и база данных должна отвергнуть такое значение. В таком случае СУБД необходимо сообщить, что номера дней недели должны выбираться из набора чисел (от 1 до 7).

Поддержание целостности БД может быть рассмотрено как обеспечение защиты данных от разрушений или ошибочных изменений (не стоит путать с незаконными разрушениями и изменениями, которые являются проблемой безопасности).

Ограничения целостности

Ограничения целостности являются специальными средствами баз данных, которые предназначены для предупреждения возможности попадания в базу недопустимым данным (к примеру, не дать пользователю совершить ошибки при введении данных).

Ограничения целостности делятся на 3 основные категории:

Готовые работы на аналогичную тему

Внешний ключ должен иметь значение, которое:

Выделяют еще 2 категории, которые относятся к средствам обеспечения целостности – средства процедурного и декларативного характера.

Средства декларативного характера создают в виде составных частей объектов при их определении в БД (к примеру, установление условия на значение при создании таблицы в БД).

Средства процедурного характера (хранимые процедуры и триггеры) реализованы в виде отдельных программных модулей.

В основном декларативные ограничения являются менее функциональными, но более экономными по отношению к ресурсам и наоборот. Обратим внимание, что использованием развитой системы ограничений целостности определяется зрелость БД. Зачастую легче с самого начала обеспечить непопадание в базу данных неверных значений, чем после убирать их из базы данных.

К тому же, разработчики при создании ограничений целостности должны обеспечить перехват ошибок, которые возникают при нарушениях целостности, клиентским приложением.

Также выделяют целостность, определяемую пользователем. Любая база данных содержит дополнительные специфические правила, относящиеся только к ней и определяющиеся разработчиком. При этом чаще всего контролируют:

Источник

Целостность данных

dark fb.4725bc4eebdb65ca23e89e212ea8a0ea dark vk.71a586ff1b2903f7f61b0a284beb079f dark twitter.51e15b08a51bdf794f88684782916cc0 dark odnoklas.810a90026299a2be30475bf15c20af5b

caret left.c509a6ae019403bf80f96bff00cd87cd

caret right.6696d877b5de329b9afe170140b9f935

Под целостностью понимают «правильность» данных, содержащихся в БД, по отношению к предметной области. Целостность данных подразделяется на следующие категории.

Целостность на уровне сущности означает обеспечение уникальности экземпляра сущности, т.е., строки в конкретной таблице. Она обеспечивается указанием ограничений целостности PRIMARY KEY или UNIQUE в SQL, или указанием первичного ключа таблицы.

Ссылочная целостность гарантирует согласованность значений ключевых атрибутов в связанных таблицах. Этот вид целостности проверяет наличие ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа. Обычно ссылочная целостность основана на связи первичных и внешних ключей и обеспечивается с помощью ограничений FOREIGN KEY и CHECK.

При обеспечении ссылочной целостности СУБД не допускает следующих действий пользователей.

· Добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки.

· Изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице.

· Удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.

Пример таблиц с нарушением ссылочной целостности:

Студент Дисциплина
Студ_ИД Студ_Фио Студ_рейтинг СтудентДисциплина Дсц_ИД Наим
Иванов Студ_ИД Дсц_ИД Оценка ТАУ
Иванов ОБЖ
Иванова

Пользовательская целостность подразумевает определение бизнес-правил. Поддержку пользовательской целостности обеспечивают с помощью ограничений на уровне атрибутов (столбцов) и таблицы при описании структуры таблицы, в операторе CREATE TABLE, хранимых процедурах и триггерах.

Триггером является хранимая процедура, выполняемая автоматически при возникновении события на сервере. Различают триггеры DML (срабатывающие при попытке изменения данных) и триггеры DDL (срабатывающие при попытке изменить описание данных).

DML-триггеры выполняются по событиям, вызванным попыткой пользователя изменить данные с помощью языка обработки данных. Событиями DML являются процедуры INSERT, UPDATE или DELETE, применяемые к таблице или представлению (View). Триггеры DML используют внутренние логические таблицы, именуемые deleted и inserted. По своей структуре они подобны таблице, на которой определен триггер, то есть таблице, к которой применяется действие пользователя. В таблицах deleted и inserted содержатся старые или новые значения строк, которые могут быть изменены действиями пользователя.

DML-триггеры могут обращаться к другим таблицам. DML-триггеры удобно использовать в следующих случаях:

· для каскадных изменений в связанных таблицах базы данных;

· для предотвращения случайных или неправильных операций INSERT, UPDATE и DELETE.

При редактировании связанных таблиц в зависимости от заданных ограничений поддержки целостности СУБД может:

· выполнить каскадное (CASCADE) удаление/обновление строк в связанных таблицах;

· не выполнять действий (NO ACTION) по редактированию связанных таблиц.

Тема 4. Работа с данными. Язык баз данных

Лекция №4. Основные понятия языка баз данных на примере SQL

640 1

В рамках данной лекции рассматриваются нижеследующие вопросы:

· Понятие языка программирования баз данных.

· DML: процедурные и декларативные языки; операции низкого и высокого уровней

· Хранимые и формируемые объекты базы данных

· DML: операторы создания хранимой и виртуальной таблицы, вставки, выборки обновления

Языки для работы с базами данных зависят от того, какую модель данных поддерживает СУБД: реляционную, иерархическую или сетевую.

Применительно к СУБД различают языки низкоуровневой обработки, в которых в одной операции осуществляется обработка одной записи, и языки высокоуровневой обработки, в одной операции которых обрабатывается совокупность записей.

Языком базы данных называют язык, используемый для доступа, выборки, обновления и управления данными в системах реляционных баз данных.

Язык SQL, или язык структурированных запросов (Structured Query Language), ориентирован на использование в реляционных СУБД. Он прошел несколько этапов своего развития и первоначально создавался с целью получения языка запросов, приближенного к естественному (английскому). Операторы, или предложения (statements), языка имеют сложную структуру, напоминающую конструкцию сложно-подчиненного предложения, в котором имеются главное и подчиненное (clause) предложения.

Язык SQL является машинно-независимым и декларативным, т.е., описывающим свойства искомого объекта, а не алгоритм его поиска, причем описывающим в машинно-независимом текстовом формате. В настоящее время SQL стандартизован, чтобы его понимали серверы различных производителей.

Язык развивается в части состава операторов и типов данных. В нем выделены следующие языки, соответствующие функциональным группам операторов:

· Data Definition Language (DDL). Язык описания данных. Содержит операторы, позволяющие определять структуру и свойства базы данных, объектов в БД и задавать связи между объектами (например, CREATE TABLE, CREATE VIEW).

· Data Manipulation Language (DML). Язык манипулирования данными. Содержит операторы, предназначенные для обработки данных, т.е. для того, чтобы выбирать, добавлять, удалять и модифицировать данные (SELECT, INSERT, DELETE, UPDATE).

· Transaction Control Language (TCL). Язык управления транзакциями. Операторы этого языка применяются для управления транзакциями, или логическими единицами работы, выполняемыми как атомарная операция.

· Data Control Language (DCL). Операторы языка применяются для осуществления административных функций назначения или отмены разрешений на использование базы данных, таблицы в базе данных, а также выполнения операторов SQL.

· Cursor Control Language (CCL). Операторы используются для определения объекта «курсор», подготовки SQL-предложений для выполнения, а также для некоторых других операторов.

Работа по реализации БД начинают с описания ее схемы на языке DDL.

В стандарте SQL-92 схема является коллекцией объектов базы данных, принадлежащих одному пользователю и образующих одно пространство имен. Пространством имен является набор объектов, в котором не может быть повторяющихся имен. Схема может быть представлена графически и иначе ее называют структурой базы данных.

image026

Схема представляет структуру БД: состав, структуру, свойства и связи объектов базы данных.

Определение структуры таблицы означает описание ее столбцов, т.е. имен, типов данных и возможных ограничений. Перед созданием таблицы необходимо определить:

· Какую сущность будет представлять таблица, или каково назначение таблицы.

· Число столбцов в таблице и тип данных и формат (если это необходимо) каждого столбца.

· Имеются ли столбцы, которые могут принимать значения NULL.

· Для каких столбцов нужно задавать ограничения, значения по умолчанию и правила.

Сокращенный синтаксис оператора CREATE TABLE показывает структуру описания таблицы, задание ограничений на таблицу и столбцы, а также виды ограничений.

::=имя столбца [ ]

::=[ CONSTRAINT имя ограничения ]

[ CLUSTERED | NONCLUSTERED ] | [ FOREIGN KEY ]

REFERENCES [ имя связанной таблицы [ ( связанный столбец ) ]

Рассмотрим примеры применения операторов языка SQL.

1) Таблицы должны находиться в базе данных. Поэтому сначала необходимо создать БД:

CREATE DATABASE TestData;

2) Создание таблицы с данными о студентах:

CREATE TABLE dbo.Students (StudentID int PRIMARY KEY NOT NULL,

StudentName varchar(25) NOT NULL, Stipend money NULL,

StudentDescription text NULL)

Объекты в БД могут быть хранимыми и формируемыми (т.е. создаваемыми динамически). Таблица обычно является хранимым объектом. На основе одной или нескольких таблиц можно динамически создавать виртуальную таблицу, или представление. При этом СУБД будет сохранять не сформированную таблицу, а оператор, который описывает ее формирование. Представление называется VIEW и соответствующий оператор его создания имеет синтаксис:

Источник

Целостность информации

Целостность информации (также целостность данных) — термин в информатике и теории телекоммуникаций, который означает, что данные полны, условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача, хранение или представление.

В телекоммуникации целостность данных часто проверяют, используя MAC-код сообщения (Message authentication code).

В криптографии и информационной безопасности целостность данных в общем — это данные в том виде, в каком они были созданы. Примеры нарушения целостности данных:

В теории баз данных целостность данных означает корректность данных и их непротиворечивость. Обычно она также включает целостность связей, которая исключает ошибки связей между первичным и вторичным ключом. К примеру, когда существуют дочерние записи-сироты, которые не имеют связи с родительскими записями.

Пример проверки целостности данных в криптографии — это использование хеш-функции, к примеру MD5. Такая функция преобразует совокупность данных в последовательность чисел. Если данные изменятся, то и последовательность чисел, генерируемая хеш-функцией тоже изменится.

Целостность данных — свойство, при выполнении которого данные сохраняют заранее определённый вид и качество.

Содержание

Область использования

Понятие «целостность объекта» (англ. integrity ) используется в контексте терминологии информационной безопасности (объектом может быть информация, специализированные данные, ресурсы автоматизированной системы). В частности, свойство целостности информации (ресурсов автоматизированной системы) — является одним из трех основных критериев информационной безопасности объекта.

Обычно свойство целостности требуется наряду с конфиденциальностью (confidentiality) и доступностью (availability). Иногда к списку необходимых свойств информационной безопасности объекта добавляют неотказуемость (non-repudiation), подотчётность (accountability), аутентичность или подлинность (authenticity), достоверность (reliability).

Определения понятия

В Рекомендациях по стандартизации Р 50.1.053-2005 [1] дается следующее определение:

Целостность информации (ресурсов автоматизированной информационной системы) — состояние информации (ресурсов автоматизированной информационной системы), при котором ее (их) изменение осуществляется только преднамеренно субъектами, имеющими на него право.

В Рекомендациях по стандартизации Р 50.1.056-2005 [2] определения уточнены и разнесены по объектам приложения:

Целостность информации — состояние информации, при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право.

Целостность ресурсов информационной системы — состояние ресурсов информационной системы, при котором их изменение осуществляется только преднамеренно субъектами, имеющими на него право, при этом сохраняются их состав, содержание и организация взаимодействия.

В некоторых специализированных стандартах используются собственные определения данного понятия:

Целостность (integrity) [3] — свойство сохранения правильности и полноты активов.

Целостность информации [4] — обеспечение достоверности и полноты информации и методов ее обработки.

Целостность документа [5] — cвойство документа, состоящее в том, что при любой демонстрации документа заданные значения параметров демонстрируемого представления документа соответствуют специфицированным требованиям.

Использование термина

Реализация содержания

Методы и способы реализации требований, изложенных в определении термина, подробно описываются в рамках единой схемы обеспечения информационной безопасности объекта (защиты информации).

Основными методами обеспечения целостности информации (данных) при хранении в автоматизированных системах являются:

Одним из действенных методов реализации требований целостности информации при ее передаче по линиям связи является криптографическая защита информации (шифрование, хеширование, электронная цифровая подпись).

Целостность данных в криптографии

Шифрование данных само по себе, не гарантирует, что целостность данных не будет нарушена, поэтому в криптографии используются дополнительные методы для гарантирования целостности данных. Под нарушениями целостности данных понимается следующее: инверсия битов, добавление новых битов (в частности совершенно новых данных) третьей стороной, удаление каких-либо битов данных, изменение порядка следования бит или групп бит.

В криптографии решение задачи целостности информации предполагает применение мер, позволяющих обнаруживать не столько случайные искажения информации, так как для этой цели вполне подходят методы теории кодирования с обнаружением и исправлением ошибок, сколько целенаправленное изменение информации активным криптоаналитиком.

Процесс контроля целостности обеспечивается введением в передаваемую информацию избыточности. Это достигается добавлением к сообщению некоторой проверочной комбинации. Такая комбинация вычисляется согласно определенным алгоритмам и играет роль индикатора, с помощью которого проверяется целостность сообщения. Именно этот момент дает возможность проверить, были ли изменены данные третьей стороной. Вероятность того, что данные были изменены, служит мерой имитостойкости шифра.

Дополнительную избыточную информацию, вносимую в сообщение, называют имитовставкой. Вырабатываться имитовставка может как до начала, так и одновременно с шифрованием сообщения.

Имитовставки

Имитовставка, является функцией сообщения x, 69691c7bdcc3ce6d5d8a1361f22d04ac=f(x). Она может служить для целей аутентификации сообщения и проверки его целостности. Поэтому имитовставки можно разделить на два класса:

Хэш-функции для вычисления кода проверки целостности сообщений принадлежат к подклассу бесключевых хэш-функций. В реально существующих криптосистемах эти хэш-функции являются криптографическими, то есть кроме минимальных свойств хэш-функций(сжатие данных, простота вычисления дайджеста от сообщения) удовлетворяют следующим свойствам:

В зависимости от того, каким из этих свойств удовлетворяют MDC хэш-функции, можно выделить два их подкласса:

Существует три основных типа MDC алгоритмов хэш-функций, по способу их построения:

К MAC хэш-функциям для вычислений кодов аутентификации сообщений, подсемейству ключевых хэш-функций, относят семейство функций удовлетворяющих следующим свойствам:

Если не выполняется последнее свойство, то MAC может быть подделан. Также последнее свойство подразумевает, что ключ невозможно вычислить, то есть, имея одну или более пар (x[i], h(x[i])) с ключом k, вычислительно невозможно получить этот ключ.

Алгоритмы получения кода аутентификации сообщения могут быть разделены на следующие группы по их типу:

Получение MAC на основе MDC

Существуют методы получения из MDC кодов аутентификации сообщений включением секретного ключа во входные данные алгоритма MDC. Недостатком такого подхода является то, что фактически на практике большинство алгоритмов MDC разработано так, что они являются либо OWHF, либо CRHF, требования к которым отличаются от требований к MAC алгоритмам.

Схемы использования

Фактически, в общем виде, процесс передачи данных и их проверки на целостность выглядит следующим образом: пользователь A добавляет к своему сообщению дайджест. Эта пара будет передана второй стороне B. Там выделяется сообщение, вычисляется для него дайджест и дайджесты сравниваются. В случае совпадения значений сообщение будет считаться достоверным. Несовпадение будет говорить о том, что данные были изменены.

Обеспечение целостности данных с использованием шифрования и MDC

От исходного сообщения вычисляется MDC, 69691c7bdcc3ce6d5d8a1361f22d04ac=h(x). Этот дайджест добавляется к сообщению С=(x||h(x)). Затем расширенное таким образом сообщение шифруется каким-то криптоалгоритмом E с общим ключом k. После шифрования полученное сообщение Cencripted передается второй стороне, которая используя ключ, выделяет из шифрованного сообщения данные x’ вычисляет для него значение дайджеста 69691c7bdcc3ce6d5d8a1361f22d04ac’. Если он совпадает с полученным 69691c7bdcc3ce6d5d8a1361f22d04ac, то считается, что целостность сообщения была сохранена. Целью этого шифрования является защита добавленного MDC, чтобы третья сторона не могла изменить сообщение без нарушения соответствия между расшифрованным текстом и восстановленным кодом проверки целостности данных. Если при передаче данных конфиденциальность не является существенной, кроме как для обеспечения целостности данных, то возможны схемы, в которых будут зашифрованы только либо сообщение x, либо MDC.

Обеспечение целостности данных с использованием шифрации и MAC

По сравнению с предыдущим случаем в канал посылается сообщение следующего вида: Ek(x||hk1(x)). Такая схема обеспечения целостности имеет преимущество над предыдущей схемой с MDC: если шифр будет взломан, MAC все равно будет обеспечивать целостность данных. Недостатком является то, что используется два различных ключа, для криптоалгоритма и для MAC. При использовании подобной схемы, следует быть уверенным, что какие-либо зависимости между алгоритмом MAC и алгоритмом шифрации не приведут к уязвимости системы. Рекомендуется, чтобы эти два алгоритма были независимыми (например, такой недостаток системы может проявляться, когда в качестве алгоритма MAC используется CBC-MAC, и в качестве схемы шифрования CBC).

Вообще говоря, шифрация всего сообщения при использовании кодов аутентификации сообщений не обязательно с точки зрения обеспечения целостности данных, поэтому в простейших случаях в схеме может не происходить шифрация сообщения (x||hk(x)).

Неумышленные нарушения целостности

С точки зрения криптографии основной интерес представляют задачи обеспечения целостности данных, в которых осуществляются их умышленные изменения. Однако методы обеспечения проверки случайных изменений тоже применяются. К таким методам относят использование кодов обнаружения и исправления ошибок. К таковым, например, относятся: коды Хемминга, коды CRC, коды БЧХ и прочие.

Аутентификация и целостность

Проблема целостности данных плотно связанно и с проблемой аутентификации данных, то есть установлением источника данных. Эти проблемы не могут быть отделены одна от другой. Данные, которые были изменены, имеют фактически новый источник. Также если не известен источник данных, то вопрос об их изменении не может быть разрешен (без ссылки на источник). Таким образом, механизмы проверки целостности данных обеспечивают аутентификацию данных, и наоборот.

Использование ГОСТ 28147-89

ГОСТ 28147-89 может использоваться в качестве одного из методов по вычислению кодов аутентификации сообщений. Для ГОСТ 28147-89 режим выработки имитовставки выглядит следующим образом:

Источник

Adblock
detector