Лабораторная работа №8. Нормализация. Создание физической модели

 

Цель работы: изучить виды нормальных форм; освоить роль CASE-средства ERwin при нормализации и денормализации БД; построить физическую модель; изучить алгоритмы перевода БД в первую, вторую, третью и четвертую нормальную форму (для самостоятельного изучения).

1. Методические указания

Нормализация - процесс проверки и реорганизации сущностей и атрибутов с целью удовлетворения требований к реляционной модели данных. Нормализация позволяет быть уверенным, что каждый атрибут определен для своей сущности, значительно сократить объем памяти для хранения данных. Для рассмотрения видов нормальных форм введем понятия функциональной и полной функциональной зависимости.

Функциональная зависимость: Атрибут В сущности Е функционально зависит от атрибута А сущности Е, если и только если каждое значение А в Е связало с ним точно одно значение В в Е. Другими словами, А однозначно определяет В.

Полная функциональная зависимость: Атрибут Е сущности В полностью функционально зависит от ряда атрибутов А сущности Е, если и только если В функционально зависит от K и не зависит ни от какого подряда А.

Существуют следующие виды нормальных форм:

• Первая нормальная форма (1NF). Сущность Е находится в первой нормальной форме, если и только если все атрибуты содержат только атомарные значения. Среди атрибутов не должно встречаться повторяющихся групп, т. е. нескольких значений для каждого экземпляра.

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

• Третья нормальная форма (3NF). Сущность Е находится в третьей нормальной форме, если она находится во второй нормальной форме и неключевые атрибуты сущности Е зависят от других атрибутов Е.

• Четвертая нормальная форма (4NF). Отношение R находится в 4NF и том и только в том случае, когда существует многозначная зависимость между A и B, а все остальные атрибуты R функционально зависят от A.

После четвертой нормальной формы существуют и другие нормальные формы. На практике ограничиваются приведением к четвертой нормальной форме. Часто после проведения нормализации все взаимосвязи данных становятся правильно определены, модель данных становится легче поддерживать. Однако нормализация не ведет к повышению производительности системы в целом, поэтому при создании физической модели в целях повышения производительности приходится сознательно отходить от нормальных форм, чтобы использовать возможности конкретного сервера. Такой процесс называется денормализацией.

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

ERwin поддерживает корректность имен следующим образом:

• отмечает повторное использование имени сущности и атрибута;

• не позволяет внести в сущность более одного внешнего ключа;

• запрещает присвоение неуникальных имен атрибутов внутри одной модели, соблюдая правило «в одном месте - один факт».

Создание физической модели

Целью создания физической модели является обеспечение администратора соответствующей информацией для переноса логической модели данных в СУБД. ERwin поддерживает автоматическую генерацию физической модели данных для конкретной СУБД. При этом логическая модель трансформируется в физическую по следующему принципу: сущности становятся таблицами, атрибуты становятся столбцами, а ключи становятся индексами (табл. 4).

Таблица 4 - Сопоставление компонентов логической и физической модели

Логическая модель Физическая модель
Сущность Таблица
Атрибут Столбец
Логический тип (текст, число, дата, blob) Физический тип (корректный тип, зависящий от выбранной СУБД)
Первичный ключ Первичный ключ, индекс PK
Внешний ключ Внешний ключ, индекс FK
Альтернативный ключ AK-индекс, уникальный, непервичный индекс
Правило бизнес-логики Триггер или сохраненная процедура
Взаимосвязи Взаимосвязи, определяемые использованием FK-атрибутов

После нормализации все взаимосвязи данных становятся определены, исключая ошибки при оперировании данными. Но нормализация данных снижает быстродействие БД. Для более эффективной работы с данными, используя возможности конкретного сервера БД, приходится производить процесс, обратный нормализации, - денормализацию.

Для процесса денормализации не существует стандартного алгоритма, поэтому в каждом конкретном случае приходится искать свое решение. Денормализация обычно проводится на физическом уровне модели. ERwin имеет следующие возможности по поддержке процесса денормализации:

• Сущности, атрибуты, группы ключей и домены можно создавать только на логическом уровне модели.

• В ERwin существует возможность выделения элементов логической модели таким образом, чтобы они не появлялись на физическом уровне.

• Таблицы, столбцы, индексы и домены можно создавать только на физическом уровне.

• В ERwin существует возможность выделения элементов модели таким образом, чтобы они не появлялись на логическом уровне. Эта возможность напрямую поддерживает денормализацию физической модели, так как позволяет проектировщику включать таблицы, столбцы и индексы в физическую модель, ориентированную на конкретную СУБД.

• Разрешение связей «многие-ко-многим». При разрешении этих связей в логической модели ERwin добавляет ассоциированные сущности и позволяет добавить в них атрибуты. При разрешении связей в логической модели автоматически разрешаются связи и в физической модели.

Задание

1. Построить физическую модель.

2. Нормализовать БД до третьей или четвертой нормальной формы.

3. Установить типы данных.

4. Сгенерировать код на SQL.

5. Перенести результат в СУБД Access или SQL-Server.

6. Построить запрос.

7. Составить отчет.

8. Ответить на контрольные вопросы.