
- •В.В. Мокеев методология моделирования данных в среде erwin
- •Оглавление
- •Тема 1. Создание диаграммы сущность-связь Основные цели
- •Теоретическая часть
- •Учебное задание
- •Технология выполнения учебного задания
- •Рекомендации при выборе первичного ключа.
- •Контрольные вопросы
- •Самостоятельное задание
- •Тема 2. Разработка модели данных, основанной на ключах Основные цели
- •Теоретическая часть
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Самостоятельное задание
- •Тема 4. Создание физического уровня модели Основные цели
- •Теоретическая часть
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Учебное задание
- •Технология выполнения учебного задания
- •Контрольные вопросы
- •Самостоятельное задание
- •Приложение 1. Методология моделирования данныхIdef1x
- •Диаграмма сущность-связь
- •Сущность
- •Именование сущностей
- •Описание сущностей
- •Атрибут
- •Тип связи
- •Идентифицирующая и неидентифицирующая связи
- •Связи типа «один-ко-одному», «один-ко-многим», «многие ко-многим»
- •Имя связи
- •Мощность связи
- •Правила ссылочной целостности
- •Модель данных, основанная на ключах
- •Правила ссылочной целостности
- •Зависимые и независимые сущности.
- •Идентифицирующие и неидентифицирующие связи.
- •Связь «многие ко многим»
- •Распространенные ошибки при моделировании сущностей и выборе ключей
- •Моделирование ролей
- •Перегрузка сущностей
- •Избыточные сущности
- •Выбор неправильного первичного ключа
- •Использование неудачных имен сущностей
- •Использование неудачных описаний сущностей
- •Полная атрибутивная модель
- •Нормализация
- •Денормализация
- •Создание физического уровня модели
- •Приложение 2. Наиболее часто задаваемые вопросы
Избыточные сущности
Избыточными являются сущности, имеющие различные имена, но содержащие информацию о сходных концепциях. Английский язык включает много слов для представления одних и тех же вещей. Один из способов обнаружить такие сущности – это поиск сущностей, содержащих сходные атрибуты. Сравните описания каждой из таких сущностей, чтобы определить, не представляют ли они сходные концепции. Избыточные сущности часто появляются в результате тенденции к моделированию ролей в качестве сущностей.
Например, сущности УПРАВЛЕНЕЦ и СОТРУДНИК могут содержать сходную информацию, поскольку обе являются ролями, которые может играть экземпляр сущности ПЕРСОНА.
Выбор неправильного первичного ключа
Выбор неправильного первичного ключа означает, что вы выбрали первичный ключ, не выдерживающий тестирования. Распространенными ошибками, связанными с первичным ключом, являются:
Не уникальность: первичный ключ не является уникальным для каждого из экземпляров. Например, разработчик модели может считать, что номер социального страхования является уникальным для каждой ПЕРСОНЫ. Однако номер социального страхования может повторно использоваться в том случае, если первоначальный его владелец скончался.
Требуемое значение/неопределенность: первичный ключ не имеет значения для некоторых из экземпляров. Например, не каждый экземпляр сущности ПЕРСОНА будет иметь номер социального страхования. Иностранцы и маленькие дети – вот две категории людей, у которых он будет отсутствовать.
Использование неудачных имен сущностей
Непонятные, неоднозначные или неточные имена затрудняют для новых пользователей и команд разработчиков повторное использование или расширение существующей модели.
Не используйте аббревиатуры или акронимы в качестве части имени. Аббревиатуры и акронимы открыты для неправильной интерпретации и даже могут иметь разное значение в разных предметных областях.
Не включайте месторасположение в качестве части имени. Как правило, вам неизбежно потребуется и другое месторасположение. Имя с указанием расположения является признаком того, что вы моделируете конкретный экземпляр вместо класса сущностей.
Использование неудачных описаний сущностей
Не используйте описаний, заимствованных только из словаря. Описания из словаря не будут включать значимую для бизнеса информацию.
Не пытайтесь перефразировать имя сущности. Не используйте имя сущности в ее описании.
Неясные, расплывчатые или, что еще хуже, неполные описания затрудняют повторное использование и расширение существующей модели. Пользователь не сможет проверить, содержит ли сущность всю необходимую информацию.
При этом значительно повышается риск возникновения перегруженных сущностей и использования их для хранения информации о разных объектах.
Концепции, которые кажутся очевидными для всех участников рабочих сессий, могут перестать быть столь очевидными с течением времени, когда перед новой командой разработчиков будет поставлена задача расширения существующей модели.
Полная атрибутивная модель
Полная атрибутивная модель — это логическая модель, наиболее детально представляющая структуру данных, представленных в третьей нормальной форме.
Нормализация
Нормализация – процесс проверки и реорганизации сущностей и атрибутов с целью удовлетворения требований к реляционной модели данных. Нормализация позволяет быть уверенным, что каждый атрибут определен для своей сущности, значительно сократить объем памяти для хранения информации и устранить аномалии в организации хранения данных. В результате проведения нормализации должна быть создана структура данных, при которой информация о каждом факте хранится только в одном месте. Процесс нормализации сводится к последовательному приведению структуры данных к нормальным формам – формализованным требованиям к организации данных. Известно 6 нормальных форм:
первая нормальная форма (1NF);
вторая нормальная форма (2NF);
третья нормальная форма (3NF);
нормальная форма Бойса-Кодда (усиленная 3NF);
четвертая нормальная форма (4NF);
пятая нормальная форма (5NF).
На практике обычно ограничиваются приведением данных к третьей нормальной форме. Нормальные формы основаны на понятии функциональной зависимости. Приведем формальное определение для функциональной зависимости.
Функциональная зависимость (FD).Атрибут В сущности Е функционально зависит от атрибута А сущности Е тогда и только тогда, когда каждое значение атрибута А сущности Е связало с ним точно одно значение атрибута В сущности Е, т. е. А однозначно определяет В.
Полная функциональная зависимость.Атрибут В сущности Е полностью функционально зависит от ряда атрибутов А сущности Е тогда и только тогда, когда В функционально зависит от А и не зависит ни от какого подряда А.
Рассмотрим нормальные формы.
Первая нормальная форма (1NF).Сущность находится в первой нормальной форме тогда и только тогда, когда все атрибуты содержат атомарные значения. Среди атрибутов не должно встречаться повторяющихся групп, т. е. несколько значений для каждого экземпляра.
Для приведения сущности к первой нормальной форме следует разделить сложные атрибуты на атомарные.
Вторая нормальная форма (2NF).Сущность находится во второй нормальной форме, если она находится в первой нормальной форме и каждый неключевой атрибут полностью зависит от первичного ключа (не должно быть зависимости от части ключа). Вторая нормальная форма имеет смысл только для сущностей, имеющих сложный первичный ключ.
Для приведения сущности ко второй нормальной форме следует:
выделить атрибуты, которые зависят только от части первичного ключа,
создать новую сущность и перенести в нее атрибуты с одной и той же зависимостью от части первичного ключа;
поместить атрибуты, зависящие от части ключа, в их собственную (новую) сущность;
установить идентифицирующую связь от прежней сущности к новой.
Третья нормальная форма (3NF).Сущность находится в третьей нормальной форме, если она находится во второй нормальной форме и никакой неключевой атрибут не зависит от другого неключевого атрибута (не должно быть взаимозависимости между неключевыми атрибутами).
Для приведения сущности к третьей нормальной форме следует:
выделить атрибут или группу атрибутов, которые зависят только от неключевого(ых) атрибут(ов) сущности;
создать новую сущность и перенести в нее атрибуты с одной и той же зависимостью от неключевого атрибута;
использовать атрибут(ы), определяющий эту зависимость, в качестве первичного ключа новой сущности;
установить неидентифицирующую связь от новой сущности к старой .
Поддержка нормализации в ERwin.ERwin не содержит полного алгоритма нормализации и не может проводить нормализацию автоматически, однако его возможности облегчают создание нормализованной модели данных. Запрет на присвоение неуникальных имен атрибутов в рамках модели (при соответствующей установке опции Unique Name) облегчает соблюдение правила «один факт — в одном месте». Имена ролей атрибутов внешних ключей и унификация атрибутов также облегчают построение нормализованной модели.