- •BPwin и Erwin. Case-средства для разработки информационных систем
- •Предисловие
- •Введение
- •1. Создание модели процессов в bPwin
- •1.1. Инструментальная среда bPwin
- •1.2. Методология idef0
- •1.2.1. Принципы построения модели idef0
- •1.2.2. Работы (Activity)
- •1.2.3. Стрелки (Arrow)
- •1.2.4. Нумерация работ и диаграмм
- •1.2.5. Диаграммы дерева узлов и feo
- •1.2.6. Каркас диаграммы
- •1.2.7. Слияние и расщепление моделей
- •1.2.8. Рекомендации по рисованию диаграмм
- •1.2.9. Проведение экспертизы
- •1.3. Создание отчетов в bPwin
- •1.4. Стоимостный анализ (лвс) и свойства, определяемые пользователем (udp)
- •1.5. Дополнение созданной модели процессов диаграммами dfd и Workflow (idef3)
- •1.5.1. Диаграммы потоков данных (Data Flow Diagramming)
- •1.5.2. Метод описания процессов idef3
- •1.5.3. Имитационное моделирование
- •2. Создание модели данных с помощью eRwin
- •2.1. Отображение модели данных в eRwin
- •2.1.1. Физическая и логическая модель данных
- •2.1.2. Интерфейс eRwin. Уровни отображения модели
- •2.1.3. Подмножества модели и сохраняемые отображения
- •2.2. Создание логической модели данных
- •2.2.1. Уровни логической модели
- •2.2.2. Сущности м атрибуты
- •2.2.3. Связи
- •2.2.4. Типы сущностей и иерархия наследования
- •2.2.5. Ключи
- •1. Табельный номер,
- •2. Номер паспорта;
- •2.2.6. Нормализация данных
- •2.2.7. Домены
- •2.3. Создание физической модели данных
- •2.3.1. Уровни физической модели
- •2.3.2. Выбор сервера
- •2.3.3. Таблицы, колонки и представления (view)
- •2.3.4. Правила валидации и значения по умолчанию
- •2.3.5. Индексы
- •2.3.6. Задание объектов физической памяти
- •2.3.7. Триггеры и хранимые процедуры
- •2.3.8. Проектирование хранилищ данных
- •2.3.9. Вычисление размера бд
- •2.3.10. Прямое и обратное проектирование
- •2.4. Генерация кода клиентской части с помощью eRwin
- •2.4.1. Расширенные атрибуты
- •2.4.2. Генерация кода в Visual Basic
- •2.4.3. Генерация кода в Power Builder
- •2.5. Создание отчетов в eRwin
- •2.5.1. Интерфейс Report Browser
- •2.5.2 Создание нового отчета
- •2.6. Словари eRwin
- •2.6.1. Генерация словаря eRwin
- •2.6.2. Использование словаря eRwin
- •3. Групповая разработка моделей данных и моделей процессов с помощью platinum Model Mart
- •3.1. Инсталляция ModelMart
- •3.2. Администрирование ModelMart
- •3.3. Использование репозотория ModelMart
- •4. Создание объектной модели и ее связывание с моделью данных при помощи eRwin Translation Wizard
- •4.1. Язык uml
- •4.2. Создание модели данных на основе объектной модели с помощью eRwin Translation Wizard
- •5. Создание качественных отчетов с помощью rpTwin
- •5.1. Создание простейших отчетов в rpTwin
- •5.1.1. Создание нового отчета
- •5.1.2. Инструментальная среда rpTwin
- •5.2. Форматирование отчетов
- •5.2.1. Вставка и форматирование объектов отчета
- •5.2.2. Группировка и сортировка данных отчета
- •5.2.3. Изменение файла данных отчета
- •5.2.4. Изменение свойств отчета
- •5.3. Использование формул rpTwin
- •5.3.1. Создание формул rpTwin
- •5.3.2. Функции rpTwin
- •5.3.3. Использование формул rpTwin
- •Приложение Список макрокоманд eRwin
2.2.4. Типы сущностей и иерархия наследования
Как было указано выше, связи определяют, является ли сущность независимой или зависимой. Различают несколько типов зависимых сущностей.
Характеристическая - зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характеристиках родительской сущности.
Рис. 2.34. Пример характеристической сущности "Хобби "
Ассоциативная - сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей. Примером ассоциативной сущности является Visit на рис. 2.33.
Именующая - частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрировавших в качестве внешнего ключа). Примером именующей сущности является Doctor_Patient на рис. 2.32.
Категориальная - дочерняя сущность в иерархии наследования.
Иерархия наследования (или иерархия категорий) представляет собой особый тип объединения сущностей, которые разделяют общие характеристики. Например, в организации работают служащие, занятые полный рабочий день (постоянные служащие) и совместители. Из их общих свойств можно сформировать обобщенную сущность (родовой предок) Сотрудник (рис. 2.35), чтобы представить информацию, общую для всех типов служащих. Специфическая для каждого типа информация может быть* расположена в категориальных сущностях (потомках) Постоянный сотрудник и Совместитель.
Обычно иерархию наследования создают, когда несколько сущностей имеют общие по смыслу атрибуты, либо когда сущности имеют общие по смыслу связи (например, если бы Постоянный сотрудник и Совместитель имели бы сходную по смыслу связь "работает в" с сущностью Организация), либо когда это диктуется бизнес-правилами.
Для каждой категории можно указать дискриминатор - атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой (атрибут Тип на рис. 2 35).
Рис. 2.35. Иерархия наследования. Неполная категория
Иерархии категорий делятся на два типа - полные и неполные. В полной категории одному экземпляру родового предка (сущность Служащий, рис. 2.36) обязательно соответствует экземпляр в каком-либо потомке, т. е. в примере служащий обязательно является либо совместителем, либо консультантом, либо постоянным сотрудником.
Если категория еще не выстроена полностью и в родовом предке могут существовать экземпляры, которые не имеют соответствующих экземпляров в потомках, то такая категория будет неполной. На рис. 2.35 показана неполная категория - сотрудник может быть не только постоянным или совместителем, но и консультантом, однако сущность Консультант еще не внесена в иерархию наследования.
Рис. 2.36. Иерархия наследования. Полная категория
Полная категория помечается символом
, неполная -
. Возможна комбинация полной и неполной категорий. На рис. 2.37 помимо постоянных сотрудников и совместителей могут быть и консультанты, что не отражено в иерархии (неполная категория), но каждый постоянный сотрудник либо мужчина, либо женщина (полная категория).
Рис. 2.37. Иерархия наследования. Комбинация полной и неполной категорий
Для создания категориальной связи следует:
установить курсор на кнопке
в палитре инструментов и нажать левую кнопку мыши;
щелкнуть сначала по родовому предку, а затем по потомку;
для установления второй связи в иерархии категории следует сначала щелкнуть по символу категории, затем по второму потомку.
Для редактирования категорий нужно щелкнуть правой кнопкой мыши по символу категории и выбрать в контекстном меню пункт Subtype Relationship Editor. В диалоге Subtype Relationship (рис. 2.38) можно указать атрибут - дискриминатор категории (список Discriminator Attribute Choice) и тип категории - полная/неполная (радиокнопки Complete/Incomplete).
Рис. 2.38. Диалог Subtype Relationship
Рассмотрим возможные стадии построения иерархии наследования. Определение сущностей с общими (по определению) атрибутами. Предположим, в процессе проектирования созданы сущности Постоянный сотрудник и Совместитель (рис. 2.39). Можно заметить, что часть атрибутов у этих сущностей (Фамилия, Имя, Отчество, Дата рождения, Должность) имеет одинаковый смысл.
Рис. 2.39. Сущности с общими по смыслу атрибутами
Перенос общих атрибутов в сущность - родовой предок. В случае обнаружения совпадающих по смыслу атрибутов следует создать новую сущность (Сотрудник) - родовой предок и перенести в нее общие атрибуты (Фамилия, Имя, Отчество, Дата рождения. Должность).
Создание неполной структуры категорий. Создается категориальная связь от новой сущности - родового предка к старым сущностям - потомкам. Новая сущность дополняется атрибутом-дискриминатором категории (Тип) (см. рис. 2.35).
Создание полной структуры категорий. Проводится дополнительный поиск сущностей, имеющих общие по смыслу атрибуты с родовым предком. В примере это сущность Консультант (рис. 2.40).
Рис. 2.40. Дополнительная сущность с общими по смыслу атрибутами
Общие атрибуты переносятся в родового предка и категория преобразуется в полную (признак полной категории устанавливается в диалоге Subtype Relationship). Сущность Консультант не имеет атрибута Должность, поэтому в родовом предке значение этого атрибута в случае консультанта будет NULL. В зависимости от бизнес-правил атрибут Должность может быть перенесен обратно из родового предка в сущности - потомки Постоянный сотрудник и Совместитель.
Комбинации полной и неполной структур категорий. При необходимости создание иерархии категорий можно продолжить. Для каждого потомка может найтись сущность с общими атрибутами, тогда сущность - потомок становится родовым предком для новых потомков, и т. д. (см. рис. 2.37).