2.2. Сетевая модель данных (смд)
Сетевая модель позволяет организовывать БД, структура которых представляется графом общего вида (пример СМД – на рис. 2.4). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. Каждая вершина графа хранит экземпляры сущностей (записи одного типа) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), характеризующих экземпляр сущности. Для каждого типа записи выделяется первичный ключ – атрибут, значение которого позволяет однозначно идентифицировать запись среди экземпляров записей данного типа.
Связи между записями в СМД выполняются в виде указателей, т.е. каждая запись хранит ссылку на другую однотипную запись (или признак конца списка) и ссылки на списки подчинённых записей, связанных с ней групповыми отношениями. Таким образом, в каждой вершине записи хранятся в виде связного списка. Если список организован как однонаправленный, запись имеет ссылку на следующую однотипную запись в списке; если список двунаправленный – то на следующую и предыдущую однотипные записи.
Групповые отношения характеризуются следующими признаками:
- Способ упорядочения подчинённых записей
Поддерживаются три способа упорядочения:
- Очередь – добавление в конец списка (FIFO – first input, first output).
- Очередь – добавление в конец списка (FIFO – first input, first output).
- Сортировка по значению ключа. При этом задаётся ключев Очередь – добавление в конец списка (FIFO – first input, first output).
- ое поле (группа полей), и вновь поступившая запись добавляется в упорядоченный список в соответствии со значением этого поля (значением ключа).
- Режим исключения подчинённых записей
Режим исключения определяется классом членства. Различают три класса членства – фиксированный, обязательный и необязательный:/p>
- Записи с обязательным членством должны быть удалены до удаления записи–владельца: владелец, к которому прикреплена хотя бы одна запись с обязательным членством, не может быть удалён.
- Записи с фиксированным членством удаляются вместе с записью–владельцем.
- Записи с необязательным членством при удалении записи–владельца останутся в БД.
Рассмотрим фрагмент БД «Предприятие» (рис. 2.5). Здесь записи типов ОТДЕЛЫ иОРГАНИЗАЦИИ-ЗАКАЗЧИКИ являются владельцами записей типа ПРОЕКТЫ и они связаны групповыми отношениями соответственно выполняют и заказывают. Записи типовОТДЕЛЫ и ПРОЕКТЫ являются владельцами записей типа СОТРУДНИКИ и они связаны групповыми отношениями работают и выполняются. Записи типа СОТРУДНИКИ являются владельцами записей типа ДЕТИ. Рис. 2.5. Пример фрагмента сетевой БД «Предприятие» Групповые отношения чаще всего описывают связь «один-ко-многим»: один владелец, много подчинённых. Например, отношение работают подразумевает, что каждый сотрудник работает в одном отделе, но в каждом отделе могут работать несколько сотрудников. С другой стороны, групповое отношение выполняются отражает связь «многие-ко-многим»: каждый сотрудник может участвовать в выполнении нескольких проектов, каждый проект могут выполнять несколько человек. Что касается классов членства подчинённых записей, то связь «сотрудники–дети» относится к фиксированному классу членства, связь «сотрудники–проекты» – к необязательному, а все остальные – к обязательному классу членства. Режим включения для связи «сотрудники–проекты» ручной, для всех остальных – автоматический. В СМД связи 1:n между разными сущностями реализуются с помощью групповых отношений, а связи 1:n между атрибутами сущности – в рамках записи. Для реализации связей типа n:m вводится вспомогательный тип записи и две связи 1:n. В СМД применяются следующие операции над данными:
- запомнить: внесение информации в БД;
- включить в групповое отношение: установление связей между данными;
- переключить: переход члена набора к другому владельцу;
- обновить: модификация данных;
- извлечь: чтение данных;
- удалить: физическое или логическое удаление данных;
- исключить из группового отношения: разрыв связей между данными.
В сетевой модели данных предусмотрены специальные способы навига-ции и манипулирования данными. Аппарат навигации в графовых моделях служит для установления тех записей, к которым будет применяться очередная операция манипулирования данными. Такие записи называются текущими. В СМД возможны переходы:
- от текущего экземпляра записи определённого типа к следующему экземп-ляру записи этого же типа;
- из текущей вершины в любую вершину, с которой текущая связана групповым отношением.
Навигация в СМД может начинаться с любой записи. Наиболее распространенной и стандартизованной из реализаций СМД является модель CODASYL. В соответствии с ней описание схемы БД осуществляется на языке COBOL, а манипулирование данными – с помощью включающего языка программирования высокого уровня. Примером се-тевой СУБД является система Integrated Database Management System (IDMS). СМД является наиболее полной с точки зрения реализации различных типов связей и ограничений целостности, но она является достаточно сложной для проектирования и поддержки. В этой модели не обеспечивается физическая независимость данных, т.к. наборы организованы с помощью физических ссылок. Также в СМД не обеспечивается независимость данных от программ. Из-за этих недостатков эта модель не получила широкого распространения.
9. Сетевая модель данных (смд)
Сетевая модель позволяет организовывать БД, структура которых представляется графом общего вида (пример СМД – на рис. 2.3). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. Каждая вершина графа хранит экземпляры сущностей (записи) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), соответствующих экземпляру сущности.
Групповые отношения характеризуют следующие признаки:
1. Способ упорядочения подчинённых записей.
Поддерживаются три способа упорядочения:
- Очередь – добавление в конец списка (FIFO – first input, first output).
- Стек – добавление в начало списка (LIFO – last input, first output).
- Сортировка по значению ключа. В этом случае задаётся ключевое поле (поля), и вновь поступившая запись добавляется в упорядоченный список в соответствии со значением этого поля (значением ключа).
2. Режим включения подчинённых записей.
Режим включения бывает автоматический и ручной.
При автоматическом режиме подчиненная запись связана с записью-владельцем обязательной связью, поэтому она включается в групповое отношение и прикрепляется к записи-владельцу в момент внесения в БД. (Из этого следует, что запись-владелец должна быть внесена в БД до внесения первого экземпляра подчиненной записи.)
При ручном режиме включения подчиненная запись может находиться в БД и не быть прикрепленной к записи-владельцу. Она вручную включается в групповое отношение тогда, когда это отношение (связь) возникает.
3. Режим исключения подчинённых записей.
Режим исключения определяется классом членства. Различают три класса членства: фиксированный, обязательный и необязательный. Записи с фиксированным членством удаляются вместе с записью–владельцем. Записи с обязательным членством должны быть удалены до удаления записи–владельца: владелец, к которому прикреплена хотя бы одна запись с обязательным членством, не может быть удален. Записи с необязательным членством при удалении записи–владельца останутся в БД.
В СМД применяются следующие операции над данными:
- запомнить: внесение информации в БД;
- включить в групповое отношение: установление связей между данными;
- переключить: переход члена набора к другому владельцу;
- обновить: модификация данных;
- извлечь: чтение данных;
- удалить: физическое или логическое удаление данных;
- исключить из группового отношения: разрыв связей между данными.
Связи между записями в СМД обычно выполнены в виде указателей (т.е. каждая запись хранит ссылки на другие однотипные записи и записи, связанные с ней групповыми отношениями). Подробнее об этом рассказано в разделе 5.5.»Организация связей между хранимыми записями».
В сетевой модели данных предусмотрены специальные способы навигации и манипулирования данными. Аппарат навигации в графовых моделях служит для установления тех объектов данных, к которым будет применяться очередная операция манипулирования данными. Такие объекты называются текущими. В СМД возможны переходы:
- от текущего экземпляра записи определённого типа к другим экземплярам записи этого же типа;
- из текущей вершины в любую вершину, с которой текущая связана групповым отношением.
Наиболее распространенной и стандартизованной из реализаций СМД является модель CODASYL. В соответствии с ней описание схемы БД осуществляется на языке COBOL, а манипулирование данными – с помощью включающего языка программирования высокого уровня.
2.2. Сетевая модель данных (смд)
Сетевая модель позволяет организовывать БД, структура которых представляется графом общего вида (пример СМД – на рис. 2.3). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. Каждая вершина графа хранит экземпляры сущностей (записи) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), соответствующих экземпляру сущности.
Групповые отношения характеризуют следующие признаки:
1. Способ упорядочения подчинённых записей.
Поддерживаются три способа упорядочения:
- Очередь – добавление в конец списка (FIFO – first input, first output).
- Стек – добавление в начало списка (LIFO – last input, first output).
- Сортировка по значению ключа. В этом случае задаётся ключевое поле (поля), и вновь поступившая запись добавляется в упорядоченный список в соответствии со значением этого поля (значением ключа).
- запомнить: внесение информации в БД;
- включить в групповое отношение: установление связей между данными;
- переключить: переход члена набора к другому владельцу;
- обновить: модификация данных;
- извлечь: чтение данных;
- удалить: физическое или логическое удаление данных;
- исключить из группового отношения: разрыв связей между данными.
- от текущего экземпляра записи определённого типа к другим экземплярам записи этого же типа;
- из текущей вершины в любую вершину, с которой текущая связана групповым отношением.
2.2. Сетевая модель данных (смд)
Сетевая модель позволяет организовывать БД, структура которых представляется графом общего вида (пример СМД – на рис. 2.3). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. Каждая вершина графа хранит экземпляры сущностей (записи) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), соответствующих экземпляру сущности.
Групповые отношения характеризуют следующие признаки:
1. Способ упорядочения подчинённых записей.
Поддерживаются три способа упорядочения:
- Очередь – добавление в конец списка (FIFO – first input, first output).
- Стек – добавление в начало списка (LIFO – last input, first output).
- Сортировка по значению ключа. В этом случае задаётся ключевое поле (поля), и вновь поступившая запись добавляется в упорядоченный список в соответствии со значением этого поля (значением ключа).
- запомнить: внесение информации в БД;
- включить в групповое отношение: установление связей между данными;
- переключить: переход члена набора к другому владельцу;
- обновить: модификация данных;
- извлечь: чтение данных;
- удалить: физическое или логическое удаление данных;
- исключить из группового отношения: разрыв связей между данными.
- от текущего экземпляра записи определённого типа к другим экземплярам записи этого же типа;
- из текущей вершины в любую вершину, с которой текущая связана групповым отношением.