Теория нормализации

 

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

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

Обычно различают следующие проблемы:

· избыточность данных;

· аномалии обновления;

· аномалии удаления;

· аномалии ввода.

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

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

Аномалии удалениямогут возникать при удалении записей из ненормализованных таблиц и характеризуются вероятностью удаления не всех дублированных кортежей.

Аномалии ввода возникают при добавлении в таблицу новых записей, обычно в поля с ограничениями NOT NULL (не пустые). Кода в отношение на данный момент времени невозможно ввести однозначную информацию.

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

 

Нормальные формы

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

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

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

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

· третья нормальная форма (3НФ);

· нормальная форма Бойса-Кодда (БКНФ);

· четвертая нормальная форма (4НФ);

· пятая нормальная форма, или нормальная форма проекции-соединения (5НФ или ПС/НФ).

Основные свойства нормальных форм:

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

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

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

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

 

 

Рисунок 12.1 - Примерный вид накладной.

 

По накладной можно сформировать следующее отношение удовлетворяющее 1НФ (рисунок 12.2):

 

 

Рисунок 12.2 - Отношение «Отпуск товаров»

 

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

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

X®Y.

Необходимо отметить, что атрибут, указываемый в левой части называется детерминантом.

Продолжим рассмотрение описанного выше примера. Для приведения отношения к 2НФ необходимо вначале выделить первичный ключ. Первичный ключ возможно определить из следующих рассуждений. Если бы по одной накладной отпускался бы только один товар, то первичным ключом являлся бы атрибут «Номер накладной», однако по одной накладной отпускается несколько различных товаров, следовательно, первичный ключ должен состоять из двух атрибутов «Номер накладной» и «Товар», только в этом случае будет обеспечено свойство уникальности.

Рассмотрим функциональные зависимости атрибутов от первичного ключа, при этом проще начинать рассмотрение с частей первичного ключа, в данном случае с атрибута «Номер накладной»:

Номер накладной ® Покупатель

Номер накладной ® Дата

Номер накладной ® Город

Номер накладной ® Адрес

Определим функциональные зависимости от атрибута «Товар»:

Товар ® Ед.изм

Товар ® Цена ед.изм

Оставшиеся атрибуты определяются первичным ключом:

Номер накладной, Товар ® Количество

Номер накладной, Товар ® Общая стоимость

В результате мы получили три различные категории, у каждой из которых свой первичный ключ. После проведения вышеуказанного анализа отношения производим его декомпозицию и определяем типы связей (рисунок 12.3)

 

 

Рисунок 12.3 - Отношение «Отпуск товаров», находящееся в 2НФ

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

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

Функциональная зависимость атрибутов X и Y отношения называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости X® Z и Z ®Y, но отсутствует функциональная зависимость Z ®Х.

В результате анализа отношения «НАКЛАДНАЯ» определяем следующую транзитивную зависимость:

Номер накладной ® Покупатель

Номер накладной ® Город

Номер накладной ® Адрес

Покупатель ® Город

Покупатель ® Адрес

В результате анализа отношения «ОТПУСК ТОВАРОВ», также определяется транзитивная зависимость следующего вида:

Номер накладной, Товар ® Количество

Номер накладной, Товар ® Общая стоимость








Дата добавления: 2015-11-18; просмотров: 1282;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.