Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по БД.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

6.2. Функциональная и многозначная зависимости

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

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

Теперь в дополнение к 1НФ можно определить дальнейшие уровни нормализации – вторую нормальную форму (2НФ), третью нормальную форму (3НФ) и т. д. По существу, таблица находится во 2НФ, если она находится в 1НФ и удовлетворяет, кроме того, не­которому дополнительному условию, суть которого будет рассмотрена ниже. Таблица находится в 3НФ, если она находится в 2НФ и, помимо того, удовлетворяет еще другому дополнительному усло­вию и т. д.

Теория нормализации основывается на наличии той или иной зависимости между столбцами таблицы. Рассмотрим два вида таких зависимостей: функциональные и многозначные.

Функциональная зависимость, по сути, является связью типа «многие к одному» между множествами атрибутов (столбцов) рас­сматриваемого отношения.

Например, в таблице «Учебный план» (см. рис. 6.3) столбцы Дисциплина, Семестр и Форма отчетности функционально зависят от ключа №(порядковый номер) в учебном плане, а в таблице «Ре­зультаты сессии» столбец Оценка функционально зависит oт состав­ного ключа (Студент, Учебный план).

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

В качестве примера рассмотрим фрагмент таблицы «Прием экза­менов (зачетов)», изображенный на рис. 6.4. Таблица отражает связь дисциплины и формы отчетности с фамилией преподавателя. В этой таблице существует многозначная зависимость «Дисциплина — Пре­подаватель»: дисциплину «Математический анализ» ведут несколько преподавателей (Раков И. И., Рыбин К. К., Карпов К. Ю.) и, соот­ветственно, все они могут участвовать в приеме экзаменов (зачетов). Другая многозначная зависимость – «Дисциплина — Форма отчетности»: по одной и той же дисциплине могут проводиться и экзамен, и зачет. При этом Форма отчетности и Преподаватель не связаны функциональной зависимостью, что приводит к появлению избыточности (чтобы добавить фамилию еще одного преподавателя, при­дется ввести в таблицу две новые строки).

Дисциплина

Преподаватель

Форма отчетности

Математический анализ

Раков И. И.

экзамен

Математический анализ

Рыбин К. К.

экзамен

Математический анализ

Карпов К. Ю.

экзамен

Математический анализ

Раков И. И.

зачет

Математический анализ

Рыбин К. К.

зачет

Математический анализ

Карпов К. Ю.

зачет

Рис. 6.4. Фрагмент таблицы «Прием экзаменов (зачетов)»