Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информационное обеспечение(лекции)

.pdf
Скачиваний:
77
Добавлен:
27.03.2016
Размер:
2.19 Mб
Скачать

Пример 2.1. Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существует четыре возможных представления такой связи (рисунок 2.8).

Рисунок 2.4 - Примеры связей: а) – бинарной; б) – тернарной; в) – кватернарной; г) – унарной (рекурсивной)

51

Рисунок 2.5 - Связь ОДИН-К-ОДНОМУ

Рисунок 2.6 - Связь ОДИН-КО-МНОГИМ

Рисунок 2.7 - Связь МНОГИЕ-КО-МНОГИМ

52

Рисунок 2.8 - Пример связи БРАК между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ

Характер связей между сущностями может оказаться более сложным (рисунок 2.9).

Рисунок 2.9 - Пример множества связей между сущностями ПРЕПОДАВАТЕЛЬ и СТУДЕНТ

В приведенных примерах для повышения иллюстративности рассматриваемых связей не показаны атрибуты сущностей и ассоциаций во всех ER-диаграмах. Так, ввод лишь нескольких основных атрибутов в описание значительно усложняет ER-диаграмму.

53

В связи с этим язык ER-диаграмм используется для построения небольших моделей и иллюстрации отдельных фрагментов больших.

Для представления полных инфологических моделей предметной области применяется менее наглядный, но более содержательный язык инфологического моделирования (ЯИМ), в котором сущности и ассоциации представляются предложениями вида:

СУЩНОСТЬ (атрибут 1, атрибут 2, ... , атрибут n) Связь [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ... ] (атрибут 1, атрибут 2, ..., атрибут n),

где S - степень связи, а атрибуты, входящие в ключ, должны быть отмечены с помощью подчеркивания.

Так, рассмотренный выше пример множества связей между сущностями, может быть описан на ЯИМ следующим образом:

ПРЕПОДАВАТЕЛЬ (УслНомерП, Фамилия, Имя, Отчество, УчСтепень)

СТУДЕНТ (УслНомерС, Фамилия, Имя, Отчество, Адрес, Специальность, Пол)

Лектор [ПРЕПОДАВАТЕЛЬ 1, СТУДЕНТ М] (УслНомерП, УслНомерС)

Консультант [ПРЕПОДАВАТЕЛЬ М, СТУДЕНТ Р] (УслНомерП, УслНомерС).

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

Но это непростая задача, так как в разных предметных областях один и тот же объект может быть сущностью, атрибутом или связью.

2.3.2 Классификация сущностей, расширение ER-модели

Один из активных разработчиков реляционной модели К. Дейт выделил три основные класса сущностей: стержневые, ассоциативные и характеристические, а также подкласс ассоциативных сущностей –

обозначения.

Стержневая сущность (стержень) – это независимая сущность.

В рассмотренных ранее примерах стержни – это - СТУДЕНТ, КВАРТИРА, МУЖЧИНА, ПРЕПОДАВАТЕЛЬ, и другие, названия которых помещены в прямоугольники.

Ассоциативная сущность (ассоциация) - это связь вида МНОГИЕ-КО-

МНОГИМ между двумя или более сущностями или экземплярами сущности. Ассоциации рассматриваются как полноправные сущности:

– могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности;

54

– могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь.

Характеристическая сущность (характеристика) - это связь вида МНОГИЕ-К-ОДНОМУ или ОДИН-К-ОДНОМУ между двумя сущностями (частный случай ассоциации).

Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности.

Необходимость в них возникает в связи с тем, что сущности реального мира имеют иногда многозначные свойства. Муж может иметь несколько жен (пример 2.1), книга – несколько характеристик переиздания (исправленное, дополненное, переработанное, ...) и т.д.

Существование характеристики полностью зависит от характеризуемой сущности: женщин лишают статуса жен, если умирает их муж.

Для описания характеристики используется новое предложение ЯИМ, имеющее в общем случае вид:

