
- •Содержание
- •Аннотация
- •Введение
- •1 Описание предметной области и выявление требований, предъявляемых к информационной системе
- •Описание предметной области
- •1.2 Выявление требований, предъявляемых к информационной системе
- •2 Разработка и описание функциональной модели
- •2.1 Построение контекстной диаграммы
- •2.2 Декомпозиция моделируемой системы
- •3 Создание локальных концептуальных моделей
- •3.1 Выявление и определение сущностей
- •3.2 Определение связей между сущностями
- •3.3 Определение атрибутов сущностей и первичных ключей
- •3.4 Определение доменов
- •3.5 Создание диаграммы «сущность-связь»
- •4 Построение и проверка локальных логических моделей данных
- •4.1 Преобразование локальных концептуальных моделей данных в локальные логические модели
- •4.2 Проверка модели с помощью правил нормализации
- •4.3 Создание диаграмм «сущность – связь»
- •4.4 Определение требований поддержки целостности данных.
- •5. Создание и проверка глобальной логической модели данных
- •Слияние сущностей с одинаковыми именами и одинаковыми первичными ключами.
- •Включение связей, уникальных для каждого локального представления.
- •6 Разработка физической модели данных. Прямое проектирование
- •6.1. Построение физической модели данных
- •6.2. Описание процесса прямого проектирования
- •7 Проектирование приложения
- •7.1 Описание таблиц базы данных
- •7.2. Разработка приложения
- •8 Результаты тестирования
- •9. Управление проектом
- •Заключение
- •Список литературы
- •Лист регистрации изменений
- •Приложения
3.4 Определение доменов
После определения атрибутов и их типов можно выделить несколько полученных доменов. Домен - это набор допустимых значений для одного или нескольких атрибутов. Каждый атрибут определяется на некотором домене. Два или более атрибутов могут определяться на одном или более домене.
Для данной модели требуется несколько доменов:
домен «Логический». Имитирует логический тип, то есть данные могут принимать лишь значение 1 или 0. На данном домене обозначен атрибут «Флаг активности» сущности «Абонементы»;
домен «Занятия». Значения данного домена могут быть равными 1, 4, 8 или 12. На этом домене обозначен атрибут «Количество занятий» из сущностей «Прейскурант на услуги» и «Абонементы». Это связано с тем, что в фитнес клубе есть 4 вида абонементов, которые выписываются либо на 1, либо на 4, либо на 8, либо на 12 занятий.
3.5 Создание диаграммы «сущность-связь»
На этом этапе с помощью инструментального средства ERwin создаются окончательные варианты ER-диаграмм, отображающих локальные концептуальные модели данных, характеризующие представления отдельных пользователей о предметной области приложения.
На основании информации, полученной в результате выполнения предыдущих этапов, изобразим в виде ER-диаграммы локальные концептуальные модели данных, соответствующие диаграммам потоков данных для блока «Подобрать индивидуальную программу для клиента», изображенную на рисунке 9, для блока «Оформить абонементы», изображенного на рисунке 10, для блока «Произвести учет клиентов», изображенного на рисунке 11.
Рисунок 9 – Локальная концептуальная модель, соответствующая блоку «Подобрать индивидуальную программу для клиента»
Рисунок 10 – Локальная концептуальная модель, соответствующая блоку «Оформить абонементы»
Рисунок 11 – Локальная концептуальная модель, соответствующая блоку «Произвести учет клиентов»
4 Построение и проверка локальных логических моделей данных
4.1 Преобразование локальных концептуальных моделей данных в локальные логические модели
В результате выполнения первого этапа был получен набор локальных концептуальных моделей данных. Однако эти модели могут содержать некоторые структуры данных, реализация которых в обычных типах СУБД будет затруднена. На втором этапе подобные структуры данных преобразуются в такую форму, которая не вызовет затруднений при их реализации в среде существующих СУБД. Для этого необходимо выполнить следующие действия:
Удаление связи многие ко многим. Если в концептуальной модели присутствуют связи типа M:N ("многие ко многим"), то их следует устранить путем определения некоторой промежуточной сущности. Связь типа M:N заменяется двумя связями типа 1:М, устанавливаемыми со вновь созданной сущностью.
В данной модели связь многие ко многим существует между сущностями «Абонементы» и «Расписание занятий». Для каждого абонемента следует указывать код расписания занятий, на которые он будет приходить, так как одна и та же услуга может проводиться в разное время. И на каждое занятие может быть записано несколько абонементов. На рисунке 12 изображено отношение многие ко многим между сущностями «Расписание занятий» и «Абонементы».
Рисунок 12-Связь многие ко многим
Чтобы устранить отношение многие ко многим вводится промежуточная таблица «Время посещения занятий» и создаются две новых связи типа один ко многому. Появляется еще один атрибут «Количество занятий», в котором указывается число занятий. Результат преобразования изображен на рисунке 13.
Рисунок 13-Преобразование связи многие ко многим
Аналогично удалим отношение многие ко многим между сущностями «Услуги клиентов» и «Расписание занятий».
Удаление сложных связей. Проводится удаление любых сложных связей, присутствующих в построенных локальных концептуальных моделях. Сложной называется связь, существующая между тремя и больше типами сущностей. Сложная связь устраняется с помощью промежуточной сущности и необходимого количества связей типа 1:М, устанавливаемых со вновь созданной сущностью.
Удаление рекурсивных связей. Рекурсивными называются такие связи, в которых сущность некоторого типа взаимодействует сама с собой. Эти связи устраняются посредством определения некоторой промежуточной сущности.
Удаление связей, имеющих атрибуты. Присутствие связей с атрибутами может указывать на наличие в модели еще не выделенных сущностей. Такие связи должны быть преобразованы путем создания новой сущности.
Удаление множественных атрибутов. Среди атрибутов не должно встречаться повторяющихся групп, т.е. нескольких значений для каждого экземпляра. Это объясняется тем, что размера поля может не хватить для хранения данных, по такой колонке невозможно построить индекс и т.д. Необходимо ввести новую сущность с названием по данному атрибуту и установить идентифицирующую связь с исходной сущностью.