3. Ограничение целостности по состоянию

3. Ограничение целостности по состоянию

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

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

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

Что это означает? Это означает, что ограничения целостности зависят:

1) на уровне атрибута – от значений атрибута;

2) на уровне кортежа – от значений кортежа, т. е. от значений нескольких атрибутов;

3) на уровне отношений – от отношения, т. е. от нескольких кортежей;

4) на уровне базы данных – от нескольких отношений.

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

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

1) процедурной, т. е. созданной при помощи написания программного кода;

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

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

Ограничение уровня атрибута включает в себя:

1) ограничения типа значений атрибута.

Например, условие целочисленности значений, т. е. условие integer для атрибута «Курс» из одного из рассмотренного ранее базового отношения;

2) ограничение значений атрибута, записываемое как условие, зависящее от имени атрибута.

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

check (1 <= Курс and Курс <= 5);

3) ограничение уровня атрибутов включает в себя ограничения Null-значений, определяемые уже знакомым нам флажком допустимости (Null) или, наоборот, недопустимости (not Null) Null-значений.

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

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

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

check (0 < min Вес Кг and min Вес Кг < max Вес Кг);

И, наконец, последнее значимое в контексте ограничения целостности по состоянию понятие – это понятие уровня отношений. Как мы уже говорили раньше, ограничение уровня отношения включает в себя ограничение значений первичного (primary key) и кандидатного (candidate key) ключей.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

8.4.2 Протоколы по состоянию связи

Из книги автора

8.4.2 Протоколы по состоянию связи Ранее большое внимание уделялось алгоритмам маршрутизации по состоянию связи (link state). Работающие по этому принципу маршрутизаторы создают карту сети и исследуют пути от себя до каждой из точек сети.Для каждой связи карты формируется


Ограничение

Из книги автора

Ограничение Второй элемент формулы ОДП – дедлайн (от англ. deadline), или ограничение. Это может быть ограничение по времени (например, скидка 50 % только два дня) или по количеству (например, ценный подарок для первых 50 покупателей). Причем короткие по времени дедлайны работают


Обеспечение ссылочной целостности с помощью индексов

Из книги автора

Обеспечение ссылочной целостности с помощью индексов В определении индекса имеется еще одна опция - UNIQUE. Если ее указать, то индекс позволит заносить в таблицу только уникальные значения. Фактически это служит основой для реализации уникальных ключей (UNIQUffi KEY).


Расширенные возможности поддержки ссылочной целостности с помощью внешнего ключа

Из книги автора

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


Глава 19. ПОДДЕРЖКА ЦЕЛОСТНОСТИ ВАШИХ ДАННЫХ

Из книги автора

Глава 19. ПОДДЕРЖКА ЦЕЛОСТНОСТИ ВАШИХ ДАННЫХ РАНЕЕ В ЭТОЙ КНИГЕ, МЫ УКАЗЫВАЛИ НА ОПРЕДЕЛЕННЫЕ связи которые существуют между некоторыми полями наших типовых таблиц. Поле snum таблицы Заказчиков, например, соответствует полю snum в таблице Продавцов и таблице Порядков. Поле cnum


3.5. Контроль целостности с Xintegrity

Из книги автора

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


Использование ссылочной целостности для поддержания непротиворечивости данных

Из книги автора

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


4. Ограничения ссылочной целостности

Из книги автора

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


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

Из книги автора

Ограничения целостности Ограничения целостности устанавливают правила, которые управляют состоянием доступных элементов данных или отношением между столбцом и таблицей, как целое - часто и тем, и другим. Примерами являются NOT NULL (не допускает ввод, содержащий


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

Из книги автора

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


Действия триггеров по изменению правил целостности

Из книги автора

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


Предложения действия ссылочной целостности

Из книги автора

Предложения действия ссылочной целостности Триггеры ссылочной целостности являются модулями компилированного кода, создаваемыми ядром сервера, когда вы объявляете ограничение ссылочной целостности для ваших таблиц. Включив предложения действия ON UPDATE и ON DELETE В


Содержание важнее целостности

Из книги автора

Содержание важнее целостности То, что имеет смысл «здесь», может потерять его «там»Должны ли действия задаваться кнопками или ссылками? Это зависит от действия. Должны ли даты выбираться из списка или из сетки календаря? Это зависит от того, где будут показаны даты и