КАТЕГОРИИ: Архитектура-(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; Просмотров: 338; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |