Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел-2(СУБД).doc
Скачиваний:
18
Добавлен:
01.09.2019
Размер:
981.5 Кб
Скачать

2.8. Проектирование реляционных баз данных с использованием принципов нормализации

Как было показано в материале предыдущего параграфа, при проектировании базы данных решаются две основные проблемы.

  • Каким образом отобразить объекты предметной области в абстрактные объекты модели данных, чтобы это отображение не противоречило семантике предметной области и было по возможности лучшим (эффективным, удобным и т.д.)? Часто эту проблему называют проблемой логического проектирования баз данных.

  • Как обеспечить эффективность выполнения запросов к базе данных, т.е. каким образом, имея в виду особенности конкретной СУБД, расположить данные во внешней памяти, создания каких дополнительных структур (например, индексов) потребовать и т.д.? Эту проблему называют проблемой физического проектирования баз данных.

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

Так что будем считать, что проблема проектирования реляционной базы данных состоит в обоснованном принятии решений о том,

  • из каких отношений должна состоять БД,

  • какие атрибуты должны быть у этих отношений.

Основная цель проектирования БД – это сокращение избыточности хранимых данных, а следовательно, экономия объема используемой памяти, уменьшение затрат на многократные операции обновления избыточных копий и устранение возможности возникновения противоречий из-за хранения в разных местах сведений об одном и том же объекте. Так называемый "чистый" проект БД ("Каждый факт в одном месте") можно создать, используя методологию нормализации отношений, основанную на концепции нормальных форм.

Говорят, что отношение находится в некоторой нормальной форме, если оно удовлетворяет заданному набору условий. Метод нормализации предполагает последовательное приведение данного набора отношений к некоторой более желательной форме. Группировка атрибутов в отношениях должна быть рациональной, т.е. минимизирующей дублирование (избыточность) данных и упрощающей процедуры их обработки и обновления. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.

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

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

Каждой нормальной форме соответствует некоторый определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений.

В теории реляционных баз данных выделяются следующие основные нормальные формы:

  • первая нормальная форма (1НФ);

  • вторая нормальная форма (2НФ);

  • третья нормальная форма (2НФ).

Главные свойства нормальных форм заключаются в следующем:

  • каждая следующая нормальная форма в некотором смысле лучше предыдущей;

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

Заметим, что уровень нормализации данного отношения определяется семантикой, а не конкретными значениями данных в некоторый момент времени. Нельзя с первого взгляда на таблицу с данными для заданного отношения определить, находится ли оно, например, в 2НФ. Для этого также необходимо представить себе их смысл, то есть существующие между ними зависимости. Следует также отметить: даже зная о зависимостях данного отношения, нельзя доказать того, что оно находится в 2НФ. В таком случае можно лишь показать, что эти данные не нарушают никаких зависимостей, и высказать предположение о том, что эти данные не противоречат гипотезе о принадлежности отношения к 2НФ. Однако этот факт не гарантирует, что предложенная гипотеза верна.

На практике, как правило, исходное отношение приводят к 2НФ, при этом достигаются основные свойства реляционной модели данных. Поэтому ограничимся рассмотрением процедуры нормализации до 2НФ.