Основы проектирования реляционных баз данных. Учебное пособие

       

Характеристика связей и язык моделирования


При построении инфологических моделей можно использовать язык ER-диаграмм (от англ. Entity-Relationship, т.е. сущность-связь). В них сущности изображаются помеченными прямоугольниками, ассоциации – помеченными ромбами или шестиугольниками, атрибуты – помеченными овалами, а связи между ними – ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово "много") и необходимое пояснение.

Между двумя сущностям, например, А и В возможны четыре вида связей.

Первый тип – связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В:

Студент может не "заработать" стипендию, получить обычную или одну из повышенных стипендий.

Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.

Квартира может пустовать, в ней может жить один или несколько жильцов.

Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N).

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

Характер связей между сущностями не ограничивается перечисленными. Существуют и более сложные связи:

  • множество связей между одними и теми же сущностями

    (пациент, имея одного лечащего врача, может иметь также несколько врачей-консультантов; врач может быть лечащим врачом нескольких пациентов и может одновременно консультировать несколько других пациентов);

  • тренарные связи

    (врач может назначить несколько пациентов на несколько анализов, анализ может быть назначен несколькими врачами нескольким пациентам и пациент может быть назначен на несколько анализов несколькими врачами);



  • связи более высоких порядков, семантика (смысл) которых иногда очень сложна.

    В приведенных примерах для повышения иллюстративности рассматриваемых связей не показаны атрибуты сущностей и ассоциаций во всех ER-диаграммах.
    Так, ввод лишь нескольких основных атрибутов в описание брачных связей значительно усложнит ER-диаграмму (рис. 2.1,а). В связи с этим язык ER-диаграмм используется для построении небольших моделей и иллюстрации отдельных фрагментов больших. Чаще же применяется менее наглядный, но более содержательный язык инфологического моделирования (ЯИМ), в котором сущности и ассоциации представляются предложениями вида:

    СУЩНОСТЬ (атрибут 1, атрибут 2 , ..., атрибут n) АССОЦИАЦИЯ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...] (атрибут 1, атрибут 2, ..., атрибут n)

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

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

    Врач (Номер_врача, Фамилия, Имя, Отчество, Специальность) Пациент (Регистрационный_номер, Номер койки, Фамилия, Имя, Отчество, Адрес, Дата рождения, Пол) Лечащий_врач [Врач 1, Пациент M] (Номер_врача, Регистрационный_номер) Консультант [Врач M,Пациент N] (Номер_врача, Регистрационный_номер).

    Рис. 2.1. Примеры ER-диаграмм

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

    Пример 2.2. Отдел записей актов гражданского состояния (ЗАГС) имеет дело не со всеми людьми, а только с теми, кто обратился с просьбой о регистрации брака, рождения или смерти. Поэтому в странах, где допускаются лишь традиционные браки, отделы ЗАГС могут размещать сведения о регистрируемых браках в единственной сущности:

    Брак (Номер_свидетельства, Фамилия_мужа, Имя_мужа, Отчество_мужа, Дата_рождения_мужа, Фамилия_жены, ... , Дата_регистрации, Место_регистрации, ...),

    ER-диаграмма которой приведена на рис. 2.1,б.

    Пример 2.3. Теперь рассмотрим ситуацию, когда отдел ЗАГС расположен в стране, допускающей многоженство.


    Если для регистрации браков использовать сущность "Брак" примера 2.2, то будут дублироваться сведения о мужьях, имеющих несколько жен (см. табл. 2.1).

    Таблица 2.1

    Номер свидетельстваФамилия мужа...Фамилия жены...Дата регистрации
    1-ЮБ 154745Петухов...Курочкина...06/03/1991
    1-ЮБ 163489Петухов...Пеструшкина...11/08/1991
    1-ЮБ 169887Петухов...Рябова...12/12/1992
    1-ЮБ 169878Селезнев...Уточкина...12/12/1992
    1-ЮБ 154746Парасюк...Свинюшкина...06/03/1991
    1-ЮБ 169879Парасюк...Хаврония...12/12/1992
    ..................
    Дублирование можно исключить созданием дополнительной сущности "Мужья"

    Мужья (Код_М, Фамилия, Имя, Отчество, Дата рождения, Место рождения)

    и заменой сущности "Брак" характеристикой (см. п. 2.3) со ссылкой на соответствующее описание в сущности "Мужья".

    Брак (Номер свидетельства, Код_М, Фамилия жены, ..., Дата регистрации, ...){Мужья}.

    ER-диаграмма связи этих сущностей показана на рис. 2.1,в, а пример их экземпляров в табл. 2.2 и 2.3.

    Таблица 2.2

    Код_МФамилияИмяОтчествоГод/р.Место рожд.
    111ПетуховАльфредОстапович1971г. Цапелька
    112СелезневВавилаАбрамович1973г. Гусев
    113ПарасюкГорацийФедулович1972г. Свиньин
    ..................
    Таблица 2.3

    Номер свидетельстваКод_МФамилия женыИмя женыДата регистрации...
    1-ЮБ 154745111КурочкинаАвгустина06/03/1991...
    1-ЮБ 163489111ПеструшкинаМариана11/08/1991...
    1-ЮБ 169877111РябоваМилана12/12/1992...
    1-ЮБ 169878112УточкинаВероника12/12/1992...
    1-ЮБ 154746113СвинюшкинаЭльвира06/03/1991...
    1_ЮБ 169879113ХавронияРуфина12/12/1992...
    ..................
    Пример 2.4. Наконец, рассмотрим случай, когда какой-либо организации потребовались данные о наличии в ней семейных пар, а для хранения сведений о сотрудниках уже имеется сущность

    Сотрудники (Табельный_номер, Фамилия, Имя, ...).

    Использование, рассмотренной в примере 2.2, сущности "Брак" нецелесообразно: в "Сотрудники" уже есть фамилии, имена, отчества супругов.Поэтому создадим ассоциацию

    Брак [Сотрудник 1, Сотрудник 1] (Табельный_номер_мужа, Табельный_номер_жены, ...),

    связывающую между собой определенные экземпляры сущности "Сотрудники" (рис. 2.1,г).

    В заключение отметим, что ER-диаграмма рис. 2.1,а описывает структуру размещения данных о браках в отделах ЗАГС стран, допускающих групповые браки, а ER-диаграммы примера 2.1, описания любых видов браков в организациях, где есть сущности "мужчины" и "женщины", включающие холостых и незамужних.

    Что же такое "связь"? В ER-диаграммах это линия, соединяющая геометрические фигуры, изображающие сущности, атрибуты, ассоциации и другие информационные объекты. В тексте же этот термин используется для указания на взаимозависимость сущностей. Если эта взаимозависимость имеет атрибуты, то она называется ассоциацией.

    [] [] []


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