Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование реляционных баз данных.docx
Скачиваний:
55
Добавлен:
16.03.2016
Размер:
189.97 Кб
Скачать

4.3. Первая нормальная форма

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

Пусть исходная таблица имеет следующий вид:

Код преподавателя

Фамилия, И.О.

Предмет

Название предмета

Семестр

Кол-во часов

00001111

Иванов И.И.

Математика

1

120

Математика

2

150

Дискретная математика

3

200

00002222

Петров П.П.

Инженерная графика

1

170

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

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

Алгоритм приведения к первой нормальной форме:

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

  2. Из корневого отношения удаляются составные атрибуты.

  3. Корневое отношение включается в результирующее множество отношений.

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

  5. Для каждого из оставшихся отношений повторять с п.1 до тех пор, пока множество не останется пустым.

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

Код преподавателя

Фамилия, И.О.

Предмет

Код преподавателя

Название предмета

Семестр

Кол-во часов

00001111

Иванов И.И.

00001111

Математика

1

120

00001111

Математика

2

150

00001111

Дискретная математика

3

200

00002222

Петров П.П.

00002222

Инженерная графика

1

170

Дальнейшее выполнение алгоритма дает следующие результирующие отношения:

Код преподавателя

Фамилия,

И.О.

00001111

Иванов И.И.

00002222

Петров П.П.

Код преподавателя

Название предмета

Семестр

Кол-во часов

00001111

Математика

1

120

00001111

Математика

2

150

00001111

Дискретная математика

3

200

00002222

Инженерная графика

1

170

Межтабличная связь осуществляется по ключевому полю.

Цель приведения к первой нормальной форме – повышение эффективности обработки данных путем выравнивания длины записи. При этом получается отношение из простых атрибутов.

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