Лекция 17. Программные средства реализации фактографических информационных систем

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

ERwin - инструмент моделирования данных для разработки базы данных, который поддерживает методологии IDEF1X и IE . Вы можете совместно использовать BPwin и ERwin как для моделирования процесса, так и для моделирования данных и Вы можете обмениваться объектами и названиями атрибута между двумя программами. Эта возможность особенно полезна для пользователей, кто разрабатывает модель бизнес процесса и модель базы данных одновременно. Любые изменения, которые Вы проводите в объекте и названии атрибута в любой модели, могут быть внесены в другую модель. Вы можете также создать двухсторонние линии связи между моделью BPwin и связанной с ней моделью ERwin, что выполняется, автоматически каждый раз, когда Вы открываете одну из связанных диаграмм. Это проводится для синхронизации моделей.

ERwin - CASE-средство проектирования баз данных фирмы Platinum. ERwin сочетает графический интерфейс Windows, инструменты для пост­роения ER-диаграмм, редакторы для создания логического и физического описания модели данных и прозрачную поддержку ведущих реляционных СУБД. Для удобства изложения материала здесь и далее использована ори­гинальная терминология, принятая в ERwin.

ERwin не привязан к технологии какой-либо конкретной фирмы, по­ставляющей СУБД или средства разработки. Он поддерживает различные серверы баз данных и настольные СУБД, а также может обращаться к базе данных через интерфейс ODBC.

ERwin можно использовать совместно с некоторыми популяр­ными средствами разработки клиентских частей приложений: Power­Builder, Visual Basic, Delphi. Кроме того, ERwin поддерживает рабо­ту в среде групповой разработки ModelMart, являющейся продуктом той же Platinum.

Процесс моделирования в ERwin базируется на методологии проекти­рования реляционных баз данных IDEF1X. Данная методология была раз­работана для ВВС США и теперь широко используется в правительствен­ных учреждениях и частных компаниях как в самих США, так и далеко за их пределами. Она определяет стандарты терминологии и графического изображения типовых элементов на ER-диаграммах.

Структура процесса моделирования в ERwin

В ERwin используются два уровня представления модели данных: ло­гический и физический (что соответствует концептуальному и логическо­му уровню, принятым в теории БД). На логическом уровне не рассматри­вается использование конкретной СУБД, не определяются типы данных (например, целое или вещественное число) и не определяются индексы для таблиц. Целевая СУБД, имена объектов и типы данных, индексы состав­ляют второй (физический) уровень модели ERwin.

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

Процесс построения информационной модели состоит из следующих этапов:

1. Создание логической модели данных:

- определение сущностей;

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

- задание первичных и альтернативных ключей;

- определение неключевых атрибутов сущностей.

2.Переход к физическому описанию модели:

- назначение соответствий имя сущности - имя таблицы, атри­бут сущности - атрибут таблицы;

- задание триггеров, хранимых процедур и ограничений.

3. Генерация базы данных.

Создание логической модели БД

С точки зрения пользователя ERwin, процесс создания логической мо­дели данных заключается в визуальном редактировании ER-диаграммы. Диаграмма ERwin строится из трех основных блоков: сущностей, атрибу­тов и связей.

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

1. атрибуты, составляющие первичный ключ;

2. неключевые атрибуты;

3. тип сущности (независимая/зависимая).

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

1. первичный ключ не должен принимать пустые (NULL) значения;

2. первичный ключ не должен изменяться в течение времени;

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

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

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

Рассмотрим выше сказанное на примере сущности СОТРУДНИК (рис.19).

Рис. 19. Пример сущности

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

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

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

Пример использования альтернативного ключа приведен на Рис.20. Альтернативный ключ обозначается на диаграмме символами АКп, зак­люченными в скобки.

Рис. 20. Пример альтернативного ключа

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

Связь в ERwin трактуется как функциональная зависимость между дву­мя сущностями (в частности, возможна связь сущности с самой собой).

Если рассматривать диаграмму как графическое представление правил предметной области, то сущности являются существительными, а связи -глаголами. Например, между сущностями ОТДЕЛ и СОТРУДНИК суще­ствует связь "состоит из" (ОТДЕЛ состоит из СОТРУДНИКОВ).

В ERwin связи представлены пятью основными элементами информации: тип связи;

• родительская и дочерняя (зависимая) сущности;• мощность связи;

• допустимость пустых (null) значений;

• требования по обеспечению ссылочной целостности.

ERwin поддерживает следующие основные типы связей: идентифици­рующая, неидентифицирующая, полная категория, неполная категория, многие-ко-многим.

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

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

