Обеспечение целостности данных

Существует два основных вида ограничений целостности, кото­рые должны поддерживаться СУБД:

1) структурные ограничения – задаются функциональными за­висимостями и проверяются путем проверки равенства значений соответствующих данных в БД;

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

Существуют и другие ограничения целостности. Например, ограничения на условия выполнения параллельных операций над данными в базе; ограничения тина «старый» – «новый», когда БД переходит в новое состояние.

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

Рассмотрим различные тины ограничений целостности.

1. Значения первичного ключа любого отношения (файла) должны быть уникальны. Система управления БД должна откло­нить любую попытку ввести в базу данных кортеж (запись) со значением первичного ключа, повторяющим уже имеющееся зна­чение. Для спецификации этого типа ограничений достаточно фразы KEY при описании модели данных.

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

Рассмотренные два примера соответствуют структурным ограни­чениям. Если отношение находится в четвертой нормальной форме, то фраз KEY и UNIQUE достаточно для спецификации всех функ­циональных зависимостей. Если отношение содержит некоторую дополнительную зависимость (т. е. не является нормализованным), эту зависимость необходимо специфицировать специальным выра­жением при описании данных.

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

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

5. Для некоторого атрибута (или комбинации атрибутов) мо­жет существовать конечный, небольшой по размеру набор допус­тимых значений (например, по атрибуту ОБРАЗОВАНИЕ могут быть только значения НАЧАЛЬНОЕ, НЕПОЛНОЕ СРЕДНЕЕ СРЕДНЕЕ, НЕПОЛНОЕ ВЫСШЕЕ, ВЫСШЕЕ). Ограничение специфицируется специальным выражением при описании данных.

6. Значения некоторого атрибута должны удовлетворять опре­деленному формату. Ограничение специфицируется фразой при описании соответствующего атрибута.

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

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

Примеры 3—8 соответствуют второму виду ограничений—ог­раничений на значения данных.

9. Требуется ограничить обновление данных в заданном отно­шении таким образом, чтобы для указанного атрибута имело место в каждом кортеже некоторое соотношение между «старым» и «но­вым» значениями. Чтобы специфицировать подобное ограничение, в языках должны быть предусмотрены возможности ссылки на ста­рое и новое значения.

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

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

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

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








Дата добавления: 2015-02-10; просмотров: 1546;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.