
- •2. Основные модели данных
- •2.1. Понятие модели данных
- •2.1.1. Типы структур данных
- •2.1.2. Операции над данными
- •2.1.3. Ограничения целостности
- •2.2. Сетевая модель данных (смд)
- •2.3. Иерархическая модель данных (имд)
- •2.4. Реляционная модель данных (рмд)
- •2.4.2. Свойства отношений
- •2.4.3. Достоинства и недостатки рмд
- •2.4.4. Операции реляционной алгебры
- •2.4.5. Преобразования операций реляционной алгебры
- •2.5. Другие модели данных
- •2.5.1. Объектно-реляционные модели данных
- •2.5.2. Объектно-ориентированные модели данных
2.2. Сетевая модель данных (смд)
Сетевая модель позволяет организовывать БД, структура которых представляется графом общего вида (пример СМД – на рис. 2.3). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. Каждая вершина графа хранит экземпляры сущностей (записи) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), соответствующих экземпляру сущности.
Групповые отношения характеризуют следующие признаки:
1. Способ упорядочения подчинённых записей.
Поддерживаются три способа упорядочения:
Очередь – добавление в конец списка (FIFO – first input, first output).
Стек – добавление в начало списка (LIFO – last input, first output).
Сортировка по значению ключа. В этом случае задаётся ключевое поле (поля), и вновь поступившая запись добавляется в упорядоченный список в соответствии со значением этого поля (значением ключа).
2. Режим включения подчинённых записей.
Режим включения бывает автоматический и ручной.
При автоматическом режиме подчиненная запись связана с записью-владельцем обязательной связью, поэтому она включается в групповое отношение и прикрепляется к записи-владельцу в момент внесения в БД. (Из этого следует, что запись-владелец должна быть внесена в БД до внесения первого экземпляра подчиненной записи.)
При ручном режиме включения подчиненная запись может находиться в БД и не быть прикрепленной к записи-владельцу. Она вручную включается в групповое отношение тогда, когда это отношение (связь) возникает.
3. Режим исключения подчинённых записей.
Режим исключения определяется классом членства. Различают три класса членства: фиксированный, обязательный и необязательный. Записи с фиксированным членством удаляются вместе с записью–владельцем. Записи с обязательным членством должны быть удалены до удаления записи–владельца: владелец, к которому прикреплена хотя бы одна запись с обязательным членством, не может быть удален. Записи с необязательным членством при удалении записи–владельца останутся в БД.
В СМД применяются следующие операции над данными:
запомнить: внесение информации в БД;
включить в групповое отношение: установление связей между данными;
переключить: переход члена набора к другому владельцу;
обновить: модификация данных;
извлечь: чтение данных;
удалить: физическое или логическое удаление данных;
исключить из группового отношения: разрыв связей между данными.
Связи между записями в СМД обычно выполнены в виде указателей (т.е. каждая запись хранит ссылки на другие однотипные записи и записи, связанные с ней групповыми отношениями). Подробнее об этом рассказано в разделе 5.5."Организация связей между хранимыми записями".
В сетевой модели данных предусмотрены специальные способы навигации и манипулирования данными. Аппарат навигации в графовых моделях служит для установления тех объектов данных, к которым будет применяться очередная операция манипулирования данными. Такие объекты называются текущими. В СМД возможны переходы:
от текущего экземпляра записи определённого типа к другим экземплярам записи этого же типа;
из текущей вершины в любую вершину, с которой текущая связана групповым отношением.
Наиболее распространенной и стандартизованной из реализаций СМД является модель CODASYL. В соответствии с ней описание схемы БД осуществляется на языке COBOL, а манипулирование данными – с помощью включающего языка программирования высокого уровня.