Нормализация

Понятие нормальных форм применимо к сущностям ER‑модели. Проведя нормализацию модели, мы получим нормализованную схему базы данных. Будем использовать классические определения нормальных форм [1, 2]. В модели "сущность-связь", пользуясь определениями нормальных форм, следует проверить каждую сущность и при необходимости провести ее нормализацию, т. е. разбить на две или более сущностей, находящихся в соответствующей нормальной форме. ERwin не позволяет проводить автоматическую нормализацию. Но простота создания новых сущностей и "перетаскивание" атрибутов в новые сущности облегчает нормализацию. Кроме того, запрет на присвоение неуникальных имен атрибутов в рамках модели облегчает соблюдение правила "один факт – в одном месте" [3], т. е. представление данных об одном объекте реального мира в одной сущности.

При соблюдении рекомендаций по выбору атрибутов, представленных в разделе 4.3, модель будет представлена в третьей нормальной форме.

При использовании ERwin более удобным, чем классическое определение нормальных форм, является использование бизнес‑нормальных форм [9]. Бизнес‑нормальные формы определяются в терминах приведения в эти формы.

Бизнес‑нормальные формы используют простые правила нормализации:

– размещайте повторяющиеся группы атрибуты в зависимых сущностях;

– убедитесь, что каждый факт в модели представлен только один раз;

– размещайте атрибуты, не зависящие от первичного ключа, в зависимых сущностях;

– устраняйте отношения многие-ко-многим.

Повторяющимися группами являются атрибуты, для которых единственный экземпляр сущности может иметь более одного значения. Например, сущность Сотрудник может иметь более одного навыка. Если, с точки зрения требований бизнеса, нам нужно знать уровень владения навыком для каждого сотрудника, и каждый сотрудник может иметь только два навыка, мы можем создать сущность, показанную на рис. 4.9. Здесь представлена сущность Сотрудник с двумя атрибутами для хранения навыков и уровня владения навыками для каждого.

Рис. 4.9. Пример использования повторяющихся групп

Проблема повторяющихся групп заключается в том, что мы не можем точно знать, сколько навыков может иметь сотрудник. В реальной жизни у некоторых людей есть один навык, у некоторых - несколько, а у некоторых - пока ни одного. Первая бизнес‑нормальная форма (1BNF) выносит повторяющиеся группы атрибутов в отдельную сущность. Эта сущность имеет составной ключ из атрибутов ключа исходной сущности и ключа повторяющейся группы. На рис. 4.10 представлена модель, приведенная к первой бизнес‑нормальной форме.

Рис. 4.10. Модель в 1BNF

Если один и тот же атрибут присутствует более чем в одной сущности и не является внешним ключом, то этот атрибут рассматривается как избыточный. Логическая модель не должна содержать избыточных данных.

Избыточность требует дополнительной памяти, однако, хотя эффективность использования памяти немаловажна, основная проблема заключается в сложности синхронизации избыточных данных.

В примере рис. 4.10 Название навыка зависит только от ID навыка, а Уровень владения навыком как от ID навыка, так и от ID сотрудника. Это приводит к повторению названия навыка столько раз, сколько сотрудников владеет навыком. Это так же усложняет изменение Названия навыка. Необходимо найти каждую запись с требуемым Названием навыка и изменить ее для каждого Сотрудник, владеющей этим навыком.

Вторая бизнес‑нормальная форма (2BNF) выносит атрибуты, частично зависящие от ключа, в отдельную сущность (рис. 4.11). У нас много сотрудников владеют одним навыком, а сотрудник может владеть несколькими навыками, эту особенность мы обсудим ниже.

Рис. 4.11. Модель в 2BNF

Каждый атрибут сущности должен зависеть от первичного ключа этой сущности. В примере атрибут Адрес учебного заведения зависит не от первичного ключа, а от атрибута Учебное заведение. В теории функциональных зависимостей такая связь называется транзитивной. Третья бизнес‑нормальная форма (3BNF) выносит атрибуты, не зависящие от первичного ключа, в отдельную сущность, где они полностью зависят от первичного ключа (рис. 4.12).

Рис. 4.12. Модель в 3BNF

На рис. 4.12 существует отношение многие-ко-многим между сущностями Сотрудник и Учебное заведение. Отношение точно отражает тот факт, что сотрудник окончить несколько учебных заведений, а одно учебное заведение могут окончить несколько сотрудников. Четвертая бизнес‑нормальная форма требует (4BNF), чтобы отражать многозначную зависимость с помощью отдельной ассоциативной сущности (рис. 4.13).

Рис. 4.13. Модель в 4BNF

Обратите внимание, что на рис. 4.11 мы уже использовали ассоциативную сущность для отображения связи " многие-ко-многим ".

Нормализация устраняет избыточность и аномалии, приводит к необходимости многократного выполнения длительной операции соединения отношений. Поэтому зачастую при переходе на физический уровень модели сознательно нарушают нормальные формы – проводят денормализацию. Для денормализации не существует четких правил. В ERwin денормализация облегчается тем, что некоторые сущности, атрибуты и ключи можно создавать только на логическом уровне. Такие объекты не отображаются на физическом уровне и не создаются при генерации схемы базы данных. С другой стороны, на физическом уровне можно создавать таблицыи колонки, которые отсутствуют на логическом уровне. Кроме того, имеется набор инструментов, называемый " Трансформация таблиц " (Transforms), позволяющий, в частности, в иерархии наследования переносить ключ и атрибуты от потомков к предку [3].

Литература к разделу 4

1. Карпова, Т. С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с.

2. Дейт, К. Дж. Введение в системы баз данных. – М.: Вильямс, 2005. – 1328 с.

3. Маклаков, С. В. Создание информационных систем с AllFusion Modeling Suite. – М.: ДИАЛОГ‑МИФИ, 2007. – 432 с.

4. Верников Г. Основы методологии IDEF1X // https://www.interface.ru/fset.asp?Url=/ca/idef1x.htm

5. Зайцев, С. Л. Проектирование баз данных с ERwin // https://www.interface.ru/fset.asp?Url=/ca/comp.htm

6. Зайцев, С. Л. Понятие отношения // https://www.interface.ru/fset.asp?Url=/ca/ponatie.htm

7. Козодоев, А. Использование методик моделирования данных IDEF1X и IE в программном средстве AllFusion ERwin Data Modeler компании Computer Associates // https://www.interface.ru/ca/MethodsDM_ERwin.htm

8. Пушников, А. Ю. Введение в системы управления базами данных // https://www.citforum.ru/database/dblearn/index.shtml

9. Зайцев, С. Л. Проектирование баз данных с ERwin // https://www.interface.ru/fset.asp?Url=/ca/comp.htm


[1] В BPwin используется термин " Единица работы " (Unit of WorkUOW).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: