- •С.Л. Моругин Проектирование информационных систем
- •Часть 2
- •Содержание
- •5. Модели процессов
- •5.1. Состав функциональной модели
- •5.2. Иерархия диаграмм
- •5.3. Типы связей между функциями
- •5.4. Моделирование процессов по стандарту idef0
- •5.5. Модели as-is и то-ве
- •5.6. Моделирование в стандарте idef0
- •5.7. Нумерация работ и диаграмм
- •5.8. Диаграммы дерева узлов и feo
- •5.9. Каркас диаграммы
- •5.10. Рекомендации по рисованию диаграмм
- •6. Модели данных
- •6.1. Концепция баз данных
- •6.1.1. Независимость данных от обработки
- •6.1.2. Системы управления базами данных
- •6.1.3. Понятие о модели данных
- •6.1.4. Концепция трех схем
- •6.1.5. Семантические модели данных
- •6.1.6.Ограниченность реляционной модели при проектировании баз данных
- •6.1.7. Общие принципы классификации субд
- •6.1.8. Основные задачи и этапы проектирования баз данных
- •6.1.8.1. Основные задачи:
- •6.1.8.2.Основные этапы проектирования баз данных
- •6.2. Концептуальные модели предметной области
- •6.2.2. Основные понятия er-модели
- •6.2.2.1. Понятие сущности. Типы сущностей
- •6.2.2.2. Стержневая сущность
- •6.2.2.3. Ассоциация
- •6.2.2.4. Характеристика
- •6.2.2.5. Обозначение
- •6.2.2.6. Атрибут сущности
- •6.2.2.7. Ключ
- •6.2.2.8. Связь
- •6.2.3. Нотация Чена для изображения er-диаграмм
- •6.3. Логические модели данных
- •6.3.1. Получение реляционной схемы из er-модели
- •6.3.2. Построение логических реляционных моделей данных в стандарте idef1x
- •6.3.3. Создание логической реляционной модели данных в erWin
- •6.3.3.1. Ключи
- •6.3.3.2. Домены
- •6.3.3.3. Задание атрибутов модели
- •6.3.3.4. Задание связей
- •6.3.3.5. Связь многие-ко-многим
- •6.3.3.6. Типы сущностей и иерархия наследования
- •6.3.3.7. Пример создания модели
- •6.3.3.8. Денормализация в eRwin
- •6.3.3.4. Создание физической модели данных
- •6.4. Согласование моделей данных и моделей процессов
- •3. Создание сущностей и атрибутов bPwin и их экспорт в eRwin
- •7 Метрики программного обеспечения
- •7.1. Метрика
- •7.2. Размерно-ориентированные метрики
- •7.3. Функционально-ориентированные метрики
- •7.4. Метрики указателей свойств (Features Points).
- •7.5. Оценка сроков выполнения проекта и его трудоемкости
- •Обозначения и сокращения
- •Библиографический список
- •Проектирование информационных систем
- •607220, Г. Арзамас, Нижегородская обл., ул. К.Маркса, 36
- •607220, Г. Арзамас, Нижегородская обл., ул. К.Маркса, 36
6.3.3.4. Задание связей
В ERWin можно задавать идентифицирующие и неидентифицирующие связи.
Идентифицирующей связью называется связь, которая добавляет признаки идентичности в дочернюю сущность путем миграции ключей родительской сущности в область ключевых атрибутов дочерней и, таким образом, делая дочернюю сущность зависимой от родительской в смысле своей идентичности. Можно задать также и такую связь, которая не ставит дочернюю сущность в зависимость от родительской. Этот тип связи называется неидентифицирующей связью. В ERwin такая связь обозначается пунктирной линией с жирной точкой на конце, соответствующем дочерней связи.
При неидентифицирующей связи атрибуты первичного ключа родительской сущности мигрируют в область данных (неключевая область), которая расположена под чертой в дочерней сущности.
Варианты реализации связей в логической модели показаны на рисунке 6.12-6.14. При задании связи ключ из главной (в примере из стержневой) таблицы мигрирует в зависимую (характеристическую) таблицу.
Рис. 6.12 – Идентифицирующая связь типа один-ко-многим между сущностями «Отдел» и «Сотрудник», ключи мигрируют
в состав ключевых полей
Рис. 6.13 – Неидентифицирующая связь типа один-ко-многим между
сущностями «Отдел» и «Сотрудник», ключи мигрируют в
состав описательных полей. Внешний ключ может
содержать значение NULL (связь необязательная)
Рис. 6.14 – Неидентифицирующая связь типа один-ко-многим между
сущностями «Отдел» и «Сотрудник», ключи мигрируют в
состав описательных полей. Внешний ключ имеет значение
NOT NULL (связь обязательная)
6.3.3.5. Связь многие-ко-многим
Связь многие-ко-многим отображается на уровне логической модели данных. Отметим, что обозначение связи на схеме еще не позволяет запоминать конкретные сведения о связях между экземплярами сущности, которых будет много. Запоминать множество связей могут только таблицы с мигрирующими туда ключами. При реализации на уровне физической модели связь многие-ко-многим заменяется промежуточной таблицей.
Рис. 6.15 – Связь типа многие-ко-многим в логической модели между
сущностями «Товар» и «Клиент», ключи не мигрируют
На уровне физической модели связь многие-ко-многим может быть обозначена (рис. 6.26), но реализуется она в виде промежуточной таблицы (рис. 6.27). В промежуточной таблице Товар_Клиент (такое название по умолчанию) можно хранить сведения о том, кто из клиентов какой из товаров заказывал.
Рис. 6.16 – Обозначение связь типа многие-ко-многим в физической
модели данных
Рис. 6.17 – Реализация связи типа многие-ко-многим в физической
модели данных в виде ассоциативной (в частности,
именующей) таблицы Товар_Клиент
Естественно, таблицу Товар_Клиент можно сразу ввести на уровне логической модели данных.
6.3.3.6. Типы сущностей и иерархия наследования
Связи определяют, является ли сущность независимой или зависимой. Зависимые сущности:
Характеристическая - зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характеристиках родительской сущности.
Пример. Сущность Сотрудник имеет характеристику – Увлечения.
Ассоциативная - сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей.
Пример. Таблица связи "Товар-Клиент" на рис 6.17. при дополнении ее атрибутами, например, Количество и Дата_Заказа.
Именующая - частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрирующих в качестве внешнего ключа)
Пример. Таблица связи "Товар-Клиент" на рис 6.17 только с внешними ключами.
Категориальная - дочерняя сущность в иерархии наследования.
Иерархии наследования (или иерархия категорий) - представляет собой особый тип объединения сущностей, которые разделяют общие характеристики. Например, в организации работают служащие, занятые полный рабочий день (постоянные служащие) и совместители. Из их общих свойств можно сформировать обобщенную сущность Сотрудник, чтобы представить информацию, общую для всех типов служащих. Специфическая для каждого типа информация может располагаться в категориальных сущностях (потомках) Постоянный сотрудник и Совместитель.
В полной категории каждому экземпляру родового предка обязательно соответствует экземпляр в каком-либо потомке, т.е. каждый служащий обязательно является либо совместителем, либо консультантом, либо постоянным сотрудником.
В IDEF1X выделяют два типа иерархии категории (наследования): полная и неполная.
Полная категория означает, что отображены все возможные варианты сущностей-потомков.
Неполная категория означает, что категория еще не достроена полностью, и предполагается наличие других сущностей-потомков. Тогда в родовом предке могут существовать экземпляры, которые не имеют соответствующих экземпляров в потомках. Такая категория будет неполной.
Возможна также комбинация полной и неполной категорий.
Создание категориальной связи:
установить курсор на кнопке категории в палитре инструментов выбрать категорию левой кнопкой мыши;
щелкнуть сначала по родовому предку, потом - по потомку;
для установления второй связи в иерархии категорий сначала щелкнуть по символу категории, потом по второму потомку.
Редактирование категории - щелкнуть правой кнопкой мыши по символу категории. В контекстном меню - пункт Subtype Relationship Editor. Указать дискриминатор категории (Discriminator Attribute Choice) (например - атрибут Тип в родовом предке) и тип категории - полная/неполная (Complete/Incomplete).
Стадии построения иерархии наследования:
а) Определение сущностей с общими (по определению) атрибутами
Пример 1: Постоянный сотрудник и Совместитель
Пример 2: Транзисторы низкочастотные, транзисторы высокочастотные
б) Перенос общих атрибутов в сущность - родовой предок
Пример 1: Постоянный сотрудник и Совместитель - > Сотрудник
Пример 2: Транзисторы низкочастотные, транзисторы высокочастотные -> транзистор
в) Создание неполной структуры категорий
Создается категориальная связь от новой сущности - родового предка - к старым сущностям - потомкам. Новая сущность дополняется атрибутом-дискриминатором категории – тип.
г) Создание полной структуры категорий
Производится дополнительный поиск сущностей, имеющих общие по смыслу атрибуты с родовым предком. Общие атрибуты переносятся в родового предка и категория преобразуется в полную. Некоторые не общие атрибуты могут быть перенесены в сущность-потомка.
Пример 1: консультант
Пример 2: транзисторы сверхвысокочастотные.
д) Комбинация полной и неполной структур категорий
При необходимости создание иерархии категорий можно продолжить.
