- •4.1 Цель работы
- •4.2 Методические указания
- •4.2.1 Общие сведения
- •4.2.2 Назначение системы
- •4.2.3 Основная функциональность системы и технология ее использования
- •4.2.4 Этапы концептуального и логического проектирования бд предметной области в классической теории бд
- •4.2.4.2 Нормализация данных
- •4.3 Порядок выполнения работы
- •4.4 Контрольные вопросы
4.2.4 Этапы концептуального и логического проектирования бд предметной области в классической теории бд
Подготовительный этап включает в себя:
разработка спецификации требований (описание пользователей, требования к данным, требования к отчетам пользователей)/техническое задание;
разработка бизнес правил БД и глоссария БД.
В классической теории концептуальное моделирование включает в себя следующие этапы:
определение типов сущностей;
определение типов связей;
построение предварительной концептуальной модели (в виде ER-диаграммы);
анализ модели на достаточность всех связей;
определение атрибутов и связывание их с типами сущностей и связей;
определение потенциальных ключей и выбор первичного;
специализация/генерализация типов сущности;
построение итоговой концептуальной модели данных (ER-диаграмма);
В классической теории логическое моделирование включает в себя следующие этапы по коррекции концептуальной модели:
проверка на «повторяющиеся» данные;
преобразование связей типа M:N;
удаление множественных атрибутов за счет добавления новой сущности;
преобразование сложных связей (не бинарных) в сущности;
преобразование связей, имеющих атрибуты, в сущности;
проверка/преобразование рекурсивных связей;
проверка связей типа 1:1;
удаление избыточных связей;
проверка модели с помощью правил нормализации;
создание итоговой ER-диаграммы логической модели и внесение изменений в документацию;
определение набора отношений исходя из структуры логической модели данных.
4.2.4 Создание логической модели данных Erwin (по классической теории концептуальная модель и не полная логическая)
4.2.4.1 Создание сущностей, атрибутов и связей
Основными компонентами ER-диаграмм являются сущности, связи и атрибуты. Для создания сущностей и связей применяется Палитра инструментов – ERwin Toolbox (табл.4.1).
Для создания сущности необходимо воспользоваться кнопкой “Entity”, находящейся на панели инструментов. Выбрав данную кнопку и щелкнув мышкой на пустом поле, получим экземпляр сущности. В выделенном поле необходимо ввести название сущности – напр., «Student» (по умолчанию ее имя “Е/1”).
Таблица 4.1 – Кнопки ERwin Toolbox
Название кнопки |
Назначение |
|
Выбрать объекты для копирования, удаления или дальнейшего редактирования. Всегда переходите в этот режим после редактирования объекта |
|
Создать новую независимую сущность |
|
Создать полную подкатегорию |
|
Создать идентифицирующую связь между двумя сущностями |
|
Создать не идентифицирующую связь между двумя сущностями |
|
Создать неопределенную связь (многие ко многим) между двумя сущностями |
Для определения атрибутов необходимо щелкнуть правой кнопкой мыши по соответствующей сущности и выбрать пункт меню “Attribute Editor” (для вызова окна “Attribute Editor” можно также воспользоваться двойным щелчком на сущности). В появившемся окне необходимо задать имя атрибута, его тип, если атрибут является ключом, то поставить птичку в соответствующем поле.
ERwin позволяет устанавливать различные типы связи между сущностями. На концептуальном уровне можно установить идентифицирующую связь “один-ко-многим”, связь “многие-ко-многим” и неидентифицирующую связь “один-ко-многим”. В использовавшейся нотации IDEFIX различаются зависимые (слабые) и независимые (сильные) сущности, причём тип сущности определяется её связью с другими сущностями.
Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. При установлении такой связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция называется миграцией атрибутов. В дочерней сущности атрибуты помечаются как внешний ключ (Foreign Key) – (FK).
При установлении неидентифицирующей связи дочерняя сущность остаётся независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав не ключевых компонентов дочерней сущности, т.е. становиться внешним ключом.
Для редактирования свойств связи следует "кликнуть" правой кнопкой мыши по связи и выбрать на контекстном меню пункт Relationship Editor.
В закладке General появившегося диалога можно задать мощность, имя и тип связи.
Мощность связи (Cardinality) - служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.
Различают четыре типа мощности (рис. 4.1):
общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности не помечается каким-либо символом;
символом Р помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);
символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения);
цифрой помечается случай точного соответствия, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности.
По
умолчанию символ, обозначающий мощность
связи, не показывается
на диаграмме. Для отображения имени
следует в контекстном меню, которое
появляется, если щелкнуть правой кнопкой
мыши по любому месту диаграммы,
не занятому объектами модели, выбрать
пункт Display
Options/Relationship
и затем включить опцию Cardinality.
Рисунок 4.1 – Обозначения мощности
Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим идентифицирующей или неидентифицируюшей достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child так и Child-to-Parent.
