Моделирование взаимосвязей между сущностями

       

Проблемное представление


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

Определение

Проблемное представление сущности охватывает атрибуты сущности и атрибуты всех других сущностей, имеющих к ней непосредственное отношение.

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

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

    Рисунок G-1. Модель, состоящая из простых компонент

    Проблемное представление сущности КУПОН включает в себя:



    КУПОН (текущая сущность)

    класс

    статус

    индикатор подтверждения

    комментарии

    РЕЙС

    дата вылета

    время вылета

    АВИАМАРШРУТ

    номер рейса

    время отправления по расписанию

    АВИАЛИНИЯ

    код

    название

    АЭРОПОРТ (из)

    код

    название

    АЭРОПОРТ (в)

    код

    название

    БИЛЕТ

    дата выписки

    стоимость

    вид валюты (денежная единица)

    ЛИЧНОСТЬ

    фамилия

    титул

    первая буква имени

    Обратите внимание на то, что поскольку между АВИАМАРШРУТОМ и АЭРОПОРТОМ существуют две связи, описания связей используются в качестве уточнения.

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

    Проблемное представление сущности РЕЙС:

    РЕЙС

    дата вылета

    время вылета

    АВИАМАРШРУТ

    номер рейса

    время отправления по расписанию

    АВИАЛИНИЯ

    код

    название

    АЭРОПОРТ (из)

    код

    название

    АЭРОПОРТ (в)

    код

    название

    <
    Расширение представления

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

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

    Реальный пример построить сложно, поэтому воспользуемся следующей иллюстрацией:

    Рисунок G-2. Модель, состоящая из более сложных компонент



    Проблемное представление для каждого вхождения сущности A может быть либо таким:

    A

    a1, a2, a3

    (текущая сущность)

    C

    c1, c2, c3

    D

    d1, d2, d3

    (все необязательные)

    F

    f1, f2, f3

    либо таким:

    A

    a1,a2,a3

    C

    c1,c2,c3

    D

    d1,d2,d3

    (все необязательные)

    E

    e1,e2,e3

    E (компонента)

    e1,e2,e3...

    (все необязательные)

    Обратите внимание на то, что любое реальное вхождение сущности A может иметь атрибуты либо сущности E, либо сущности F, но не и те и другие одновременно, т.к. связи между сущностью A и сущностями E и F взаимно исключающие.

    Поименованные проблемные представления

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

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

    Рисунок G-3.



    Напомним еще раз проблемное представление сущности РЕЙС:

    РЕЙС

    дата вылета

    время вылета

    АВИАМАРШРУТ

    номер рейса

    время отправления по расписанию

    АВИАЛИНИЯ

    код

    название

    АЭРОПОРТ (из)

    код

    название

    АЭРОПОРТ (в)

    код

    название

    <


    Поскольку между АВИАМАРШРУТОМ и АЭРОПОРТОМ существуют две альтернативные связи, описания связей используются в качестве уточнения.

    Теперь мы можем создать проблемное представление с именем РЕГУЛЯРНЫЙ РЕЙС и со следующей структурой:

    Рисунок G-4.



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

    Легко заметить, что вместо "Названия авиалинии" используется просто "Авиалиния" - такое использование имени сущности или синонима в качестве наименования атрибута является общим и привычным.

    Термины "Место назначения" и "Исходный пункт" отражают назначение (роль) сущности АЭРОПОРТ, вытекающее из ее связей с сущностью АВИАМАРШРУТ.

    Теперь мы можем составить определения функций, работающих с сущностью РЕГУЛЯРНЫЙ РЕЙС.

    Пример 1

    Установить номер рейса и дату вылета по расписанию для всех регулярных рейсов, отправляющихся из аэропорта "Хитроу" в мае 1989 года в одно место назначения более одного раза в день.

    Пример 2

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

    Создать по требованию вхождение сущности РЕЙС на определенную дату для конкретного АВИАМАРШРУТА, идентифицируемого номером рейса из АЭРОПОРТА отправления с определенным названием в АЭРОПОРТ назначения с определенным названием и обслуживаемого АВИАЛИНИЕЙ с соответствующим кодом, где: название АЭРОПОРТА отправления не совпадает с названием АЭРОПОРТА назначения.

    С помощью проблемного представления РЕГУЛЯРНЫЙ РЕЙС это определение можно упростить:

    Создать по требованию вхождение сущности РЕГУЛЯРНЫЙ РЕЙС, используя известные значения даты отправления по расписанию, номера рейса, времени вылета, авиалинии, места назначения и исходного пункта, где место назначения не совпадает с исходным пунктом.

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

    Таким образом, определение функции может стать еще короче: Создать по требованию вхождение сущности РЕГУЛЯРНЫЙ РЕЙС, в котором место назначения не совпадает с исходным пунктом.

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


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