
- •Оглавление
- •1.1. Основные понятия
- •1.2. Жизненный цикл по
- •1.3. Модели жизненного цикла по
- •Каскадная модель жц:
- •Спиральная модель жц:
- •2. Методологии и технологии проектирования ис
- •2.1. Общие требования к методологии и технологии
- •2.2. Структура комплекта документов
- •2.3. Наиболее перспективные и приемлемые технологии разработки по
- •2.3.1. Технологии, базирующиеся на case–средствах Computer Associates
- •2.3.2. Технологии, базирующиеся на case–средствах ibm Rational
- •2.3.2.1. Краткая характеристика основных технологических программных продуктов ibm Rational
- •3. Методология функционального моделирования idef0
- •3.1. Концепция методологии функционального моделирования idef0
- •3.2. Основные определения (понятия) методологии и языка idef0
- •3.3. Синтаксис графического языка idef0
- •3.4. Семантика языка idef0
- •3.5. Имена и метки
- •3.6. Отношения блоков на диаграммах
- •3.7. Диаграммы idef0
- •3.8. Дочерняя диаграмма
- •3.9. Родительская диаграмма
- •3.10. Свойства диаграмм
- •3.10.1. Стрелки как ограничения
- •3.10.2. Параллельное функционирование
- •3.10.3. Ветвление и слияние сегментов стрелок
- •3.11. Создание диаграмм idef0 в среде AllFusionProcess Modeler
- •3.12. Диаграммы dfd
- •3.13. Пример проектирования функций подсистемы обработки и хранения данных
- •4. Idef3 – методология описания и моделирования процессов
- •4.1. Функциональный элемент
- •4.2. Элемент связи
- •4.2.1. Связи старшинства
- •4.2.2. Сдерживаемые связи старшинства
- •4.2.3. Относительные связи
- •4.2.4. Связь поток объектов
- •4.3. Перекресток
- •4.3.1. Типы перекрестков
- •4.3.2. Значения комбинаций перекрестков
- •4.4. Декомпозиция описания процесса
- •4.5. Примеры
- •5. Язык моделирования баз данных idef1x
- •5.1. Сущности
- •5.2. Связи и отношения
- •5.2.1. Мощность связей
- •5.3. Ключи
- •5.3.1 Внутренние и внешние ключи
- •5.3.2. Ссылочная целостность
- •5.4. Домены
- •5.5. Представления
- •5.6. Нормализация данных
- •5.7. Примеры построения диаграмм
- •5.8. Общие сведения о среде проектирования AllFusion Erwin Data Modeler
- •5.8.1. Построение логической модели
- •5.8.1.1. Диаграмма сущность – связь
- •5.8.1.2. Модель данных на основе ключа
- •5.8.1.3. Полная атрибутивная модель
- •5.8.2. Создание новой модели
- •5.8.3. Создание физического уровня базы данных на основе логического
- •5.8.4. Редактирование таблиц
- •5.8.5. Редактирование столбцов таблицы
- •5.8.6. Редактирование ключей и индексов таблицы
- •5.8.7. Редактирование связей таблиц
- •5.8.8. Сохранение модели базы данных
- •5.8.9. Генерация операторов для создания базы данных
- •5.8.10. Подготовка исходных данных для разработки новой версии бд
- •6. ЯзыкUml, модели по, объектно–ориентированный анализ и проектирование по.
- •6.1. Основные элементы языка uml
- •6.1.1. Сущности
- •6.1.2. Отношения
- •6.1.3. Диаграммы
- •6.2. Диаграмма вариантов использования как концептуальное представление бизнес–системы в процессе ее разработки
- •6.2.1. Базовые элементы диаграммы вариантов использования
- •6.2.2. Отношения на диаграмме вариантов использования
- •6.2.2.1. Отношение ассоциации
- •6.2.2.2. Отношение включения
- •6.2.2.3. Отношение расширения
- •6.2.2.4. Отношение обобщения
- •6.2.3. Дополнительные обозначения языка uml для бизнес–моделирования
- •6.2.4. Примеры use case и их реализация
- •6.3. Диаграммы последовательности
- •6.3.1. Сообщения на диаграмме последовательности
- •6.3.2. Ветвление потока управления
- •6.3.3. Пример диаграммы последовательности
- •6.4. Диаграмма кооперации
- •6.4.1. Объекты диаграммы кооперации и их графическое изображение
- •6.4.2. Кооперация объектов
- •6.4.3. Пример совместного использования диаграмм кооперации и последовательности
- •6.5. Сравнение диаграммы последовательности и диаграммы кооперации
- •6.6. Диаграммы состояний
- •6.6.1. Составное состояние и подсостояние
- •6.6.1.1. Последовательные подсостояния
- •6.6.1.2. Параллельные подсостояния
- •6.6.1.3. Несовместимые подсостояния
- •6.6.2. Исторические состояния
- •6.6.3. Сложные переходы и псевдосостояния
- •6.6.4. Состояние синхронизации
- •6.6.5. Рекомендации по построению диаграмм состояний
- •6.6.6. Примеры диаграмм состояний
- •6.7. Диаграммы деятельностей
- •6.7.1. Примеры диаграмм деятельностей
- •6.8. Классы
- •6.8.1. Области видимости и действия, кратность и иерархия классов
- •6.8.2. Отношения между классами
- •6.8.2.1. Отношение ассоциации
- •6.8.2.2. Отношение обобщения
- •6.8.2.3. Отношение агрегации
- •6.8.2.4. Отношение композиции
- •6.8.3. Примеры диаграмм классов
- •6.9. Компоненты
- •6.9.1. Виды компонентов
- •6.9.2. Отношения между компонентами
- •6.9.3. Компоненты и классы
- •6.9.4. Компоненты и интерфейсы
- •6.9.5. Варианты графического изображения компонентов
- •6.9.6. Пример диаграммы компонентов
- •6.10. Диаграмма развертывания
- •6.10.1. Узел диаграммы развертывания
- •6.10.2. Отношения между узлами диаграммы
- •6.10.3. Пример диаграммы развертывания
- •Литература
5.2. Связи и отношения
В процессе моделирования сущности связываются отношениями, например, отдел А «состоит из» из сотрудников В, сотрудник из В «пишет» программу С и Д. В данном случаи, связь является логическим отношением между сущностями. При таком связывании сущность А является родительской для сущности В, а сущность В является потомком (дочерней) для сущности А.
Сами сущности могут быть «зависимые» и «независимые», а связи «идентифицирующими» – между «независимой» и «зависимой» сущностями или «не идентифицирующими», дочерняя сущность остается независимой. В случае если потомок связан «идентифицирующей» связью, дочерняя сущность «зависит» от родительской, то каждое значение родительской сущности связано с одним или более значениями дочерней сущности, и отображает связи, которые не могут быть без родительской сущности. В этом случае, любое значение дочерней сущности идентифицируется с помощью некоторого значения родительской сущности и атрибуты первичного ключа родительской сущности мигрируют в атрибуты первичного ключа дочерней сущности.
Если же связи между двумя сущностями не могут быть идентифицированы, но существуют, сущности «независимые», то любое значение дочерней сущности однозначно определяется без значения родительской сущности, и атрибуты первичного ключа родительской сущности мигрируют в состав не ключевых атрибутов дочерней сущности. В языке IDEF1x, «независимые» сущности изображаются прямоугольником с острыми углами, а «зависимые» прямоугольником с овальными углами, сами связи изображаются прямой линией с точкой, смотрите рис. 5.1. (прерывистой – «не идентифицирующие» или сплошной – «идентифицирующие»).
5.2.1. Мощность связей
Спецификация мощности связей (отношений) служит для обозначения количества экземпляров (значений) дочерних сущностей связанных с соответствующим значением родительской сущности. Здесь приняты следующие обозначения: Ра – родительская сущность, Сh – дочерняя:
Рa
Сh 0, 1 или много
Pa
Ch 1 или много
Р
Pa
Ch 0 или 1
z
Pa
Ch точно N (7)
7
Pa
Ch от n до m
N – m
Pa
Ch многие – ко многим, отношения
не установлены, должны быть разрешены
позже.
На рис. 5.2. приведен диалог установления мощности отношений.
Рис. 5.1. Пример идентифицирующей связи
Рис. 5.2. Мощности отношений
5.3. Ключи
Как уже отмечалось выше, каждый экземпляр сущности должен быть уникален, и каждое значение атрибутов должно отличаться одно от другого. Для идентификации каждого экземпляра сущности используется первичный ключ – PK (Primary Key).
Рассмотрение атрибутов – кандидатов для формирования первичного ключа и его выбор (а он может быть только один для таблицы) требуют знания данных предметной области. Существуют строгие правила, использующиеся при выборе первичного ключа. Атрибут (атрибуты) первичного ключа должны:
уникально идентифицировать значение сущности;
не должны включать значение NULL;
не должны изменяться через промежуток времени. Всякий элемент сущности берет свою идентичность от ключа. Если ключ поменяется, то это уже другой элемент;
должен быть как можно более коротким, что облегчать индексацию и восстановление данных. Если нужно использовать ключ, который является комбинацией ключей из других сущностей, то каждая часть ключа должна придерживаться этих правил.
Связи между сущностями реализуются с помощью внешних ключей – FK (Foreign Key), которые образуются из PK путем их миграции из родительской сущности в дочернюю сущность. Сущности и их связи, ключи PK и FK – это основные элементы модели данных. Кроме ключей PK и FK – при построении модели данных, используются альтернативные и инверсные ключи – AK (Alternate Key) и IK (Inversion Key). Альтернативные ключи, так же как и PK, обеспечивают уникальный доступ к значениям сущности, но по другим наборам атрибутов, а инверсные ключи, обеспечивают доступ к некоторому набору значений сущности, имеющего общие характеристики.