Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
I-8 / Методички / Базы_данных.doc
Скачиваний:
78
Добавлен:
14.02.2016
Размер:
3.65 Mб
Скачать
  1. Работа с реляционными базами. Нормализация.

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

  • Исключить дублирование данных в таблицах.

  • Согласовать будущие изменения со структурой таблиц.

  • Минимизировать влияние изменений структуры БД на пользовательские приложения, которые будут обрабатывать данные.

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

IV.1. Первая нормальная форма (1нф)

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

Рассмотрим первый тип. Любой атрибут таблицы может содержать одно неделимое значение данного. Но представим себе, что в таблице «Информация о поставщике», рассмотренного ранее примера, поле Адрес содержит для фирм поставщиков название страны размещения, а для некоторых фирм требуются еще и физические адреса фирм, скажем, для доставки им почтовой корреспонденции. Тогда для этих фирм атрибут поля Адрес будет содержать несколько строк, например, Украина, Киев, Хрещатик 132/12, что является нарушением первой нормальной формы. Для устранения этого нарушения введем в таблицу еще четыре поля – Город, Улица, Дом, Офис. И структура таблицы «Информация о поставщике» примет следующий вид:

Код поставщика

Телефон

Адрес

Город

Улица

Дом

Офис

Такая таблица уже отвечает требованиям первой нормальной формы.

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

Код поставщика

Телефон1

Телефон2

Телефон3

Телефон4

Адрес

Город

Улица

Дом

Офис

В этом случае поля таблицы Телефон1, Телефон2, Телефон3, Телефон4 и будут повторяющимися группами. Причем, при формировании такой таблицы возникают трудности, т.к. заранее никогда не известно, сколько номеров телефонов представит фирма для связи с ней. Быстро избавиться от этих повторяющихся групп можно с помощью вставки нового поля, например, Линия связи и многократного копирования данных. Структура такой таблицы будет выглядеть так

Код поставщика

Линия связи

Телефон

Адрес

Город

Улица

Дом

Офис

, а записи для фирмы К, имеющей четыре телефона, будут следующие

Код поставщика

Линия связи

Телефон

Адрес

Город

Улица

Дом

Офис

15

1

44-44-44

Россия

Тула

Кривая

15

34

15

2

33-33-33

Россия

Тула

Кривая

15

34

15

3

22-22-22

Россия

Тула

Кривая

15

34

15

4

11-11-11

Россия

Тула

Кривая

15

34

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

Соседние файлы в папке Методички