Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ситуаційно-орієнтовані обмеження цілісності

Читайте также:
  1. За часовими обмеженнями
  2. ІІ Універсал та спроби обмеження Тимчасовим Урядом автономії України
  3. Класифікація обмежень цілісності
  4. Обмеження дозвілля
  5. Обмеження майнових авторських та суміжних прав.
  6. Операції з поняттями 4.1. Обмеження й узагальнення понять
  7. Політика обмеження автономного устрою Гетьманщини в XVIIIст.
  8. При обмеженнях .
  9. Розділ 1. ПРАВОВІ ЗАСАДИ ОБМЕЖЕННЯ МОНОПОЛІЗМУ І РЕГУЛЮВАННЯ КОНКУРЕНЦІЇ

Ситуаційно-орієнтовані обмеження задаються у вигляді вимог, яким мають від­повідати послідовні стани бази даних, тобто завдяки таким обмеженням фіксу­ються допустимі переходи бази даних з одного стану в інший.

Приклад можливих переходів значення атрибута Сі мейнийстан можна побачи­ти на рис. 8.1.

Рис. 8.1. Можливі переходи значення атрибута «Сімейний стан»

Для специфікації ситуаційно-орієнтованих обмежень застосовуються ті самі засоби, що й для специфікації структурних обмежень. Окрім того, використову­ється можливість посилатися на значення бази даних до її оновлення й після.

Це досягається за допомогою уточнюючих фраз OLD та NEW, що вживаються в поси­ланнях на значення, які зберігалися в базі даних до й після зміни її стану.

Зазвичай для опису динамічних обмежень використовуються тригери, які іні­ціюються під час зміни стану бази даних командами INSERT, UPDATE та DELETE. На­приклад, допустимі переходи атрибута Сімейний_стан можуть бути специфіковані у вигляді такого тригера:

CREATE TRIGGER Особа_Ci мейний_Стан

BEFORE INSERT, UPDATE ON ОСОБА

WHEN (ОLD.Сімейний_стан = 'Неодружений' AND

NEW.Сімейний_стан IN('Розлучений', 'Вдівець')) OR

(ОLD.Сімейний_стан = 'Одружений' AND

NEW. Ciмейний_стан = 'Неодружений') O R

(ОLD.Сімейний_стан = 'Розлучений' AND

NEW.Сімейний_стан IN('Неодружений'.'Вдівець')) OR

(ОLD.Сімейний_стан = 'Вдівець' AND

NEW. Сімейний_стан IN ('Неодружений'.'Розлучений')

BEGIN

ROLLBACK TRANSACTION

END

Це обмеження можна специфікувати в означенні таблиці ОСОБА за умови, що допускається використання кваліфікаторів NEW і OLD:




Дата добавления: 2014-12-15; просмотров: 77 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав