Ограничения целостности в сетевой модели.
Описывая конкретный тип группового отношения, администратор БД определяет, допустимы или нет экземпляры с одинаковыми значениями ключей, а также направление упорядочения (по возрастанию или по убыванию). Если ключом является фамилия, дублирование разрешено, а если – номер паспорта – нет, в таком случае информационная система должна препятствовать размещению в БД тождественных записей.
Таким образом, признак отношения и способ упорядочения позволяют создать ограничение целостности данных; одни и те же записи, являясь подчиненными в разных отношениях, могут быть упорядочены различными способами
В сетевой модели обеспечивается только поддержание целостности по ссылкам (владелец отношения — член отношения). Как уже отмечалось, не обеспечивается автоматическое поддержание соответствия парных записей.
4.. Иерархические базы данных.
Типичным представителем (наиболее известным и распространенным) является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. До сих пор поддерживается много таких баз данных, что создает существенные проблемы с переходом, как на новую технологию БД, так и на новую технику.
Структура данных иерархической модели
Структура данных как и в сетевой модели, определяется терминами: элемент данных, агрегат данных, запись, групповое отношение, база данных.
Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева. Для графического изображения также удобно использовать диаграммы Бахмана. Отличительная черта для иерархических баз данных – ее диаграмма Бахмана будет деревом (рис. 5.1).
Рис. 5.1 Диаграмма Бахмана иерархической базы данных.
Очевидно, что количество деревьев в БД определяется числом корневых записей. Групповые отношения в иерархической модели не именуются, поскольку они определяются парой типов записей. Владелец именуется исходной записью, а член группового отношения – подчиненной.
К любой записи существует единственный путь от корневой записи. Этот путь называется иерархическим.
Для упорядочивания подчиненных записей в экземплярах групповых отношений могут использоваться разные способы (наиболее часто употребляемый — сортировка по возрастающему значению ключа).
Экземпляры корневых записей должны иметь уникальные значения ключей в рамках группового отношения. Каждой записи можно поставить в соответствие полный сцепленный ключ – совокупность всех ключей от корневой записи до данной. Любую сетевую структуру можно представить иерархической моделью, при этом сетевая структура подвергается преобразованию (рис. 5.2).
Рис. 5.2 Преобразование сетевой модели в иерархическую.
Все сведения о жителе, хранящиеся в одной записи “житель”, распределены по трем записям. Запись “Пациент” — содержит медицинские сведения, “Работник” — производственные данные, “Вкладчик” -банковские данные. Часть данных обязательно дублируется. Пример: паспортные данные, такие записи называют парными. Ответственность за поддержание соответствия между парными записями ложиться на пользователя, модель данных этого не обеспечивает. Для внесения группового отношения в иерархическую модель должен быть включен режим автоматического включения.
Операции над данными в сетевой модели БД
· ДОБАВИТЬ — внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение.
· ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ — связать существующую подчиненную запись с записью-владельцем.
· ПЕРЕКЛЮЧИТЬ — связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.
· ОБНОВИТЬ — изменить значение элементов предварительно извлеченной записи.
· ИЗВЛЕЧЬ — извлечь записи последовательно по значению ключа, а также используя групповые отношения — от владельца можно перейти к записям — членам, а от подчиненной записи к владельцу набора.
· УДАЛИТЬ — убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные удалены вместе с владельцем, необязательные останутся в БД.
· ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ — разорвать связь между записью-владельцем и записью-членом.
Ограничения целостности.
Как и в иерархической модели обеспечивается только поддержание целостности по ссылкам (владелец отношения — член отношения).
Достоинства и недостатки ранних СУБД
Достоинства ранних СУБД:
· развитые средства управления данными во внешней памяти на низком уровне;
· возможность построения вручную эффективных прикладных систем;
· возможность экономии памяти за счет разделения подобъектов (в сетевых системах)
Недостатки ранних СУБД
· высокий уровень требований к знаниям о физической организации БД;
· зависимость прикладных систем от физической организации БД;
· перегруженность логики прикладных систем деталями организации доступа к БД.
Как иерархическая, так и сетевая модель данных предполагает наличие высококвалифицированных программистов. И даже в таких случаях реализация пользовательских запросов часто затягивается на длительный срок.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Сетевая модель
Большое влияние при разработке стандарта сетевой модели оказал американский ученый Ч. Бахман. Разработка основных принципов сетевой модели данных началась в середине 1960-х гг., а ее эталонный вариант в 1971 г. описала CODASYL (COnference on DAta SYstem Languages) – рабочая группа по языкам баз данных.
Сетевую модель данных определяют те же термины, что и иерархическую. Сетевая модель включает множество записей, которые являются владельцами или членами групповых отношений. Владелец и член связаны между собой отношением типа 1:n.
Основным различием иерархической и сетевой модели является то, что в сетевой модели запись может являться членом более одного группового отношения. Каждое групповое отношение в сетевой модели имеет имя и различается его тип и экземпляр. Типом группового отношения определяются свойства, которые являются общими для всех экземпляров данного типа. Экземпляром группового отношения является запись-владелец и множество подчиненных записей, которое может быть пустым. При этом существует ограничение: экземпляр записи не может являться членом 2-х экземпляров групповых отношений одного типа (например, сотрудник не может быть работником двух отделов).
При организации сетевой структуры:
- запись СОТРУДНИК содержится в двух групповых отношениях;
- для отображения связи типа m:n вводят запись СОТРУДНИК_КОНТРАКТ, которая не содержит полей и существует лишь с целью связать записи КОНТРАКТ и СОТРУДНИК (рисунок 1). Следует отметить, что данная запись может хранить и полезную информацию (например, долю сотрудника в общем вознаграждении по заданному контракту).
У каждого экземпляра группового отношения имеются определенные признаки:
- Способ упорядочивания подчиненных записей:
- произвольный;
- сортированный;
- хронологический (очередь);
- обратный хронологический (стек).
Если запись является подчиненной и содержится в нескольких групповых отношениях, то в каждом из отношений можно назначить свой способ упорядочивания.
- ручной, при котором подчиненная запись может быть запомнена в БД и не включена немедленно в экземпляр группового отношения. Эту операцию позже инициирует пользователь;
- автоматический, при котором не представляется возможным занесение в БД записи без того, чтобы ее сразу же не закрепили за определенным владельцем.
- Обязательное. Переключение подчиненной записи на другого владельца допускается, но она не может существовать без владельца. Для того, чтобы удалить запись-владелец необходимо, чтобы она не имела подчиненные записи с обязательным членством. Такое отношение существует между записями СОТРУДНИК и ОТДЕЛ. В случае расформирования отдел всех его сотрудников необходимо перевести в другие отделы или уволить.
- Необязательное. Исключение записи из группового отношения возможно при сохранении ее в базе данных без прикрепления к другому владельцу. При удалении записи-владельца происходит сохранение в базе ее подчиненных записей (необязательных членов), которые больше не участвуют в групповом отношении этого типа. Пример необязательного группового отношения: ВЫПОЛНЯЕТ между записями СОТРУДНИКИ и КОНТРАКТ, т.к. на предприятии могут работать сотрудники, которые не выполняют какие-либо договорные обязательства перед заказчиками.
- Фиксированное. Жесткая связь подчиненной записи с записью-владельцем и ее возможно исключить из группового отношения лишь при удалении. При удалении записи-владельца происходит автоматическое удаление всех ее подчиненных записей. Пример фиксированного членства: групповое отношение ЗАКЛЮЧАЕТ между записями КОНТРАКТ и ЗАКАЗЧИК, т.к. контракт не существует без заказчика.
Операции над данными в сетевой модели
Добавление – внесение записи в базу данных и, в зависимости от режима включения, или включение ее в групповое отношение, где она является подчиненной, или не включение ни в какое групповое отношение.
Включение в групповое отношение – связывание существующей подчиненной записи с записью-владельцем.
Переключение – связывание существующей подчиненной записи с другой записью-владельцем в том же групповом отношении.
Обновление – изменение значения элементов предварительно извлеченной записи.
Извлечение – извлечение записи последовательно по значению ключа и при использовании групповых отношений:– от записи-владельца можно перейти к записям-членам, а от подчиненной записи – к владельцу.
Удаление – удаление записи из базы данных. Если запись – это владелец группового отношения, то происходит анализ класса членства подчиненных записей. Обязательные члены необходимо предварительно исключить из группового отношения, фиксированные – удалить вместе с владельцем, необязательные останутся в базе данных.
Исключение из группового отношения – разрыв связи между записью-владельцем и записью-членом.
Ограничения целостности
Подобно иерархической модели обеспечивается только поддержание целостности по ссылкам (владелец – член).