Сетевые модели данных. Ограничения целостности, страница 2

+-------------+                +---------------+

¦Соловьев С.В.+----------------¦ Прохоров П.Р. ¦

+-------------+                +---------------+

¦ ¦                             ¦   ¦  +-------------+

¦ ¦    +---------------+        ¦   +--¦Смирнова Н.И.¦

¦ +----¦Белоусова Л.В. ¦        ¦      --------------+

¦      +---------------+        ¦

¦     +---------------+         ¦ +-----------------+

+-----¦  Жукова Т.В.  ¦         +-¦Сидельников В.Н. ¦

+---------------+           +-----------------+

Рисунок 8.6

Представление рекурсивных связей не создает трудностей в смысле обеспечения функциональных связей, но возникает проблема контекста в навигационных языках.

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

На функциональные связи между типами данных также могут накладываться явные ограничения. Эти ограничения выражаются зависящими или не зависящими от времени свойствами связей и задаются ТИПАМИ ЧЛЕНСТВА и ПОРЯДКОМ ВКЛЮЧЕНИЯ записей в набор.

ФИКСИРОВАННОЕ ЧЛЕНСТВО (FIXED RETENTION) означает, что как только запись стала членом набора, ее нельзя разъединить с владельцем или перенести в другой набор. Единственный способ исключения записи из набора - ее удаление из базы данных. Примером может служить связь между корпусом и аудиторией.

ОБЯЗАТЕЛЬНОЕ ЧЛЕНСТВО (MANDATORY RETENTION) отличается от предыдущего тем, что запись может быть переведена из одного набора в другой. Примером могут служить связи "факультет - учебная группа", "семестр-учебная практика". НЕОБЯЗАТЕЛЬНОЕ ЧЛЕНСТВО (OPTIONAL RETENTION) обозначает, что запись может исключаться из набора данных в произвольный момент и может не принадлежать никакому экземпляру набора, хотя на уровне описания СМД соответствующая связь будет определена. Примером связи такого типа является отношение "учебная группа - студент".

Возможны два качественно разных способа включения записи в экземпляр набора: автоматическое включение (AUTOMATIC INSERTION) и ручное включение (MANUAL INSERTION).

При АВТОМАТИЧЕСКОМ ВКЛЮЧЕНИИ в момент создания записи в базе данных запись обязательно включается в один из экземпляров соответствующего набора данных. Выбор соответствующего экземпляра набора осуществляется СУБД в соответствии с тем или иным принципом селекции или с использованием результата предварительной селекции. При РУЧНОМ ВКЛЮЧЕНИИ создание записи в БД не ведет к каким либо действиям СУБД по включению записи в экземпляр набора.

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

Правильность включения в набор можно контролировать с помощью СТРУКТУРАЛЬНОГО ОГРАНИЧЕНИЯ. В соответствии с этим ОЦ значение некоторого атрибута подчиненной записи набора равно значению определенного атрибута записи владельца экземпляра набора. Структуральное ОЦ удобно использовать для селекции записи владельца, к которой присоединяется новая запись БД в режиме автоматического включения.

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

¨  выбор системой (для сингулярных наборов),

¨  выбор с использование прикладного процесса,

¨  выбор по ключу,

¨  выбор в соответствии со структуральным ограничением целостности.

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

Описание схемы БД в классическом образце сетевой СУБД Information Database Management System) представляет собой описание совокупности типов записей и типов наборов.

Пример описания фрагмента модели:

RECORD NAME IS UN

LOCATION MODE IS CALC USING SNU

DUPLICATES ARE NOT ALLOWED

SNU TYPE IS CHAR 10

LNU TYPE IS CHAR 150

NSPEC PICTURE IS "99"

RECORD NAME IS FAC

LOCATION MODE IS CALC USING FAC, SNU

DUPLICATES ARE NOT ALLOWED

SNU TYPE IS CHAR 10

SNF TYPE IS SHAR 10

LNU TYPE IS CHAR 150

RECORD NAME IS SPEC

LOCATION MODE IS CALC USING SPEC

DUPLICATES ARE NEXT

CSP PICTURE IS "999999"

SNSPEC TYPE IS CHAR 10

LNSPEC TYPE IS CHAR 150

SET NAME IS FAC_UN

OWNER IS UN

ORDER IS SORTED BY SNF

DUPLICATES ARE NOT ALLOWED

NUMBER IS FAC

INSERTION IS AUTOMATIC RETENTION IS FIXED

SET SELECTION IS BY STRUCTURAL SNU=SNU

SET NAME IS SPEC_FAC

OWNER IS FAC

ORDER IS SORTED BY CSP

DUPLICATES ARE NOT ALLOWED

MEMBER IS SPEC

INSERTION IS MANUAL RETENTION IS OPTIONAL

Предложение LOCATION MODE определяет организацию файла и метод доступа для данного типа записи (механизм прямого доступа с использованием алгоритма хеширования. Здесь таблица специальностей допускает дубликаты и, в то же время, дубликаты не допускаются в экземплярах набора SPEC_FAC (специальности факультета). При автоматическом включении записей FAC в экземпляры набора FAC_UN используется структуральное ограничение целостности.