Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Инфологическое проектирование



2.1. Модель «Сущность - Связь»

Как уже было сказано выше, основная цель инфологического проектирования – структуризация объектной системы предметной области и ее семантическое описание. Основным источником информации, используемой на этой стадии, являются внешние модели, содержащие основные требования к системе и перечень пользовательских запросов. Результатом проектирования на этой стадии является информационная модель, компонентами которой являются объекты («сущности»), их свойства («атрибуты») и связи между объектами.

Сущность – это некоторая абстракция реально существующего объекта предметной области. Различают тип сущности, описывающий множество однотипных объектов, и экземпляр сущности, описывающий конкретный объект определенного типа. Каждому типу сущности присваивается содержательное название (имя). Например, тип сущности с именем «НАСЕЛЕННЫЙ_ПУНКТ» описывает множество населенных пунктов. Этот тип сущности может включать такие экземпляры, как КУРГАН, КАТАЙСК, МИШКИНО, ГОРОХОВО и т.д. Каждый тип сущности характеризуется определенным множеством атрибутов. Для каждого экземпляра сущности определены конкретные значения (экземпляры) соответствующих атрибутов.

Атрибут – это поименованная характеристика (параметр) сущности. Различают описательные атрибуты, отображающие существенные свойства объектов, и ключевые атрибуты, необходимые для идентификации экземпляров сущности и реализации связей с другими сущностями.

Описательные атрибуты могут быть атомарными или составными, то есть имеющими определенную внутреннюю структуру. Для каждого атрибута должен быть задан домен, определяющий множество допустимых значений этого атрибута для всех экземпляров сущности. Например, для объекта НАСЕЛЕННЫЙ_ПУНКТ существенными могут являться его свойства, определенные следующими описательными атрибутами: (название, статус, расположение, население). Атрибут (расположение) является составным и представлен парой компонентов – географических координат (долгота; широта). Остальные атрибуты являются атомарными. При этом определены следующие домены значений атрибутов: (название) - {текст не более 24-х символов}, (население) - {целое положительное число}, (статус) - {город; село; поселок городского типа}.

Идентифицирующие атрибуты называют ключами. Различают первичные ключи, однозначно идентифицирующие конкретный экземпляр сущности, и вторичные ключи, предназначенные для идентификации некоторой группы экземпляров. В качестве ключа может использоваться один или несколько описательных атрибутов, однако в ряде случаев оказывается более эффективным введение «искусственных» ключевых атрибутов, не связанных ни с какими свойствами объекта. В рассматриваемом примере для сущности НАСЕЛЕННЫЙ_ПУНКТ в качестве первичного ключа может быть использована пара описательных атрибутов (название; расположение), однако целесообразнее ввести для этих целей дополнительный атрибут (код_населенного_пункта). Атрибут (статус) может быть использован в качестве вторичного ключа для идентификации множества населенных пунктов определенного административного типа, а атрибут (население) – в качестве вторичного ключа для группирования населенных пунктов по «величине».

Для каждого типа сущности первичный ключ должен быть определен в обязательном порядке. Состав вторичных ключей определяется составом информационных запросов, требующих реализации в процессе эксплуатации проектируемой системы.

Связь характеризует отношение между типами сущностей и отображает взаимосвязи между реальными объектами. Каждой связи присваивается содержательное имя. Существует понятие «арности» связи, определяющее количество участвующих в ней типов сущностей. Бинарные связи устанавливают отношение между парой сущностей, k-арные – между k сущностями. По аналогии с сущностями различают типы и экземпляры связей. Каждый экземпляр связи устанавливает определенное отношение между экземплярами сущностей.

Связи различаются также по количеству экземпляров сущностей, участвующих в одном экземпляре связи. Если каждому экземпляру одной сущности может соответствовать не более одного экземпляра другой сущности, говорят, что между этими сущностями установлена связь вида «один к одному» (1:1). Например, между сущностями НАСЕЛЕННЫЙ_ПУНКТ и РАЙОН существует связь «является центром», вида 1:1, что соответствует соотношению реальных объектов: каждый район может иметь всего один райцентр, и при этом центр одного района не может одновременно быть центром других районов.

