Классика баз данных - статьи

       

Сетевая модель



Рисунок 16. Связь DEPARTMENT-EMPLOYEE: (а) диаграмма структур данных ,(б) диаграмма сущность-связь


Рис. 17. Связь PROJECT-WORKER: (а) диаграмма структур данных, (б) диаграмма сущность-связь

4.2.1 Семантика диаграммы структур данных. Один из лучших способов объяснения сетевой модели состоит в использовании диаграммы структур данных (data-structure diagram) [3]. На рис. 16 показана диаграмма структур данных. Каждый прямоугольник представляет тип записи. Стрелка представляет набор структур данных, в котором запись DEPARTMENT является записью-владельцем

(owner-record), и одной записи-владельцу может соответствовать n (n = 0, 1, 2, ...) записей-членов (member-records). На рис. 16(б) приведена диаграмма сущность-связь. Можно было бы заключить, что стрелка на диаграмме структур данных показывает связь между сущностями в двух множествах сущностей. Это не всегда верно. На рис. 17(а) и 17(б) показана диаграмма структур данных и диаграмма сущность-связь, выражающие связь PROJECT-WORKER между двумя типами сущностей – EMPLOYEE и PROJECT. На рис. 17(а) мы можем видеть, что связь PROJECT-WORKER становится другим типом записи, и что стрелки больше не представяют связь между сущностями. Каков реальный смысл стрелок на диаграммах структур данных? Ответ состоит в том, что стрелка представляет связь 1:n между двумя типами записи (а не сущности), и из ее наличия также следует существование пути доступа из записи-владельца к записям-членам. Диаграмма структур данных – это представление организации записей (уровень 4 на рис. 1); оно не является точным представлением сущностей и связей.

4.2.2 Порождение диаграммы структур данных. При каких условиях стрелка в диаграмме структур данных соответствует связи сущностей? Тщательное сравнение диаграмм структур данных с соответствующими диаграммами сущность-связь

позволяет вывести следующие правила:

  • Для бинарных связей 1:n стрелка используется для представления связи (см. рис. 16(а)).
  • Для бинарных связей m:n для представления связи создается тип "запись связи", и рисуются стрелки из типа "запись сущности" к типу "запись связи" (см.
    рис. 16(а)).


  • Для k-арных связей (k≥3) применяется то же правило, что и в случае (2) (т.е. создание типа "запись связи").




  • Рис. 18. Набор-структур-данных, определенных на одном типе записи



    Рис. 19. Связь MARRIAGE: (а) диаграмма структур данных, (б) диаграмма сущность-связь

    Поскольку в DBTG [7] не разрешается определить набор структур данных на одном типе записи (т.е. не допустим рис. 18, хотя он реализован в [13]), для реализации таких связей необходима "запись связи" (см. рис. 19(а)) [20]. Соответствующая диаграмма сущность-связь показана на рис. 19(б).

    Теперь ясно, что стрелки на диаграмме структур данных не всегда представляют связи сущностей. Даже в том случае, когда стрелка представляет связь 1:n, она показывает только однонаправленную связь [20] (хотя имеется возможность найти запись-владельца по записи-члену). В модели сущность-связь

    представляются оба направления связи (специфицируются роли обеих сущностей). Помимо семантической неоднозначности стрелок, недостатком сетевой модели является неудобство обработки изменений семантики. Например, если связь между DEPARTMENT и EMPLOYEE из отображения 1:n превращается в отображение m:n (т.е. один служащий может принадлежать нескольким департаментам), в сетевой модели мы должны создать запись связи DEPARTMENT-EMPLOYEE. В модели сущность-связь все типы отображений обрабатываются единообразно.

    Модель сущность-связь можно применять как средство при структурном проектировании баз данных с использованием сетевой модели. Вначале пользователь рисует диаграмму сущность-связь (рис. 11). Он может просто перевести ее в диаграмму структур данных (рис. 20), используя указанные выше правила. Пользователь может также следовать дисциплине, в соответствии с которой каждая сущность или связь должны отображаться в запись (то есть, "записи связей" создаются для всех типов связей, независимо от того, являются они отображениями 1:n или m:n). Таким образом, все, что нужно сделать на рис. 11 – это заменить ромбы на прямоугольники и добавить концы стрелок к соответствующим линиям.При использовании такого подхода на рис. 20 появятся еще три прямоугольника – DEPARTMENT-EMPLOYEE, EMPLOYEE-DEPENDENT и PROJECT-MANAGER (см. рис. 21). Также будут полезны ограничения, рассмотренные в подразделах 3.3-3.5.



    Рис. 20. Диаграмма структур данных, выведенная из диаграммы сущность-связь с рис. 11



    Рис. 21. "Упорядоченная" диаграмма структур данных, выведенная из диаграммы сущность-связь с рис. 11


    Содержание раздела