(ХАРАКТЕРИСТИКА(атрибут1,атрибут2,. . . ) {СПИСОК ХАРАКТЕРИЗУЕМЫХ СУЩНОСТЕЙ}.

Часто используют расширенный язык ER-диаграмм (Enhanced ERдиаграммы), в котором для изображения характеристики используют трапецию

(рисунок 2.10).

Рисунок 2.10 - Элементы расширенного языка ER-диаграмм

Обозначающая сущность или обозначение - это связь вида МНОГИЕ-К-

ОДНОМУ или ОДИН-К-ОДНОМУ между двумя сущностями и отличается от характеристики тем, что не зависит от обозначаемой сущности.

55

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

Описание обозначения внешне отличается от описания характеристики только тем, что обозначаемые сущности заключается не в фигурные скобки, а в квадратике:

ОБОЗНАЧЕНИЕ (атрибут 1, атрибут 2,) [СПИСОК ОБОЗНАЧАЕМЫХ СУЩНОСТЕЙ]

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

Все экземпляры характеристики должны быть обязательно связаны с каким-либо экземпляром характеризуемой сущности. Однако допускается, чтобы некоторые экземпляры характеризуемой сущности не имели связей. Правда, если это касается браков, то сущность «Мужья» должна быть заменена сущностью «Мужчины» (нет мужа без жены).

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

2.3.3 Проблемы ER-моделирования

В процессе создания инфологической модели на языке ER-диаграмм, могут возникать нежелательные ситуации, которые в литературе называются

ловушками соединения.

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

Наиболее распространенными являются два вида ловушек соединения:

ловушки разветвления;

ловушки разрыва.

Ловушка разветвления имеет место в том случае, если модель отображает связь между сущностями, но путь между отдельными экземплярами этих сущностей однозначно не определяется.

Ловушка разветвления возникает в случае, когда две или больше связей ОДИН-КО-МНОГИМ разветвляются из одной сущности.

56

Потенциальная ловушка разветвления показана на рисунке 2.11, где две связи типа 1:М выходят из одной и той же сущности ФАКУЛЬТЕТ.

Рисунок 2.11 - Пример ловушки разветвления

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

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

Для обнаружения этой проблемы удобно пользоваться семантическими сетями – ( рисунок 2.12).

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

Эта неприятность произошла из-за неправильной трактовки связей между сущностями ФАКУЛЬТЕТ, СПЕЦИАЛЬНОСТЬ, СТУДЕНТ. Устранить такой дефект можно только путем перестройки исходной модели.

Результат адекватного преобразования модели представлен на рисунке

2.13.

В таком варианте легко определяется, что студент Гаврюхов учится на экономическом факультете по специальности «Налоговая работа и аудиторский контроль».

Если проверить полученную структуру на уровне отдельных экземпляров сущностей (как показано на рисунке 2.14), можно убедиться, что

57

по преобразованной модели легко дать однозначный ответ на поставленный выше вопрос.

Ловушка разрыва появляется в том случае, если в модели предполагается наличие связи между сущностями, но не существует пути между отдельными экземплярами этих сущностей.

Ловушка разрыва возникает при наличии связи, образующей часть пути между связанными сущностями.

На рисунке 2.15 потенциальная ловушка разрыва показана на примере связей между сущностями ОБЩЕЖИТИЕ, СТУДЕНТ и КОМНАТА.

Рисунок 2.12 - Семантическая сеть ER-модели с ловушкой разветвления

С помощью семантической сети ER-модели с рисунке 2.15 (представлена на рисунке 2.16), невозможно дать ответ на вопрос: «В каком общежитии находится комната под условным номером 703?».

58

Рисунок 2.13 - Преобразованная ER-модель

Это причина проявления ловушки разрыва, возникающей из-за неправильной интерпретации связей между сущностями ОБЩЕЖИТИЕ, СТУДЕНТ и КОМНАТА.

Рисунок 2.14 - Семантическая сеть преобразованной ER-модели

59

Рисунок 2.15 - Пример ловушки-разрыва

Рисунок 2.16 - Преобразованная ER-модель

Устранить эту проблему можно только путем перестройки ER-модели для представления правильного взаимоотношения между этими сущностями. Преобразованная ЕR-модель показана на рисунке 2.17. В модель добавлена связь Размещение между сущностями ОБЩЕЖИТИЕ и КОМНАТА.

Если исследовать новую структуру на уровне отдельных сущностей (как показано на рисунке 2.18), то можно дать ответ на поставленный вопрос: «Комната с условным номером 703 находится в общежитии №1».

60