Если каждому экземпляру первой сущности может соответствовать более, чем один экземпляр второй сущности, а каждому экземпляру второй сущности – не более одного экземпляра первой сущности, говорят, что между первой и второй сущностями установлена связь вида «один ко многим» (1:N), а между второй и первой сущностями – связь «многие к одному» (N:1). Например, между сущностями НАСЕЛЕННЫЙ_ПУНКТ и РАЙОН определена связь «входит в состав» вида N:1, а между сущностями РАЙОН и НАСЕЛЕННЫЙ_ПУНКТ – связь «имеет в составе» вида 1:N, что соответствует соотношению реальных объектов: район может иметь в своем составе несколько населенных пунктов, но населенный пункт не может принадлежать более, чем одному району.

Связь вида «многие ко многим» (M:N) соответствует ситуации, когда несколько экземпляров одной сущности могут быть связаны с несколькими экземплярами другой сущности. Например, между сущностями ЖИТЕЛЬ и ПРЕДПРИЯТИЕ определена связь «работает» вида M:N, что соответствует реальной ситуации: несколько жителей могут работать на нескольких предприятиях одновременно. Заметим, что наличие такой связи не противоречит ситуациям, когда отдельные «экземпляры» жителей не работают ни на каком предприятии (они могут быть безработными или работать в учреждениях).

Для реализации связей вида 1:1 и 1:N ключевой атрибут одной сущности включается в состав атрибутов другой сущности. Дополнительные атрибуты, используемые для реализации связей, называются внешними ключами.

Например, для установления связи вида 1:1 между сущностями НАСЕЛЕННЫЙ_ПУНКТ и РАЙОН возможны два варианта: путем включения в состав атрибутов сущности РАЙОН внешнего ключа (код_населенного_пункта) или путем включения в состав атрибутов сущности НАСЕЛЕННЫЙ_ПУНКТ внешнего ключа (код_района). Для связей вида 1:N (N:1) внешний ключ включается в состав атрибутов сущности, участвующей в связи со стороны «N» (что позволяет избежать излишнего дублирования информации при реализации).

Для реализации связи вида M:N создается допонительный ассоциативный объект, включающий два ключевых атрибута – по одному для каждой из сущностей, участвующей в связи. Число экземпляров такого объекта равно суммарному числу экземпляров сущностей, участвующих в связи.

Как элемент модели, связь может иметь свои собственные описательные атрибуты (а может и не иметь таковых, в отличие от сущности, которая должна иметь хотя бы один атрибут). Например, связь «является главой» между сущностями НАСЕЛЕННЫЙ_ПУНКТ и ЖИТЕЛЬ может иметь атрибуты (дата_избрания; срок), а связи между сущностями РАЙОН и НАСЕЛЕННЫЙ_ПУНКТ могут не иметь описательных атрибутов.

Для представления (документирования) модели «Сущность-Связь» используются графические диаграммы и табличные спецификации, информационно дополняющие друг друга.

Графическая диаграмма дает наглядное представление о структуре модели «Сущность-Связь». Основное назначение диаграммы – представление информации о составе объектов (типов сущностей) и видах связей, установленных между ними. Для отображения диаграммы принято использовать следующую графическую нотацию: типы сущностей изображаются прямоугольниками, а типы связей – ромбами, внутри которых указывается соответственно имя сущности или имя связи. Ромб размещается в разрыве линии, соединяющей типы сущностей, участвующих в связи. Вид связи отображается количеством стрелок на концах линий: одна стрелка – «один», две стрелки – «много». На рис.3 приведена диаграмма «Сущность-Связь» для рассмотренного выше примера. При этом предполагается, что модель описывает некоторую систему областного масштаба.

проживает

НАСЕЛЕННЫЙ ЖИТЕЛЬ

ПУНКТ

является

главой

является входит работает

центром в

является

главой

РАЙОН ПРЕДПРИЯТИЕ

граничит расположено

Рис. 3. Диаграмма «Сущность-Связь»

