
- •Описание лабораторной работы
- •1.1 Методические указания к выполнению работы
- •1.1.1 Создание функциональной модели
- •1.1.2 Создание диаграммы декомпозиции
- •1.1.3 Создание диаграммы декомпозиции а2
- •Контрольные вопросы
- •Цель работы
- •Теоретические сведения Реляционные базы данных
- •Моделирование в eRwin
- •Описание работы с пакетом
- •3.1. Постановка задачи
- •3.2.Создание логической модели бд
- •3.2. Создание физической модели бд и генерация схемы бд.
- •Создание модели экономического или производственного процесса
- •Контрольные вопросы
Контрольные вопросы
Обоснуйте необходимость использования CASE-средств для моделирования экономических и производственных процессов.
Что представляет собой модель системы в нотации IDEF0?
Лабораторная работа №2
«Разработка информационной модели с помощью ERwin»
Цель работы
Целью работы является проведение процесса системного моделирования для заданной предметной области с помощью инструментальной среды ERwin.
Теоретические сведения Реляционные базы данных
Реляционная база данных - это тело связанной информации, сохраняемой в двухмерных таблицах. Напоминает адресную или телефонную книгу. В книге имеется большое количество входов, каждый из которых соответствует определенной особенности. Для каждой такой особенности, может быть несколько независимых фрагментов данных, например имя, телефонный номер, и адрес. Предположим, что вы должны сформатировать эту адресную книгу в виде таблицы со строками и столбцами. Каждая строка (называемая также записью) будет соответствовать определенной особенности; каждый столбец будет содержать значение для каждого типа. В реляционной модели все данные представляются как факты о сущностях и связях.
Сущность - это, например, человек, место, вещь, событие, концепция, в которых хранится информация. Сущности именуются обычно существительными, такими как покупатель, компьютер, служащий, продажа.
Более точно, сущность - это множество индивидуальных объектов - экземпляров, причем все эти объекты являются различными. Связь - это функциональная зависимость между сущностями. Например, «служащий совершает продажи».
Каждая сущность обладает атрибутами. Атрибут - это свойство объекта, характеризующее его экземпляр. Сущность служащий может иметь атрибуты имя, дата рождения и т.д.
Общепринятым видом графического изображения реляционной модели данных является ER-диаграмма. На такой диаграмме сущности (таблицы) изображаются прямоугольниками, возможно, соединенными между собой линиями (связями). Такое графическое представление облегчает восприятие структуры базы данных по сравнению с текстовым описанием.
Моделирование в eRwin
Процесс построения информационной модели.
Процесс построения информационной модели состоит из следующих шагов:
определение сущностей;
определение зависимостей между сущностями;
задание первичных и альтернативных ключей;
определение атрибутов сущностей;
приведение модели к требуемому уровню нормальной формы;
переход к физическому описанию модели: назначение соответствий имя сущности - имя таблицы, атрибут сущности - атрибут таблицы; задание триггеров, процедур и ограничений;
генерация базы данных.
ERwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки. Однако ERwin далеко не только инструмент для рисования. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).
Основные компоненты диаграммы Erwin - это сущности, атрибуты и связи. Каждая сущность является множеством подобных индивидуальных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться от всех остальных экземпляров. Построение модели данных предполагает определение сущностей и атрибутов, т. е. необходимо определить, какая информация будет храниться в конкретной сущности или атрибуте. Если рассматривать диаграмму как графическое представление правил предметной области, то сущности и атрибуты являются существительными, а связи - глаголами.
Сущности (Entity) в ERwin
На диаграмме сущность изображается прямоугольником. В зависимости от режима представления диаграммы прямоугольник может содержать имя сущности, ее описание, список ее атрибутов и другие сведения.
Горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора - атрибуты, составляющие первичный ключ в верхней части, и прочие (не входящие в первичных ключ) - в нижней части.
Сущность можно определить как объект, событие или концепцию, информация о которых должна сохраняться. Сущности должны иметь наименование с четким смысловым значением, именоваться существительным в единственном числе, не носить "технических" наименований и быть достаточно важными для того, чтобы их моделировать. Именование сущности в единственном числе облегчает в дальнейшем чтение модели. Фактически имя сущности дается по имени ее экземпляра. Примером может быть сущность «Студент» (но не Студенты!) с атрибутами «Номер студенческого билета», «Фамилия студента» и «Адрес студента». На уровне физической модели ей может соответствовать таблица students с колонками st_id, st_lname и address. Сущности соответствует таблица в реальной СУБД. В ERwin сущность визуально представляет три основных вида информации:
атрибуты, составляющие первичный ключ;
не ключевые атрибуты;
тип сущности (независимая/зависимая).
Первичным ключом служит атрибут или набор атрибутов, уникально идентифицирующих единственный экземпляр сущности. Другими словами, первичный ключ может быть как одним атрибутом, так и состоять из нескольких. Первичный ключ, состоящий более чем из одного атрибута, называется составным или компонентным ключом. Первичный ключ должен быть статическим (static) и неразрушаемым (non-volatile). Под статичностью и неразрушаемостью подразумевается, что первичный ключ не должен подвергаться изменениям. Изменения первичного ключа трудно сопровождать, что часто приводит к весьма дорогостоящим переделкам, поэтому лучшим считается вариант, когда первичный ключ абсолютно не зависит от экземпляров сущности. Выбор первичного ключа может оказаться непростой задачей, решение которой может повлиять на эффективность будущей ИС. В одной сущности могут оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (candidate key). Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.
Итак, можно сформулировать правила определения сущностей
Сущность должна иметь уникальное имя.
Сущность обладает одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через отношения.
Сущность обладает одним или несколькими атрибутами, которые однозначно идентифицируют каждый образец сущности и называются ключом или составным ключом.
Каждая сущность может обладать любым количеством отношений с другими сущностями.
Если внешний ключ целиком используется в составе первичного ключа, то сущность является зависимой от идентификатора.
Экземпляры независимой (родительской) сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями; зависимая (дочерняя) сущность, наоборот, не может быть уникально идентифицирована без определения ее связей с другими сущностями. Зависимая сущность отображается в ERwin прямоугольником с закругленными углами.
Зависимая сущность может наследовать один и тот же внешний ключ от более чем одной родительской сущности, или от одной и той же родительской сущности через несколько связей. Если не введены различные роли для такого множественного наследования, ERwin считает, что в зависимой сущности атрибуты внешнего ключа появляются только один раз.
Унификация - это объединение двух или более групп атрибутов внешних ключей в один внешний ключ (группу атрибутов), в предположении, что значения одноименных атрибутов в дочерней сущности всегда одинаковы. Схема представления родительской и дочерней сущности изображена на рис.1 и рис.2
Рисунок 1- Пример представления синтаксиса идентифицирующих отношений.
Рисунок 2 - Пример представления синтаксиса неидентифицирующих отношений.
Атрибуты (Attribute) в ERWin
Сущность должна обладать некоторым набором атрибутов. Атрибуты представляют собой факты, которые служат для идентификации, характеристики отнесения к категории, числового представления или другого вида описания состояния экземпляра сущности. Атрибуты формируют логические группы, описывающие каждый экземпляр сущности. Конкретным экземпляром атрибута является значение. Например, атрибут с названием «Имя» определяет область определения для фактов о сущности с названием «Клиент». Артём, Константин, Станислав – примеры конкретных значений «Имени» для конкретных экземпляров «Клиента».
Правила атрибутов:
Каждый атрибут каждой сущности обладает уникальным именем.
Сущность может обладать любым количеством атрибутов.
При идентифицирующем отношении сущность "потомок" наследует атрибут и/или атрибуты, составляющие первичный ключ сущности "родителя".
Возможный ключ - это один или несколько атрибутов, чьи значения однозначно определяют каждый экземпляр сущности. При существовании нескольких возможных ключей один из них назначается первичным, а остальные формируют альтернативные ключи (см. рис. 3).
Рисунок 3 - Пример первичного и альтернативного ключей
Хороший первичный ключ будет обладать следующими признаками:
значение гарантирует уникальность для каждого из экземпляров;
значение не имеет скрытого смысла;
область определения значений будет оставаться постоянной с течением времени;
значения существуют для каждого из экземпляров сущности.
При работе ИС часто бывает необходимо обеспечить доступ к нескольким экземплярам сущности, объединенным каким – либо одним признаком для повышения производительности в этом случае используются неуникальные индексы. ERwin позволяет на уровне логической модели назначить атрибуты, которые будут участвовать в неуникальных индексах. Такие атрибуты называются инверсные входы (Inversion Entries). Инверсный вход – это атрибут или группа атрибутов, которые не определяют экземпляр сущности уникальным образом, но часто используется для обращения к экземплярам сущности. ERwin генерирует не уникальный индекс для каждого инверсного входа.
Сущности представляют собой факты, информацию о которых любая организация заинтересована накапливать и сопровождать. Они составляют существо модели и в основном выявляются во время рабочих сессий. Полное и точное отражение атрибутов в модели требует тщательного анализа, гарантирующего, что атрибуты точно соответствуют требованиям к информации.
Связи (relationships) в ERwin
Связь является логическим соотношением между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой. Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы. По умолчанию имя связи на диаграмме не показывается. На логическом уровне можно установить идентифицирующую связь "один-ко-многим", связь "многие-ко-многим" и неидентифицирующую связь "один-ко-многим". Связь - это понятие логического уровня, которому соответствует внешний ключ на физическом уровне. В ERwin связи представлены пятью основными элементами информации:
тип связи (идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь);
родительская сущность;
дочерняя (зависимая) сущность;
мощность связи (cardinality);
допустимость пустых (null) значений.
В IDEFIX различают зависимые и независимые сущности. Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительской) и зависимой (дочерней) сущностями. Зависимая сущность изображается прямоугольником со скругленными углами. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешний ключ — FK.
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности входят в состав неключевых атрибутов дочерней сущности. Неидентифицирующая связь служит для связывания независимых сущностей. Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; не идентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.
Мощность связей (Cardinality) — служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.
Различают четыре типа сущности:
общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности; не помечается каким-либо символом;
символом Р помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);
символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения);
цифрой помечается случай точного соответствия, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности.
допустимость пустых (NULL) значений в не идентифицирующих связях ERwin изображает пустым ромбиком на дуге связи со стороны родительской сущности.
Имя связи на логическом уровне представляет собой глагол, связывающий сущности. Физическое имя связи (которое может отличаться от логического) для ERWin означает имя ограничения или индекса. Для отображения имени связи выберите опцию в меню: Format/Relationship Display/Verb phrase.
Связи категоризации
Некоторые сущности определяют целую категорию объектов одного типа. В ERwin в таком случае создается сущность для определения категории и для каждого элемента категории, а затем вводится для них связь категоризации. Родительская сущность категории называется супертипом, а дочерние - подтипом.
Например, сущность «входящий документ» может быть как запросом, так и распоряжением. Первые и вторые имеют различные, частично пересекающиеся наборы атрибутов (минимальное пересечение подтипов составляет первичный ключ). Общая часть этих атрибутов, включая первичный ключ, помещается в сущность-супертип «входящий документ». Различная часть (например, данные о содержании, отправителе) помещается в сущности-подтипы.
В сущности-супертипе вводится атрибут-дискриминатор, позволяющий различать конкретные экземпляры сущности - подтипа.
В зависимости от того, все ли возможные сущности-подтипы включены в модель, категорийная связь является полной или неполной.
Рисунок 4 - Пример неполного множества категорий
Рисунок 5 - Пример полного множества категорий
В ERwin полная категория изображается окружностью с двумя подчеркиваниями, а неполная - окружностью с одним подчеркиванием.
Правила отношений категоризации:
Сущность типа "категория" может иметь только одну общую сущность.
Сущность-категория, принадлежащая одному отношению категоризации, может быть общей сущностью в другом отношении категоризации.
Сущность может быть общей сущностью в любом количестве отношений категоризации.
Атрибуты первичного ключа сущности-категории должны совпадать с атрибутами первичного ключа общей сущности.
Все экземпляры сущности-категории имеют одно и то же значение дискриминатора, и все экземпляры других категорий должны иметь другие значения дискриминатора (см. рис. 4 и рис.5).
Роли.
Имя роли (функциональное имя) – это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности. По умолчанию в списке атрибутов показываются только имя роли. Для отображения полного имени атрибута (как функционального имени, так и имени роли) следует в контекстном меню выбрать пункт Format/ Entity Display и затем включить опцию Rolename/Attribute. Полное имя показывается как функциональное имя и базовое имя, разделенные точкой. Имя роли задается на вкладке Rolename диалогового окна Relationship. Это окно вызывается двойным щелчком мыши по линии связи.Обязательным является применение имен ролей в том случае, когда два или более атрибутов одной сущности определены по одной и той же области, т.е. они имеют одинаковую область значений, но разный смысл.
Представления.
Представления (view), или, как их иногда называют, временные или производные таблицы, представляют собой объекты БД, данные в которых не хранятся постоянно, как в таблице, а формируются динамически при обращении к представлению. Представление не может существовать само по себе, а определяется только в терминах одной или нескольких таблиц. Применение представлений позволяет разработчику БД обеспечить каждому пользователю или группе пользователей свой взгляд на данные, что решает проблемы простоты использования и безопасности данных.
Хранение информации в модели ERwin.
Обычно модели ERwin сохраняются на диске в виде файла. Имеется возможность хранить модель в целевой СУБД. Для этого с помощью самого ERwin в целевой СУБД создается метабаза ERwin. В этой базе данных сохраняется информация модели. В частном случае базой данных могут быть и dBase-файлы, с которыми ERwin работает через ODBC.