Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД ЛЕКЦИИ 2 (Т 4).doc
Скачиваний:
25
Добавлен:
04.05.2019
Размер:
957 Кб
Скачать
☆

4.3. Нормализация отношений (1, 2, 3 нф; нфбк; фз; потенциальный ключ; детерминант; пример)

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

Существует несколько нормальных форм (НФ) реляционной модели данных (РМД), которые позволяют исключить избыточное дублирование данных, обеспечить целостность и непротиворечивость данных.

При первой нормальной форме (1НФ) все атрибуты отношения должны быть простыми (атомарными, неделимыми) с точки зрения СУБД.

НФ более высокого порядка основаны на понятии функциональной зависимости (ФЗ), которая может быть определена следующим образом.

Пусть А и В - подмножества атрибутов отношения. Говорят, что В функционально зависит от А (А-->В), если для каждого значения А существует ровно одно связанное значение В. ФЗ можно выявить, исходя из базовых свойств самих атрибутов путем анализа.

При второй нормальной форме (2НФ) должна обеспечиваться 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.

Полная ФЗ от ключа означает, что если ключ составной, то любой неключевой атрибут зависит от всего ключа и не зависит ни от какой его части.

При третьей нормальной форме (ЗНФ) отношение должно находиться 2НФ, а также каждый неключевой атрибут нетранзитивно зависит от ключа, проще говоря: отсутствуют ФЗ между неключевыми атрибутами.

Нормальная форма Бойса-Кодда (НФБК) является развитием ЗНФ и требует, чтобы в отношении были только такие ФЗ, левая часть которых является потенциальным ключом отношения. Потенциальным ключом называется такое подмножество атрибутов отношения, которое удовлетворяет определению первичного ключа отношения. Фактически первичный ключ - это один из потенциальных ключей, назначенный в качестве первичного.

Поясним эти определения на примере.

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

Задано отношение:

Студент (<Сном>, <Сфам>, <Кном>, <Тном>, <Дисциплина>, <Семестр>, <Оценка>)

Основные атрибуты отношения: номер зачетной книжки студента (Сном); фамилия студента (Сфам); номер комнаты (Кном), где он проживает; номер телефона (Тном) в комнате (предполагается, что один телефон на одну комнату); дисциплина; семестр; оценка. Диаграмма (рис. 4.2) отражает ФЗ между атрибутами отношения: Сном-->Сфам, Сном-->Кном, Сном-->Тном, Кном-->Тном, Тном->Кном, <Сном,Дисциплина,Семестр --> Оценка.

Рис. 4.2. Диаграмма ФЗ отношения Студент

Рассмотрим некоторые определения.

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

Детерминантом называется левая часть ФЗ.

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

Существуют НФ более высокого уровня, которые накладывают более сильные ограничения; на практике в большинстве случаев достаточно получить отношения в НФБК.

В отношении Успеваемость студентов общежития один потенциальный ключ <Сном, Дисциплина, Семестр>. Детерминантами являются: <Сном, Дисциплина, Семестр>, <Сном>, <Кном>, <Тном>. Представим списки детерминантов и потенциальных ключей в виде таблицы (табл. 5).

Таблица 5

Списки детерминантов и потенциальных ключей

Потенциальные ключи

Детерминанты

<Сном, Дисциплина, Семестр>

<Сном, Дисциплина, Семестр>

<Сном>

<Кном>

<Тном>

Очевидно, что данное отношение не находится в НФБК, так как детерминанты Сном, Кном, Тном не являются потенциальными ключами. Для приведения отношения к НФБК его следует разбить на три отношения:

Студент (Сном, Сфам, Кном)

Оценка (Сном, Дисциплина, Семестр, Оценка)

Телефон (Кном, Тном).

Каждое из этих отношений находится в НФБК, так как в них все детерминанты являются потенциальными ключами.