Диаграмма «Сущность-Связь» является удобным инструментом для анализа объектной структуры предметной области, анализа возможности реализации пользовательских запросов и определения состава атрибутов сущностей, необходимых для реализации связей. По результатам анализа приведенной выше диаграммы могут быть сделаны следующие выводы:

1. Между сущностями ЖИТЕЛЬ и ПРЕДПРИЯТИЕ установлена связь вида M:N, что потребует введения в структуру модели дополнительного ассоциативного объекта, атрибутами которого будут являться первичные ключи этих сущностей.

2. Связь такого же вида установлена между различными экземплярами одной сущности РАЙОН. Для реализации такой связи должен быть создан ассоциативный объект, каждый экземпляр которого описывается парой ключей КОД_РАЙОНА для двух экземпляров сущности РАЙОН, имеющих общую границу. Атрибутом этой связи является (протяженность_общей_границы).

3. Между сущностями НАСЕЛЕННЫЙ_ПУНКТ и РАЙОН установлены два типа связей: связь «входит в состав» вида N:1 и связь «является центром» вида 1:1. Для реализации первой связи потребуется включить в состав атрибутов сущности НАСЕЛЕННЫЙ_ПУНКТ внешний ключ (код_района), то есть для каждого «экземпляра населенного пункта» будет указан код соответствующего «экземпляра района». Для реализации второй связи в состав атрибутов сущности РАЙОН можно включить внешний ключ (код_населенного_пункта), что даст возможность связать каждый «экземпляр района» с тем «экземпляром населенного пункта», который является центром этого района.

4. Аналогичная ситуация возникает и при реализации связей ЖИТЕЛЬ Û НАСЕЛЕННЫЙ_ПУНКТ, однако здесь имеется ряд особенностей, которые могут влиять на структуру информационной модели. Первая особенность заключается в наличии у связи «является главой» своих собственных атрибутов (дата_избрания; срок), что потребует включения этих атрибутов вместе с внешним ключем (код_жителя) в состав атрибутов сущности НАСЕЛЕННЫЙ_ ПУНКТ.

5. Вторая особенность связи между сущностями ЖИТЕЛЬ и НАСЕЛЕННЫЙ_ПУНКТ проявляется в случае, если требуется вести хронологический учет (хранить «историю» глав населенных пунктов), то есть не замещать, а дополнять соответствующую информацию при избрании нового главы. Если рассмотренный случай является актуальным, то связь «является главой», указанная на диаграмме, как связь вида 1:1, должна быть заменена на связь вида N:1. Если же необходимо предусматривать ситуацию, когда в разные моменты времени один и тот же житель может занимать должности глав различных населенных пунктов, то эта связь должна быть заменена на связь вида M:N. В этом случае целесообразно ввести в структуру модели дополнительный ассоциативный объект ГЛАВА_НАСЕЛЕННЫЙ_ПУНКТА с атрибутами (Код_населенного_ пункта; Код_жителя; Дата_избрания; Срок). Однако, при этом следует иметь в виду возможность нарушения целостности БД в случае, когда «бывший» глава населенного пункта перестает быть жителем области, и соответствующий экземпляр сущности ЖИТЕЛЬ будет удален из базы данных.

6. Для реализации связи вида 1:1 «является главой» между сущностями ЖИТЕЛЬ и РАЙОН в состав атрибутов сущности РАЙОН следует включить внешний ключ (Код_жителя), а не наоборот, так как количество районов всегда меньше, чем количество жителей. При проведении анализа этой связи может выясниться, что для нее актуально все то, что было сказано выше относительно связи ЖИТЕЛЬ и НАСЕЛЕННЫЙ_ПУНКТ (п.4 и п.5). В этом случае следует произвести необходимые корректировки модели.

7. Аналогичная ситуация возникает при необходимости ведения хронологического учета проживания жителей в населенных пунктах.

На рис.4 приведена уточненная диаграмма «Сущность-Связь», скорректированная по результатам проведенного анализа.

проживает

НАСЕЛЕННЫЙ ЖИТЕЛЬ

ПУНКТ

является

главой

