- •Методы и средства проектирования информационных систем
- •Предисловие
- •1. Теоретические основы систем управления
- •1.1. Основные понятия
- •1.2. Классификация систем
- •1.3. Структура системы управления
- •2. Основы создания информационной системы предприятия
- •2.1. Методологии и средства разработки ис
- •2.2. Жизненный цикл ис
- •2.3. Структурный анализ
- •3. Разработка консалтинговых проектов
- •3. 1. Цели и основные этапы разработки консалтинговых проектов
- •3.2. Проведение обследования деятельности предприятия
- •3.2.1. Методика и этапы обследования
- •3.2.2. Организация сбора и первичной обработки данных
- •3.3. Построение моделей
- •3.4. Разработка системного проекта
- •3.5. Разработка предложений по автоматизации
- •3.6. Техническое проектирование
- •4. Структурные методы моделирования систем управления
- •4.1. Методология функционального моделирования idef0 (sadt)
- •4.1.1. Sadt-модели
- •4.1.2. Синтаксис и применение диаграмм
- •4.1.3. Синтаксис моделей и работа с ними
- •4.1.4. Процесс моделирования
- •4.2. Методология построения реляционных структур idef1x.
- •4.3. Диаграммы потоков данных (Data Flow Diagramming)
- •4.4. Метод описания процессов idef3
- •4.5. Описание нотации aris eEpc.
- •5. Анализ и реорганизация бизнес-процессов
- •5.2. Анализ структуры процессов в соответствии с iso 9000 - стандартом на качество проектирования, разработки, изготовления и послепродажного обслуживания
- •5.4. Ключевые моменты реорганизации деятельности предприятия
- •6. Создание модели процессов в bPwin
- •6.1. Инструментальная среда bPwin
- •6.2. Каркас диаграммы
- •6.3. Слияние и расщепление моделей
- •6.4. Создание отчетов в bPwin
- •6.5. Стоимостной анализ и свойства, определяемые пользователем
- •6.6. Диаграммы dfd и Workflow (idef3)
- •7. Создание модели данных с помощью eRwin
- •7.1. Отображение модели данных в eRwin
- •7.1.1. Физическая и логическая модели данных
- •7.1.2. Подмножества модели и сохраняемые отображения
- •7.2. Создание логической модели данных
- •7.2.1. Уровни логической модели
- •7.2.2. Сущности и атрибуты
- •7.2.3. Связи
- •7.2.4. Типы сущностей и иерархия наследования
- •7.2.5. Ключи
- •7.2.6. Домены
- •7.3. Создание физической модели данных
- •7.3.1. Уровни физической модели
- •7.3.2. Выбор сервера
- •7.3.3. Таблицы, колонки и представления (view)
- •7.3.4. Правила валидации и значения по умолчанию
- •7.3.5. Индексы
- •7.3.6. Задание объектов физической памяти
- •7.3.7. Триггеры и хранимые процедуры
- •7.3.8. Проектирование хранилищ данных
- •7.3.9. Вычисление размера бд
- •7.3.10. Прямое и обратное проектирование
- •8. Объектно-ориентированный подход
- •8.1. Основные принципы
- •8.3. Обзор диаграммных техник uml
- •8.4. Пакеты как средство работы с большими проектами
- •8.5. Диаграммы классов и объектов
- •8.5.1. Классы
- •8.5.2. Интерфейсы
- •8.5.3 Отношения между классами
- •8.5.4 Пример диаграммы классов
- •8.6. Диаграммы использования
- •8.7. Диаграммы последовательностей
- •8.8. Диаграммы сотрудничества
- •8.9. Диаграммы состояний
- •8.10. Диаграммы действий
- •8.11. Диаграммы реализации
- •9. Унифицированный процесс разработки и uml
- •9.2. Фазы унифицированного процесса и диаграммы uml
- •10. Объектно-ориентированное case средство Rational Rose
- •10.1. Состав и основные возможности
- •10.2. Этапы проектирования
- •Литература
- •Содержание.
7.2.3. Связи
Связь является логическим соотношением между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой (Relationship Verb Phrases). Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть левой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию Verb Phrase.
На логическом уровне можно установить идентифицирующую связь "один-ко-многим", связь "многие-ко-многим" и неидентифицирующую связь "один-ко-многим" (соответственно это кнопки слева направо в палитре инструментов).
Когда рисуется идентифицирующая связь, ERwin автоматически преобразует дочернюю сущность в зависимую. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешний ключ - (FK).
В дальнейшем, при генерации схемы БД, атрибуты первичного ключа получат признак NOT NULL, что означает невозможность внесения записи в таблицу заказов без информации о номере клиента.
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав неключевых компонентов родительской сущности. Неидентифицирующая связь служит для связывания независимых сущностей.
Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи, неидентифицирующая - пунктирной.
Для создания новой связи следует:
• установить курсор на нужной кнопке в палитре инструментов (идентифицирующая или неидентифицирующая связь) и нажать левую кнопку мыши;
• щелкнуть сначала по родительской, а затем по дочерней сущности.
Форму линии связи можно изменить. Для этого нужно захватывать мышью нужную линию связи и переносить ее с места на место, пока линия не начнет выглядеть лучше.
Для редактирования свойств связи следует "кликнуть" правой кнопкой мыши по связи и выбрать на контекстном меню пункт Relationship Editor.
В закладке General появившегося диалога можно задать мощность, имя и тип связи.
Мощность связи (Cardinality) - служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.
Различают четыре типа мощности:
• общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности не помечается каким-либо символом;
• символом Р помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);
• символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения);
• цифрой помечается случай точного соответствия, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности.
По умолчанию символ, обозначающий мощность связи, не показывается на диаграмме. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть левой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию Cardinality.
Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи "один-ко-многим" идентифицирующей или неидентифицирующей достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи "многие-ко-многим" следует указывать имена как Parent-to-Child, так и Child-to-Parent.
Тип связи (идентифицирующая/неидентифицирующая). Для неидентифицирующей связи можно указать обязательность (Nulls). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение NULL. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности.
В закладке Definition можно дать более полное определение связи для того, чтобы в дальнейшем иметь возможность на него ссылаться.
В закладке Rolename/RI Actions можно задать имя роли и правила ссылочной целостности.
Имя роли (функциональное имя) - это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности.
По умолчанию в списке атрибутов показывается только имя роли. Для отображения полного имени атрибута (как функционального имени, так и имени роли) следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами Модели, выбрать пункт Display Options/Entities и затем включить опцию Rolename/Attribute. Полное имя показывается как функциональное имя и базовое имя, разделенные точкой.
Обязательным является применение имен ролей в том случае, когда два или более атрибутов одной сущности определены по одной и той же области, то есть они имеют одинаковую область значений, но разный смысл.
Если атрибут мигрирует в качестве внешнего ключа более чем на один уровень, то на первом уровне отображается полное имя внешнего ключа (имя роли + базовое имя атрибута), на втором и более - только имя роли.
Правила ссылочной целостности (referential integrity (RI) - логические конструкции, которые выражают бизнес-правила использования данных и представляют собой правила вставки, замены и удаления. При генерации схемы БД на основе опций логической модели, задаваемых в закладке Rolename/RI Actions, будут сгенерированы правила декларативной ссылочной целостности, которые должны быть предписаны для каждой связи, и триггеры, обеспечивающие ссылочную целостность. Триггеры представляют собой программы, выполняемые всякий раз при выполнении команд вставки, замены или удаления (INSERT, UPDATE или DELETE).
В этом случае возможно установление правила установки в нуль - SET NULL. При удалении отдела атрибут внешнего ключа сущности Сотрудник - Где работает. Номер отдела примет значение NULL. Это означает, что при удалении отдела сотрудник остается работать в организации не будучи приписан к какому-либо отделу и информация о нем сохраняется.
Возможна установка трех правил удаления (если таковые поддерживаются СУБД):
SET NULL - при удалении атрибуту внешнего ключа присваивается значение NULL.
SET DEFAULT - при удалении атрибуту внешнего ключа присваивается значение по умолчанию.
NONE - при удалении значение атрибута внешнего ключа не меняется.
Правила удаления управляют тем, что будет происходить в БД при удалении строки. Аналогично правила вставки и обновления управляют тем, что будет происходить с БД, если строки изменяются или добавляются.
ERwin автоматически присваивает каждой связи значение ссылочной целостности, устанавливаемой по умолчанию, прежде чем добавить ее в диаграмму. Режимы RI, присваиваемые ERwin по умолчанию, могут быть изменены в редакторе Referential Integrity Default, который вызывается, если щелкнуть по кнопке RI Defaults диалога Target Server (меню Server/Target Server).
Связь "многие-ко-многим" возможна только на уровне логической модели данных. Связь "многие-ко-многим" должна именоваться двумя фразами - в обе стороны. Это облегчает чтение диаграммы.
При переходе к физическому уровню ERwin автоматически преобразует связь "многие-ко-многим", добавляя новую таблицу и устанавливая две новые связи один-ко-многим от старых к новой таблице. При этом имя новой таблице присваивается автоматически как "Имяl_Имя2".