Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный конспект ОВГЕРМАН 1ый семестр.doc
Скачиваний:
79
Добавлен:
15.06.2014
Размер:
11.83 Mб
Скачать

1.4.1 Необходимость нормализации

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

Пример 1. Пусть дана следующая таблица (Табл.1.12)

Таблица 1.12. Пример таблицы для группирования группирование записей по общим значением поля. ых условий.функцию IIF (т.е. 0000000000000000000аномалии обновления.

Код

Название

Цена

Фирма

111

бумага

10000

Папир

112

клей

1000

Мечта

115

клей

3000

Мечта

200

краски

10000

Радуга

201

краски

9000

Радуга

300

бумага

8000

Папир

Ключом этой таблицы является поле Код. В то же время, имеется функциональная зависимость Название -> Фирма, которая должна присутствовать в таблице без изменений. Пусть следует заменить название “Радуга” в поле Фирма на “Рубикон”. Чтобы сохранить зависимость Название-> Фирма нужно выполнить поиск по всей таблице слова “Радуга” и заменить его. Очевидным образом эта операция крайне не эффективна на большой по размеру таблице. Ситуация становится значительно проще, если выполнить расщепление исходной таблицы на две таблицы таким образом:

Таблица 1.13.

Название

Фирма

бумага

Папир

клей

Мечта

краски

Радуга

ольшой по размеру таблице. п000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000заменить его.00000000000000000000000000000000000000000000000000000000000000

Таблица 1.14.

Код

Название

Цена

111

бумага

10000

112

клей

1000

115

клей

3000

200

краски

10000

201

краски

9000

300

бумага

8000

Нетрудно видеть, что соединение этих таблиц дает исходную таблицу 1.12. Вместе с тем, чтобы изменить слово ”Радуга” на ”Рубикон” достаточно провести замену в одной строке табл.1.13.

Пример 2. Изменим табл.1.12 таким образом

Таблица 1.15. Пример таблицы для группирования группирование записей по общим значением поля. ых условий.функцию IIF (т.е. 0000000000000000000аномалии обновления.

Код

Название

Цена

Фирма

111

бумага

10000

Папир

111

клей

1000

Мечта

115

клей

3000

Мечта

115

краски

10000

Радуга

201

краски

9000

Радуга

300

бумага

8000

Папир

Видим, что Код перестал быть ключом. Однако два поля Код, Название являются ключом для всей таблицы. Кроме того, по-прежнему имеется зависимость Название -> Фирма. Если заменить слово Радуга на слово Рубикон, то, как и в примере выше, понадобится просмотреть всю таблицу. Поэтому налицо аномалия обновления. Для предотвращения этой аномалии нужно, как и в примере 1, расщепить табл.1.15 на две подтаблицы с такими же заголовками, как в табл.1.13 и табл.1.14. При этом аномалии не возникает.

Примеры 1 и 2 послужат нам основой для введения 2-й и третьей нормальных форм. Первая нормальная форма имеет несколько другую природу.