- •Проектирование реляционных баз данных
- •Введение
- •Понятие базы данных
- •Проблемы проектирования баз данных. Жизненный цикл базы данных
- •Основные модели данных
- •3.1. Иерархическая модель данных
- •3.2. Сетевая модель данных
- •3.3. Реляционная модель данных
- •Нормализация реляционных баз данных
- •4.1. Некоторые операции над отношениями
- •4.3. Первая нормальная форма
- •4.4. Вторая нормальная форма
- •4.5. Третья нормальная форма
- •4.6. Четвертая нормальная форма
- •4.7. Пятая нормальная форма
- •4.8. Связь нормальных форм
- •Индексирование
- •5.1. Устройство индексов
- •5.2. Практика индексирования
- •Поддержка целостности
- •Оглавление
4.3. Первая нормальная форма
Согласно реляционной теории, исходные таблицы могут иметь любую конфигурацию, содержать вложенность без ограничения количества уровней. Однако при реализации базы данных в среде конкретной СУБД классическими средствами (без появившихся позднее объектно-ориентированных расширений реляционной модели), вложенность не допускается, т.е. каждый столбец должен быть неделимым. Требуется разбиение сложной таблицы на ряд простых. В теории нормализации это называется приведением к первой нормальной форме.
Пусть исходная таблица имеет следующий вид:
Код преподавателя |
Фамилия, И.О. |
Предмет | ||
Название предмета |
Семестр |
Кол-во часов | ||
00001111 |
Иванов И.И. |
Математика |
1 |
120 |
Математика |
2 |
150 | ||
Дискретная математика |
3 |
200 | ||
00002222 |
Петров П.П. |
Инженерная графика |
1 |
170 |
Здесь столбец “Предмет” является составным. Он содержит повторяющуюся группу данных и сам является таблицей. С такой структурой данных ни одна из классических реляционных СУБД не работает. Необходимо выделять повторяющиеся группы в отдельные таблицы, т.е. приводить отношение к первой нормальной форме.
Приведение к первой нормальной форме заключается в том, что исходное отношение разбивается на ряд таких отношений, которые не содержат сложных доменов или атрибутов.
Алгоритм приведения к первой нормальной форме:
Атрибуты ключа корневого отношения вносятся во множество ключевых атрибутов отношения, непосредственно подчиненного корневому, с сохранением порядка кортежей.
Из корневого отношения удаляются составные атрибуты.
Корневое отношение включается в результирующее множество отношений.
Из дерева удаляется корень. Если среди полученных отношений имеются отношения, состоящие только из простых атрибутов, то они включаются в результирующее множество.
Для каждого из оставшихся отношений повторять с п.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 |
Межтабличная связь осуществляется по ключевому полю.
Цель приведения к первой нормальной форме – повышение эффективности обработки данных путем выравнивания длины записи. При этом получается отношение из простых атрибутов.
Как правило, для каждой таблицы необходимо разрабатывать экранные формы для ввода данных и выходные формы для представления отчетных данных. После приведения к первой нормальной форме становится ясным общее количество таблиц, что позволяет оценить хотя бы приблизительно объем и сложность работы.