Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Поддержание ссылочной целостности данных в субд на примере субд vfp

Правила

Правила позволяют вызывать выполнение заданных действий при определенных изменениях базы данных. Обычно действие - это вызов процедуры. Правила ассоциируются с таблицами и срабатывают при изменении этих таблиц.

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

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

 

SET NORULES;

Оператор

 

SET RULES;

позволит затем восстановить работу механизма правил. По умолчанию этот механизм включен.

Для удаления правил служит оператор

DROP RULE правило;

СУБД обеспечивает автоматическое удаление правил в тех случаях, когда удаляется соответствующая таблица. Тем самым поддерживается целостность системы таблиц и правил.

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

 

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

Для определения условия целостности данных в окне конструктора баз данных выберите команду контекстного меню Edit Referential Integrity или соответствующую ей кнопку панели инструментов «Database Designer» (рис. 16).

Рис. Содержание всплывающего меню в Database Designer.

В результате откроется окно конструктора условий целостности данных «Referential Integrity Builder» (след. рис.), которое содержит перечень всех установленных отношений между таблицами. Таблица описания условий содержит наименования родительской и дочерней таблиц, наименования индексов, используемых для связи, а также типы действий, выполняемых при модификации данных, добавлении и удалении записей.

Рис. Окно «Referential Integrity Builder»

для определения условия ссылочной целостности.

 

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

При изменении значения первичного ключа или ключа-кандидата в родительской таблице возможны варианты действий, представленные в таблице 1:

Таблица 1

Наименование Описание
Cascade   При изменении значений полей первичного ключа или ключа-кандидата в родительской таблице, автоматически осуществляется каскадное изменение всех соответствующих значений в дочерней таблице. Например, если это правило применить к отношению между таблицами Staff и Paies, при изменении кода сотрудника в таблице Staff автоматически будут изменены коды и в таблице Paies.
Restrict   Не позволяет изменять значения полей первичного ключа или ключа-кандидата в родительской таблице, если в дочерней таблице имеется хотя бы одна запись, содержащая ссылку на изменяемую запись. Данное правило также можно применить к отношению между таблицами Staff и Paies, если в создаваемом приложении коды сотрудника определяются на этапе ввода нового сотрудника и в дальнейшем не редактируются.
Ignore   Позволяет изменять значения полей первичного ключа или ключа-кандидата в родительской таблице, независимо от существования связанных записей в дочерней таблице. Целостность данных при этом не поддерживается.

 

При удалении записи в родительской таблице возможны следующие варианты действий (табл. 2):

Таблица 2

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

 

При добавлении новой записи в дочернюю таблицу или редактировании в ней существующей записи возможны следующие варианты действий (табл. 3):

 

Таблица 3

Наименование Описание
Restrict He позволяет вводить запись, если значение индексного выражения дочерней таблицы не соответствует ни одной из записей родительской таблицы. Данное правило вы можете применять к отношению между таблицами Staff и Paies.
Ignore При вводе данных в дочернюю таблицу не анализируется содержимое индексного выражения. Целостность данных при этом не поддерживается.

 

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

 

 

<== предыдущая лекция | следующая лекция ==>
Ограничения | Возможности реиндексации в БД
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 330; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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