Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЭИС пособие конспект лекций.doc
Скачиваний:
8
Добавлен:
10.11.2019
Размер:
1.05 Mб
Скачать

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

Центральная задача проектирования базы данных ЭИС - определение количества отношений (или иных составных единиц информации) и их атрибутного состава.

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

- минимальность избыточности представления информации,

- корректировка отношений не должна приводить к двусмысленности или потере информации,

- перестройка набора отношений при добавлении в базу данных новых атрибутов должна быть минимальной.

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

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

Отношение в первой нормальной форме (сокращенно 1 НФ) - это обычное отношение с двухуровневой структурой. Недопустимость в структуре отношения третьего и последующих уровней является ограничением, определяющим 1НФ отношения.

Следует отметить определенное терминологическое несоответствие - нормализация СЕИ приводит к 1НФ, а нормализация отношений реляционной БД обычно производится до ЗНФ или 4НФ.

Реляционная база данных в целом характеризуется 1НФ, если все ее отношения соответствуют 1НФ.

2.4. Вторая и третья нормальные формы отношений

Отношение имеет вторую нормальную форму (2НФ), если оно соответствует 1НФ и не содержит неполных функциональных зависимостей.

Неполная функциональная зависимость - это две зависимости:

- вероятный ключ отношения функционально определяет некоторый неключевой атрибут,

- часть вероятного ключа функционально определяет этот же неключевой атрибут.

Отношение, не соответствующее 2НФ, характеризуется избыточностью хранимых данных.

Например: Функциональные зависимости отношения Т4:

Т4

Магазин

Изделие

Цена

План 2006г.

Салют

М22

50

200

Салют

К14

40

100

АТЭ

М22

50

300

АТЭ

Т62

60

100

Рисунок 2.9 Отношение Т4(Магазин, Изделие, Цена, План)

(1) Магазин, Изделие—> План 2006 г.,

(2) Изделие —>Цена.

Вероятным ключом в Т4 являются атрибуты Магазин, Изделие. Для доказательства можно сослаться на функциональные зависимости:

Магазин, Изделие —> План 2006 г.,

(3) Магазин, Изделие —> Цена,

(4) Магазин, Изделие —> Магазин,

(5) Магазин, Изделие —> Изделие.

Зависимости (3) и (2) вместе образуют неполную функциональную зависимость, по этой причине отношение Т4 находится лишь в 1НФ, а не во 2НФ.

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

Т41=Т4[Магазин, Изделие, План 2006 г.], Т42=Т4[Изделие, Цена] (рис.2.10).

Ключом в Т41 служат атрибуты Магазин, Изделие; в Т42 -Изделие, и легко определить, что оба отношения соответствуют требованиям 2НФ.

База данных находится в 2НФ, если все ее отношения находятся в 2НФ.

Т41

Магазин

Изделие

План 2006 г.

Салют

М22

200

Салют

К14

100

АТЭ

М22

300

АТЭ

Т62

100

Т42

Изделие

Цена

М22

К14

Т62

50

40

60

Рисунок 2.10 База данных во 2НФ

Отношение соответствует ЗНФ, если оно соответствует 2НФ и среди его атрибутов отсутствуют транзитивные функциональные зависимости (ФЗ).

Транзитивная ФЗ - это две ФЗ:

- вероятный ключ отношения функционально определяет не ключевой атрибут,

- этот атрибут функционально определяет другой не ключевой атрибут.

Если К - ключ отношения. А, В - не ключевые атрибуты и К —> А, А —> В - справедливые ФЗ, то они являются транзитивными. Частный случай транзитивной ФЗ - неполная ФЗ, когда К = (С,Е) и К—> Е, а Е—>А.

Рассмотрим пример. Функциональные зависимости Т5:

Т5

ФИО

Группа

Факультет

Петров

101

ЭИ

Федин

101

ЭИ

Лешин

102

ЭИ

Яшина

102

ЭИ

Рисунок 2.11База данных

(6) ФИО —> Группа,

(7) Группа —>Факультет,

(8) ФИО —> Факультет.

Ключ отношения Т5 - ФИО. Зависимости (6) и (7) вместе образуют транзитивную ФЗ, поэтому Т5 находится в 2НФ, но не в ЗНФ.

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

Переход от Т5 к отношениям в ЗНФ дает следующие результаты:

Т51=Т5[ФИО, Группа],

Т52=Т5[Группа, Факультет].

Т51

ФИО

Группа

Петров

101

Федин

101

Алешин

102

Яшина

102

Т52

Группа

Факультет

101

102

ЭИ

ЭИ

Рисунок 2.12 База данных в 3НФ