Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700276.doc
Скачиваний:
11
Добавлен:
01.05.2022
Размер:
1.94 Mб
Скачать

4. Проектирование логической структуры базы данных

4.1. Концепция функциональной зависимости

Рассмотрим концепцию функциональной зависимости, кото­рая, по сути, является связью типа "многие к одному" между множествами атрибутов внутри отношения. Для примера рас­смотрим БД структуры, приведенной на рис. 4.1.

S (Студенты)

SN

NAME

GROUP

SPEC

P (Предметы)

PN

PNAME

TEACHER

KAFEDRA

SP (Оценки)

PN

NAME

SN

OCENKA

Рис. 4.1. Структура БД

Здесь отношение S (студенты) - имеет четыре атрибута: SN - номер студенческого билета; NAME - фамилия, имя, отчество студента; GROUP - студенческая группа; SPEC - наименование специальности.

Отношение Р (предметы) имеет четыре атрибута: PN - код предмета; PNAME - наименование предмета; TEACHER - фамилия, имя, отчество преподавателя; KAFEDRA - наименование кафедры, на которой читается данный предмет.

Отношение SP (оценки) состоит из четырех атрибутов: PN - код предмета; NAME - фамилия, имя, отчество студента; SN - номер студенческого билета; OCENKA - оценка по предмету.

Тогда можно говорить о том, что имеется функциональная за­висимость между множеством атрибутов {SN, PN} и {OCENKA}, то есть множеству пар кортежей номеров студенческих билетов и кодов предметов соответствует одно значение оценки студента по предмету.

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

Для первого случая рассмотрим определение функциональной зависимости. Если R - некоторое отношение, а X и Y - некоторые подмножества множества атрибутов отношения R, то Y функ­ционально зависимо от X при условии, что каждое значение множества X отношения R связано с одним значением множества Y отношения R. Это записывается в следующем виде:

X —> Y

Например, в отношении SP все кортежи удовлетворяют усло­вию {SN, PN} —> SP.

При рассмотрении второго случая надо заметить, что интерес представляют не столько функциональные зависимости для оп­ределенного в данный момент значения, а функциональные зави­симости, имеющие место для всех возможных значений данной переменной. В нашем случае зависимость PN —> NAME выполняется для всех возможных значений SP.

Таким образом, если R является переменной отношения, а X и Y - некоторые подмножества множества атрибутов отношения R, то Y функционально зависимо от X при условии, что для любого допустимого значения R каждое значение X связано с одним зна­чением множества Y.

Кроме того, если X является потенциальным ключом отноше­ния R, то все атрибуты Y отношения R должны быть функцио­нально зависимы от X. Например:

PN —> {PN, NAME, SN,OCENKA}

Если же отношение R удовлетворяет функциональной зави­симости X —> Y, но X не является потенциальным ключом, то можно говорить об избыточности R. Так в отношении PN сведения о фамилии студента повторяются каждый раз при вводе оценки.

Принципиально, некоторые функциональные зависимости мо­гут означать существование других функциональных зависимо­стей. Например

Зависимость {SN, PN} —> SP означает и

Зависимости {SN, PN} —> NAME и {SN, PN} —> OCENKA.

В более сложном случае, если имеется отношение R с тремя атрибутами X, Y, Z, то при условии выполнения функциональный зависимостей X < Y и Y < Z, очевидно, имеет место зависи­мость X —> Z. При этом набор всех функциональных зависимо­стей, которые определены данным множеством функциональных зависимостей, принято называть замыканием.

Таким образом, изложенные выше понятия и определения по­зволяют перейти к вопросам нормализации БД.