+-------------+ +---------------+
¦Соловьев С.В.+----------------¦ Прохоров П.Р. ¦
+-------------+ +---------------+
¦ ¦ ¦ ¦ +-------------+
¦ ¦ +---------------+ ¦ +--¦Смирнова Н.И.¦
¦ +----¦Белоусова Л.В. ¦ ¦ --------------+
¦ +---------------+ ¦
¦ +---------------+ ¦ +-----------------+
+-----¦ Жукова Т.В. ¦ +-¦Сидельников В.Н. ¦
+---------------+ +-----------------+
Рисунок 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 используется структуральное ограничение целостности.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.