Идентифицирующая связь изображается сплошной линией; неиденти­фицирующая - пунктирной линией. Линии заканчиваются точкой со сто­роны дочерней сущности.

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

На рис. 21. приведен пример неидентифицируюшей связи. Первичный ключ сущности ОТДЕЛ "номер отдела" мигрировал в область неключе­вых атрибутов (поскольку связь неидентифицируюшая) сущности СО­ТРУДНИК. На диаграмме атрибуты, наследованные от родительской сущ­ности, помечаются символами FK, заключенными в скобки.

Рис.21. Пример неидентифицирующей связи

Зависимая сущность может наследовать один и тот же атрибут от бо­лее чем одной родительской сущности или от одной и той же родительс­кой сущности через несколько связей.

Поскольку атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами, ERwin считает, что в зависи­мой сущности атрибуты внешнего ключа появляются только один раз. Чтобы избежать этого ограничения, ERwin позволяет ввести для них роли, т. е. новые имена, под которыми мигрирующие атрибуты будут представ­лены в дочерней сущности. В случае неоднократной миграции атрибута такое переименование необходимо. Например, при создании модели сдел­ки по обмену валюты сущность СДЕЛКА (рис. 22) должна иметь два раз­личных атрибута для кодов проданной и купленной валюты. В данном слу­чае первичный ключ сущности ВАЛЮТА ("код валюты") имеет две роли в дочерней сущности.

Рис. 22. Пример использования ролей

Ситуация, когда экземпляру одной сущности соответствует один или несколько экземпляров второй сущности, а экземпляру второй сущности соответствует один или несколько экземпляров первой сущности, отража­ется в логической модели связью многие-ко-мпогим между данными сущ­ностями. На диаграмме связь изображается сплошной линией с точками на концах. Например, для заключения сделки в некоторой фирме клиент обращается к любому из свободных сотрудников этой фирмы. В то же вре­мя сотрудник фирмы может обслуживать нескольких клиентов. Поэтому тип связи между сущностями КЛИЕНТ и СОТРУДНИК должен быть мно-гие-ко-многим (рис. 23).

Рис. 23 Пример связи многие-ко-мпогим

Заметим, что связь типа многие-ко-многим возможна только на логи­ческом уровне. Преобразование связи данного типа на физическом уровне будет рассмотрена в следующем пункте. Однако добавим, что связи мно­гие-ко-многим рекомендуется избегать. В рассмотренном примере этого можно добиться, если ввести дополнительную сущность СДЕЛКА (см. рис. 24).

 

Рис. 24. Пример устранения связи многие-ко-многим

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

Различная часть (например, данные почасовой оплаты для временных работников или данные о зарплате и отпуске для штатных работников) помещается в сущности-подтипы. В сущности - супертипе вводится атри­бут-дискриминатор, позволяющий различать конкретные экземпляры сущ­ности-подтипа.

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

На рис.25 категорийная связь между сущностью СОТРУДНИК и сущ­ностями ПОСТОЯННЫЙ СОТРУДНИК и СОВМЕСТИТЕЛЬ является неполной, если предположить, что существует еще один тип сотрудников - консультант.

Включение в модель сущности КОНСУЛЬТАНТ приводит к тому, что категорийная связь становится полной (рис. 26).

Мощность связи представляет собой отношение количества экземпля­ров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Мощность связи определяется только для идентифи­цирующих и неидентифицирующих связей и записывается как l:n. ERwin, в соответствии с методологией IDEF1X, предоставляет 4 варианта для п, которые изображаются дополнительным символом у дочерней сущности (рис. 27)

Рис. 25 Пример неполной категории

 

 

Рис.26 Пример полной категории

 

Рис. 27 Обозначение кратности связи

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

В целях контроля ссылочной целостности (под ссылочной целостнос­тью в ERwin понимается обеспечение требования, чтобы значения внеш­него ключа экземпляра дочерней сущности соответствовали значениям первичного ключа в родительской сущности) для каждой связи могут быть заданы требования по обработке операций INSERT/UPDATE/DELETE для родительской и дочерней сущности. ERwin представляет следующие вари­анты обработки этих событий:

1. отсутствие проверки;

2. проверка допустимости;

3. запрет операции;

4. каскадное выполнение операции (DELETE/UPDATE);

5. установка пустого (NULL-значения) или заданного значения по умолчанию.

 

 


Список используемой литературы

1.Балдин К. В., Уткин В. Б., Информационные системы в экономике, М.: Издательско-торговая корпорация «Дашков и К0», 2008 г.