является входит работает

центром в

является

главой

РАЙОН ПРЕДПРИЯТИЕ

граничит расположено

Рис. 4. Уточненная диаграмма «Сущность-Связь»

Спецификация модели представляет собой множество поименованных таблиц, каждая из которых описывает тип сущности или тип связи. Каждая строка таблицы описывает один атрибут и содержит его имя, содержательное описание, описание типа данных и домена допустимых значений. Среди атрибутов выделяются первичные и вторичные ключи. При необходимости таблица сопровождается поясняющими комментариями.

Ниже (таблицы 1-9) рассмотрен пример оформления спецификации модели «Сущность-Связь», соответствующей диаграмме, приведенной на рис.4. Символом (*) отмечены первичные ключи, символом (+) - вторичные ключи, а символом («) - внешние ключи, введенные в состав атрибутов сущностей, участвующих в связях вида 1:N со стороны «N». Для ассоциативных объектов, описывающих связи вида M:N между сущностями, первичный ключ образуется парой (или более) внешних ключей – первичных ключей связанных сущностей.

Таблица 1

Тип сущности «НАСЕЛЕННЫЙ_ПУНКТ»

Имя атрибута Описание Тип Домен значений
*Код_НП Условный код Число 0 – 10000
Название Название НП Текст Не более 24-х симв.
+Статус Адм. Статус Число 1-гор; 2–село, 3- пгт
Долгота Коорд., град. Число +/- (0 - 180)
Широта Коорд., град. Число +/- (0 - 90)
«Код__района Код района, в который входит насел. пункт

Примечание: Атрибут Население исключен из состава атрибутов этой сущности, так как число жителей любого экземпляра населенного пункта может быть определено расчетным путем с использованием связи «проживает».

Таблица 2

Тип сущности «РАЙОН»

Имя атрибута Описание Тип Домен значений
*Код_района Условный код Число 0 – 10000
Название Назв. района Текст Не более 24-х симв.
Площадь кв. км Число  
«Код__НП Код насел. пункта, являющегося центром района

Таблица 3

Тип сущности «ЖИТЕЛЬ»

Имя атрибута Описание Тип Домен значений
*Код_жителя Условный код Число 0 – 10000000
Ф.И.О.   Текст Не более 64-х симв.
Дата рождения   Дата  

Таблица 4

Тип сущности «ПРЕДПРИЯТИЕ»

Имя атрибута Описание Тип Домен значений
*Код_предпр-тия Условный код Число 0 – 100000
Название Назв. предпр. Текст Не более 64-х симв.
+Тип предпр-тия   Число 1–гос;2–м.; 3- частн.
«Код__НП Код насел. пункта, в кот. расп. предприятие

Таблица 5

Ассоциативный объект «РАБОТА»

Имя атрибута Описание Тип Домен значений
*Код_жителя Код жителя, работающего на предприятии
*Код_предпр-тия Код предприятия, на котором работает житель
Дата приема   Дата  
Дата увольнения   Дата  

Таблица 6

Ассоциативный объект «РЕГИСТРАЦИЯ»

Имя атрибута Описание Тип Домен значений
*Код_жителя Проживающего в населенном пункте
*Код_НП Код НП, в котором зарегистрирован житель
Дата регистрации   Дата  
Дата выписки   Дата  

Таблица 7

Ассоциативный объект «ГЛАВА_НАСЕЛЕННОГО_ПУНКТА»

Имя атрибута Описание Тип Домен значений
*Код_жителя Код жителя - главы населенного пункта
*Код_НП Код НП, в котором житель является главой
Дата избрания   Дата  
Срок избрания   Число  

Таблица 8

Ассоциативный объект «ГЛАВА_РАЙОНА»

Имя атрибута Описание Тип Домен значений
*Код_жителя Код жителя, являющегося главой района
*Код_района Код района, в котором житель является главой
Дата избрания   Дата  
Срок избрания   Число  

Таблица 9

Ассоциативный объект «ГРАНИЦЫ_РАЙОНОВ»





Дата публикования: 2014-12-25; Прочитано: 535 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...