Целостность БД - Банки и базы данных. Системы управления базами данных

Банк база данный case технология

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

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

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

    1. Поддержка структурной целостности. Это означает, что любая реляционная БД строится только над структурами данных, удовлетворяющих свойствам реляционных отношений. 2. Поддержка языковой целостности. Любая реляционная СУБД должна иметь возможность описывать данные и манипулировать ими в формате не ниже стандарта SQL. Это означает, что доступ к информации БД может быть выполнен только при помощи операторов SQL. 3. Поддержка ссылочной целостности. Этот принцип гласит, что при изменении данных во взаимосвязанных отношениях могжет произойти только одно из следующих действий:
      - кортежи подчиненного отношения должны уничтожаться при удалении кортежа основного отношения, связанного с ними; - кортежи основного отношения можно удалять только при отсутствии связанных с ними кортежей подчиненного отношения; - кортежи подчиненного отношения при удалении кортежа основного отношения, связанного с ними, не удалаются, но модифицируются таким образом, что на месте ключа родительского отношения устанавливается значение NULL.

Ссылочная целостность поддерживает БД в непротиворечивом состоянии при модификации данных в процессе добавления или удаления.

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

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

1. Ограничения целостности атрибута - устанавливаются ограничения на значение по умолчанию, уникальность значения, на тип и формат значений, диапазон значений, на указание признака определенного или неопределенного значения, на домен, соответствующий данному атрибуту.

При задании значения по умолчанию каждый раз при вводе новой записи в таблицу при отсутствии прямого указания на значение атрибута этому атрибуту присваивается заданное значение.

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

Тип значения определяет допустимые для данного атрибута символы (числа, буквы, логические переменные и т. д.), а формат устанавливает более жесткие ограничения на возможные значения (например, формат "дата").

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

Признак определенного значения (обязательность заполнения) не допускает пустого значения атрибута.

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

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

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

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

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

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

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

    5. Ограничения целостности алгоритмических зависимостей. Если в БД имеются производные данные, которые получаются в результате каких-то операций, выполненных над другими данными (исходные данные), то изменение производных данных либо должно быть следствием изменения исходных данных, либо вообще запрещено. 6. Запрет на обновления. Этот запрет может относиться к любому объекту - атрибуту, строке или таблице. Так, во многих СУБД этот запрет распространяется на значения первичных ключей.

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

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

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

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

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

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

Ряд ограничений целостности следует непосредственно из описания предметной области в рамках ER-модели.

    1. Ограничение на уникальность. Ключи таблиц являются уникальными идентификаторами. 2. Между первичными ключами (уникальными идентификаторами) и другими атрибутами имеются функциональные зависимости. 3. При наличии связи между сущностями могут присутствовать ограничения по связи. Тип связи и класс ее принадлежности определяет ограничение целостности на связь между сущностями. 4. Для статических свойств сущности можно устанавливать запрет на обновление, Если свойством является некоторое условие, то значения атрибута может быть неопределенными.

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

Похожие статьи




Целостность БД - Банки и базы данных. Системы управления базами данных

Предыдущая | Следующая