
- •В.В. Мокеев методология моделирования данных в среде erwin
- •Оглавление
- •Тема 1. Создание диаграммы сущность-связь Основные цели
- •Теоретическая часть
- •Учебное задание
- •Технология выполнения учебного задания
- •Рекомендации при выборе первичного ключа.
- •Контрольные вопросы
- •Самостоятельное задание
- •Тема 2. Разработка модели данных, основанной на ключах Основные цели
- •Теоретическая часть
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Самостоятельное задание
- •Тема 4. Создание физического уровня модели Основные цели
- •Теоретическая часть
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Самостоятельное задание
- •Приложение 1. Методология моделирования данныхIdef1x
- •Диаграмма сущность-связь
- •Сущность
- •Именование сущностей
- •Описание сущностей
- •Атрибут
- •Тип связи
- •Идентифицирующая и неидентифицирующая связи
- •Связи типа «один-ко-одному», «один-ко-многим», «многие ко-многим»
- •Имя связи
- •Мощность связи
- •Правила ссылочной целостности
- •Модель данных, основанная на ключах
- •Правила ссылочной целостности
- •Зависимые и независимые сущности.
- •Идентифицирующие и неидентифицирующие связи.
- •Связь «многие ко многим»
- •Распространенные ошибки при моделировании сущностей и выборе ключей
- •Моделирование ролей
- •Перегрузка сущностей
- •Избыточные сущности
- •Выбор неправильного первичного ключа
- •Использование неудачных имен сущностей
- •Использование неудачных описаний сущностей
- •Полная атрибутивная модель
- •Нормализация
- •Денормализация
- •Создание физического уровня модели
- •Приложение 2. Наиболее часто задаваемые вопросы
Контрольные вопросы
1. Сколько уровней имеет логическая модель данных в соответствии с нотацией IDEF1X?
2. Сколько уровней имеет физическая модель данных в соответствии с нотацией IDEF1X?
3. Какие работы выполняются на стадии «Проектирование» жизненного цикла базы данных?
4. Что такое диаграмма сущность-связь?
5. В чем цель диаграммы сущность-связь?
6. Какая связь называется идентифицирующей?
7. Какая связь называется неидентифицирующей?
8. Что включает в себя диаграмма сущность-связь?
9. Какие кнопки панели инструментов позволяют изменить уровень просмотра модели?
10. Как добавить сущность на диаграмму?
11. Что называется сущностью?
12. Сформулируйте принцип именования сущностей.
13. Что показывает взаимосвязь между сущностями?
14. Что такое мощность связи?
15. Что такое имя роли (функциональное имя)?
16. Опишите механизм проверки адекватности логической модели.
Самостоятельное задание
Добавьте в разработанную модель новые сущности: ФИЛИАЛ, СОТРУДНИК, АДМИНИСТРАТОР. Сущности СОТРУДНИК, АДМИНИСТРАТОР, АГЕНТ образуют иерархию наследования. Сотрудник является обобщенной сущностью, а АДМИНИСТРАТОР и АГЕНТ – категориальными сущностями.
Тема 2. Разработка модели данных, основанной на ключах Основные цели
Изучить методы определения ключевых атрибутов сущностей.
Освоить инструментарий ERWin.
Теоретическая часть
Модель данных, основанная на ключах– это логическая модель, включающая описание всех сущностей и ключевых атрибутов, которые соответствуют предметной области.
Целью этой модели является дальнейшая детализация модели сущность-связь и идентификация сущностей путем выбора ключевых атрибутов (ключей).
Первичный ключ– это набор атрибутов, значение которых однозначно определяют каждый экземпляров сущности.
В качестве первичных ключей могут быть использовано несколько атрибутов или групп атрибутов. Атрибуты, которые могут быть выбраны первичными ключами, называются кандидатами в ключевые атрибуты (потенциальные атрибуты).
Правила выбора первичного ключа:
Уникальным образом идентифицировать экземпляр сущности.
Не использовать NULL значений.
Не изменяться со временем. Экземпляр идентифицируется при помощи ключа. При изменении ключа, соответственно меняется экземпляр.
Быть как можно более короткими для использования индексирования и получения данных.
Если вам нужно использовать ключ, являющийся комбинацией ключей из других сущностей, убедитесь в том, что каждая из частей ключа соответствует правилам.
При выборе первичного ключа для сущности, разработчики модели часто используют суррогатный ключ.
Суррогатный ключ– это произвольный номер, который уникальным образом определяет запись в сущности. Атрибут «Номер сотрудника» является примером суррогатного ключа.
Суррогатный ключлучше всего подходит на роль первичного ключа потому, что является коротким и быстрее всего идентифицирует экземпляры в объекте. К тому же суррогатные ключи могут автоматически генерироваться системой так, чтобы нумерация была сплошной, т.е. без пропусков.
Альтернативный ключ– это потенциальный ключ, который не выбран первичными. С помощью альтернативных ключей часто отображают различные индексы доступа к данным в конечной реализации реляционной базы.
Внешний ключ – это атрибут(ы) первичного ключа родительской сущности, переданные дочерней сущности через их связь.
При генерации схемы базы данных на основе опций логической модели, задаваемых во вкладке Rolename/RI Actions, будут сгенерированы правила декларативной ссылочной целостности, которые должны быть предписаны для каждой связи, и триггеры, обеспечивающие ссылочную целостности.
Триггеры представляют собой программы, выполняемые всякий раз при выполнении команд вставки, замены или удаления (INSERT,UPDATEилиDELETE).
Например, между сущностями Агент и Филиалсуществует идентифициующая связь. Что будет, если удалить филиал? Экземпляр сущности Агент не может существовать без филиала (атрибут первичного ключа «В каком филиале работает/Номер филиала» не может принимать значениеNULL); следовательно, нужно либо запретить удаление филиала, пока в ней числится хотя бы один агент.
Возможна установка следующих правил удаления (если таковые поддерживаются СУБД).
SET DEFAULT– при удалении записи атрибуту внешнего ключа присваивается значение по умолчанию. Например, при удалении филиала фирмы все агенты могут быть переведены в другой филиал.
NONE– при удалении записи значение атрибута внешнего ключа не меняется. Запись об агенте «повисает в воздухе», т. е. ссылается на несуществующий филиал. Такая ситуация характерна для «плоских» таблиц. Например, если информация об агентах и филиалах фирмы хранится в dbf-файлах, можно удалить запись о филиале, при этом файл агентов «ничего не будет знать» о том, что соответствующего филиала не существует. Поэтому в настольных или файл-серверных системах функциональность, обеспечивающая правила ссылочной целостности, реализуется в клиентском приложении.
RESTRICT – для удаления записи необходимо удалить все дочерние записи с внешним ключом, равным первичному ключу удаляемой записи. Например, для удаления филиала сначала нужно удалить всех агентов этого филиала.
CASCADE. – при удалении опорного экземпляра сущности (соответствующего концу связи «один») нужно удалить и все экземпляры сущности, соответствующие концу связи «многие». Например, вместе с филиалом фирмы будут удаляться все агенты данного филиала.
Правила удаления управляют тем, что будет происходить в базе данных при удалении строки. Аналогично правила вставки и обновления управляют тем, что будет происходить с базой данных, если строки изменяются или добавляются.