- •1. Создание модели процессов в bp-win
- •1.1. Инструментальная среда bp-win
- •1.2. Методология idef0
- •1.2.1. Принципы построения модели idef0
- •1.2.2. Работы (Activity)
- •1.2.3. Стрелки (Arrow)
- •1.2.4. Нумерация работ и диаграмм
- •1.1.5. Диаграммы дерева узлов и fео
- •1.2.6. Каркас диаграммы
- •1.2.7. Слияние и расщепление моделей
- •1.2.8. Рекомендации по рисованию диаграмм
- •1,2.9. Проведение экспертизы
- •1.3. Создание отчетов в bp-win
- •1.4. Стоимостный анализ (abc) и свойства, определяемые пользователем (udp)
- •1.5. Дополнение созданной модели процессов диаграммами dfd и Workflow (idef3)
- •1.5.1. Диаграммы потоков данных (Data Flow Diagramming)
- •1.5.2. Метод описания процессов idef3
- •1.5.3. Имитационное моделирование
- •Рис, 1.58. Диалог задания свойств, определяемых пользователем для экспорта в
- •2. Создание модели данных с помощью er-win
- •2.1. Отображение модели данных в er-win
- •2.1.1. Физическая и логическая модель данных
- •2.1.3. Подмножества модели и сохраняемые отображения
- •2.2. Создание логической модели данных
- •2.2.1. Уровни логической модели
- •2.2.2. Сущности и атрибуты
- •2.2.3. Связи
- •2.2.4. Типы сущностей и иерархия наследования
- •2.2.5. Ключи
- •Табельный номер;
- •Номер паспорта;
- •2.2.6. Нормализация данных
- •Рас. 2.53. Иллюстрация четвертой нормальной формы
- •2.2.7. Домены
- •2.3. Создание физической модели данных
- •2.3.1. Уровни физической модели
- •2.3.2. Выбор сервера
- •2.3.3. Таблицы, колонки и представления (view)
- •Рас. 2.63. Диалог Column Editor
- •2.3.4. Правила валидации и значения по умолчанию
- •2.3.5. Индексы
- •2.3.6. Задание объектов физической памяти
- •2.3.7. Триггеры и хранимые процедуры
- •Puс. 2.85. Редактор Schema Properties
- •Рас. 2.86. Закладка Pre&Post Script диалога Schema Properties
- •2.3.8. Проектирование хранилищ данных
- •Рас. 2.91. Выбор нотации dm
- •2.3.10. Прямое и обратное проектирование
- •Рас. 2.106. Диалог Reverse Engineer - Set Options
- •2.4. Генерация кода клиентской части с помощью er-win
- •2.4.1. Расширенные атрибуты
- •2.4.2. Генерация кода к Visual Basic
- •Рас. 2.116. Закладки Power Builder диалога Column Editor
- •2.5. Создание отчетов в er-win
- •2.5.1. Интерфейс Report Browser
- •2.6. Словари er-win
- •2.6.1. Генерация словаря er-win
- •2.6.2. Использование словаря er-win
- •3. Связывание модели процессов и модели данных
- •3.1. Соответствие модели данных и модели процессов
- •3.2. Экспорт данных из er-win в bp-win и связывание объектов модели данных со стрелками и работами
- •3.3. Создание сущностей и атрибутов bp-win и их экспорт в er-win
- •4. Групповая разработка моделей данных: и моделей процессов с помощью platinum Model Mart
- •4.1. Инсталляция Model Mart
- •Рис, 4.1. Создание табличного пространства для Model Mart в диалоге oracle Physical Object Editor
- •4.2. Администрирование Model Mart
- •Рис, 4.5. Model Marl Security Profile Manager -диалог задания прав группам пользователей
- •4.3. Использование репозитория Model Mart
- •5. Создание объектной модели
- •5.1. Язык uml
- •5.2. Создание модели данных на основе объектной модели с помощью er-win Translation Wizard
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).