Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИТ_база_данных.doc
Скачиваний:
16
Добавлен:
15.09.2019
Размер:
836.1 Кб
Скачать

2.3.2. Нормализация отношений

 

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

множество отношений должно обеспечивать минимальную избыточность данных;

корректировка отношений не должна приводить к двусмысленности или потере данных;

перестройка набора отношений при добавлении в БД новых полей должна быть минимальной.

Наиболее изученным способом преобразования отношений, позволяющих улучшить характеристики БД по перечисленным критериям, является нормализация отношений. Это  процесс приведения отношений к той или иной нормальной форме. Методику нормализации отношений разработал американский ученый А. Ф. Кодд в 1970 г. Он выделил три нормальные формы - 1НФ, 2НФ, 3НФ. Позже стали выделять   4НФ и 5НФ. Каждая последующая нормальная форма вводит определенные ограничения на хранимые в БД данные.

Отношение находится в первой нормальной форме, если все его поля являются простыми. Пример ненормализованного отношения:

 

Книга

Автор

Цена, тыс.р.

Телефон

А

Крюк К. К.

Лис Л. Л.

2

11-11-11

77-77-77

В

Дудов Д. Д.

Павлов П.П.

6

44-44-44

55-55-55

 

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

 

Книга

Автор

Цена, тыс.р.

Телефон

А

Крюк К. К.

2

11-11-11

А

Лис Л. Л.

2

77-77-77

В

Дудов Д. Д.

6

44-44-44

В

Павлов П.П.

6

55-55-55

 

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

В предыдущем отношении неключевое поле «Телефон» не зависит от ключа «Книга». Для приведения этого отношения ко  2НФ его надо разбить на три:

1) информация о книгах:

 

Номер книги

Книга

Цена, тыс.р

1

А

2

2

В

6

 

2) информация об авторах:

 

Автор

Телефон

Крюк К. К.

11-11-11

Лис Л. Л.

77-77-77

Дудов Д. Д.

44-44-44

Павлов П.П.

55-55-55

 

3) информация о том, какой автор написал какую книгу:

 

Автор

Номер книги

Крюк К. К.

1

Лис Л. Л.

1

Дудов Д. Д.

2

Павлов П.П.

2

 

Все три отношения имеют 2НФ.

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

Приведем пример отношения, находящегося во 2НФ, такой структуры:

 

Таб. №

Должность

Оклад

 

В этом отношении имеется транзитивная зависимость: неключевое поле «Оклад» зависит от неключевого поля «Должность», которое зависит от ключа «Таб. №». Она устраняется, если исходное отношение разбить на два отношения следующей структуры:

 

В результате требования 3НФ удовлетворены.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]