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