Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Термин “Целостность” используется для описания точности и корректности данных в БД. Целостность данных означает защиту данных от санкционированного доступа. Как при обеспечении безопасности, так и при поддержке целостности система должна содержать сведения о тех правилах, которые пользователю не следует нарушать. В обоих случаях эти правила должны быть заданы (обычно администратором БД) на некотором удобном языке и хранится в системном каталоге. Как правило ответственным за содержание этих правил является АБД.

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

В общем виде правила целостности должны содержать 3 компонента:

Ограничение целостности регистрируется в системном каталоге под некоторым именем.

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

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

Ограничения целостности удобно классифицировать по 4 категориям: ограничение целостности домена, ограничение целостности атрибута, ограничение целостности отношения, ограничение целостности БД.

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

2. Ограничение целостности атрибута - является определение домена из которого выводятся значения атрибута.

В обоих этих случаях нет необходимости генерации отдельного правила.

CREATE DOMAIN QTY NUMERIC(9)

FORALL QTY (QTY>0 and QTY<500)

FORALL - квантор общности

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

CREATE INTEGRITY RULE имя ограничения

[ON ATTEMPTED VIOLATION действие]

Пример:

CREATE INTEGRITY RULE SR7

FORALL S (IF S.CITY=‘London’ THEN S.STATUS=20)

Статус у поставщиков из Лондона должен быть 20, иначе отказ в регистрации.

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

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

Пример.

Поставщики со статусом < 20 не могут поставить товаров в количестве >500.

CREATE INTEGRITY RULE C9

FORALL SX (FORALL SPX

(IF SX.STATUS<20 AND SX.S#=SPX.S#

THEN SPX.QTY<=500))

Это же правило можно записать проще.

CREATE INTEGRITY RULE C9

FORALL SX.STATUS<20 AND SX.S#=SPX.S#

THEN SPX.QTY<=500

SX- переменные отношения S

Отличие ограничения целостности отношения и ограничения целостности БД:

ОЦБД должно включать по крайней мере одно условие соединения

ОЦБД в отличие от ОЦО не проверяется немедленно (отключается до момента окончания выполнения транзакции)

По умолчанию в качестве параметра действия используется не операция отказа REJECT, а операция отката RULLBACK.

Пример. Ни для какого товара сумма поставки не должна превысить 2000.

CREATE INTEGRITY RULE C10

FORALL P (SUM(SP WHERE SP.P#=P.P#,QTY)<=2000

SUM-квантор общности для SP

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

Пример.

Статус поставщика не должен уменьшаться.

CREATE INTEGRITY RULE C11

FORALL S’ FORALL S

(IF S’.S#=S.S# THEN S’.STATUS<=S.STATUS)

S” и S кортежи поставщиков до и после обновления

Это ограничение задано для отношения, поэтому выполняться оно будет немедленно.

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

CREATE INTEGRITY RULE C12

FORALL S

(SUM (SP WHERE SP.S#=S.S#, QTY) >= (SUM(SP’ WHERE SP”.S# = S.S#,QTY))

Для доменов и атрибутов концепция ограничения состояния и переходов смысла не имеет.




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


Дата добавления: 2015-05-07; Просмотров: 315; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.