36
никаких других функциональных зависимостей. Цель нормализации и состо-
ит в удалении этих «других» функциональных зависимостей.
Рассмотрим два возможных случая.
Таблица имеет составной первичный ключ вида, скажем, (К1,К2), и
включает также атрибут А, который функционально зависит от части этого
ключа (например, от К2), но не от полного ключа. В этом случае рекоменду-
ется сформировать другую таблицу, содержащую атрибуты К2 и А (первич-
ный ключ – К2), и удалить атрибут А из первоначальной таблицы.
Таблица имеет первичный (возможный) ключ К, атрибут А1, который
не является возможным ключом, но функционально зависит от К, и другой не
ключевой атрибут А2, который функционально зависит от А1. Решение
здесь, по существу, то же самое, что и прежде – формируется другая таблица,
содержащая атрибуты А1 и А2, с первичным ключом А1, а атрибут А2 уда-
ляется из первоначальной таблицы
Таким образом, повторяя применение двух рассмотренных правил, для
любой заданной таблицы почти во всех реальных практических ситуациях
можно получить в конечном счете множество таблиц, которые находятся в
НФБК и не содержат каких-либо функциональных зависимостей вида, от-
личного от А К.
Применим приведенные правила для полной нормализации универ-
сального отношения «Сессия» (табл.5).
1.Определение первичного ключа таблицы.
Предположим, что каждый студент сдает один раз экзамен (зачет) по
дисциплине учебного плана и получает оценку. Дисциплина учебного плана
однозначно характеризуется наименованием, номером семестра, за который
отчитывается студент, и формой отчетности (так как учебный план преду-
сматривает сдачу и экзамена, и зачета по одной и той же дисциплине в рам-
ках одного семестра). Тогда в качестве первичного ключа отношения «Сес-
сия» можно использовать следующий набор атрибутов:
ФИО студента, Дисциплина, Семестр, Форма отчетности.
2.Выявление атрибутов, функционально зависящих от части составного
ключа.
Каждый из атрибутов – ФИО преподавателя и Количество часов –
функционально зависит только от атрибутов Дисциплина, Семестр и Фор-