А.2.3.3.3. Условия целостности

Условия целостности обеспечивают, чадекватное моделирование реальности с помощью базы данных (Blaser, Jarke, Lehmann. Datenbanksprachen und Datenbankbenutzung. 1987, c. 586).

Поскольку таблицы в реляционных моделях не позволяют достаточно хорошо описывать семантические элементы, условия целостности описываются языком манипулирования данными. Можно задавать условия целостности и в рамках прикладной программы. Учитывая принцип локальности и преимущества централизованного управления целостностью данных, эти условия целесообразно включить в представление данных. Современные СУБД рассчитаны на хранение максимума функциональных модулей (которые раньше хранились в программах) в непосредственной близости от баз данных (Dittrich, Gatziu. Aktive Datenbanksysteme. 1996).

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

Условия непротиворечивости относятся к атрибутам, экземплярам отношений (кортежам) и отношениям, вытекающим из типов отношений (Blaser, Jarke, Lehmann. Datenbanksprachen und Datenbankbenutzung. 1987, c. 588), которые также известны как условия целостности на уровне ссылок.

Стандартным языком манипулирования данными в реляционных моделях является SQL. В языке SQL условия целостности задаются при помощи команд утверждения (ASSERT) и описания событий, которые должны активизировать выполнение действий.

Например, если при удалении номера сотрудника (EMP_NO) в отношении EMPLOYEE (СОТРУДНИК) должна удаляться и связь с квалификацией сотрудника в отношении OWNS (ОБЛАДАЕТ), связанном с отношением SKILLS (КВАЛИФИКАЦИЯ), то активизатор описывается следующим образом (Blaser, Jarke, Lehmann. Datenbanksprachen und Datenbankbenutzung. 1987, c. 592):

DEFINE TRIGGER Tl

ON DELETE OF EMPLOYEE (EMP_NO):

DELETE OWNS

WHERE OWNS.EMP_NO=EMPLOYEE.EMP_NO.

На рис. 71 приведено несколько примеров описания утверждений.

Пояснение 1) Условие относится к атрибуту. Пример: экземпляры ЕМР N0 должны иметь четыре разряда 2) Условие относится к множеству атрибутов экземпляр записи. Пример: сумма зарплаты (SALARY_SUM) по отделу должна быть меньше его годового бюджет (ANNUAL_BUDGET). 3) Условие относится к множеству экземпляров одного и того же типа записи (отношения). Пример: зарплата одного сотрудника не может превышать среднюю зарплату по отделу более чем на 20% 4) Условие относится к множеству экземпляров в различных отношениях. Пример: значение SALARY_SUM в отделе всегда должно равняться сумме полей SALARY его сотрудников. Операторы SQL ASSERT IB1 ON EMPLOYEE: ЕМР NO BETWEEN 0001 AND ASSERT IB2 DEPARTMENT: SALARY SUM < ANNUAL BUDGET ASSERT IBS ON EMPLOYER X: SALARY = 1,2 J (SELECT AVG(SALARY) FROM EMPLOYEE WHERE DEPART = X.DEPART) ASSERT IB4 ON EMPLOYER X: SALARY SUM = (SELECT SUM(SALARY) FROM EMPLOYEE WHERE DEPART = X.DEPARTNO)

Рис. 71. Условия целостности (Reuter. Sicherheits und Integritatsbedingungen. 1987, c. 381, 385)

На рис. 72 показаны ключевые отношения, вытекающие из декомпозиции условий целостности. Отправной точкой для рассмотрения проблем целостности является левая часть рис. 72, содержащая классы ОТНОШЕНИЕ, АТРИБУТ и ДОМЕН. Класс ТИП ЦЕЛОСТНОСТИ описывает различные типы условий целостности (Reuter. Sicherheits-und Integritatsbedingungen. 1987, с. 380). Их можно дифференцировать по диапазону (тип и число объектов, которым адресовано условие целостности; см. примеры на рис. 71), по времени проверки (всегда ли проверяются условия целостности или только после выполнения определенного количества операций), по способу проверки (условия состояния или условия перехода) или по возможности активизации действий в зависимости от условия целостности.

На рис. 72 каждое конкретное условие целостности связано с одним типом целостности. Условие целостности может относиться к одному или нескольким отношениям и к ассоциации атрибутов одного или нескольких отношений. Пределы значения атрибута контролируются их связью с классом АССОЦИАЦИЯ С ДОМЕНОМ.

Рис. 72. Метамодель условий целостности


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: