Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретические основы реляционных баз данных. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
936 Кб
Скачать

 

 

- 80 -

 

 

Григорьев

2

 

 

 

Логинов

4

 

 

 

Петровский

3

 

 

 

Никонов

1

 

 

Лекторы2 (

ЗВАНИЕ

СТЕПЕНЬ

МЕТКА )

 

 

 

 

 

 

профессор

доктор

1

 

 

профессор

кандидат

2

 

 

доцент

доктор

3

 

 

доцент

кандидат

4

 

Как видно из примера, при выполнении оператора вводится дополнительный столбец МЕТКА, который служит для восстановления исходного отношения путем соединения полученных отношений и удаления из них дополнительного столбца.

Если имеется отношение r со схемой R, атрибуты B1,B2, ...,Bm R и атрибут L R, то оператор FACTOR(r; B1,B2, ...,Bm; L) удаляет столбцы B1,B2, ...,Bm из отношения r, формирует из них новое отношение s и добавляет в оба отношения дополнительный столбец L.

Для примера оператор будет выглядеть следующим образом: FACTOR(лекторы; ЗВАНИЕ, СТЕПЕНЬ; МЕТКА)

Условие проверки можно записать как

лекторы = { ФАМИЛИЯ, ЗВАНИЕ, СТЕПЕНЬ}( лекторы1 лекторы2).

Более строгое определение оператора приводиться не будет, поскольку используется он достаточно редко как средство для поиска путей для эффективного хранения информации.

3.4. Функциональные зависимости

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

Основным видом зависимостей являются функциональные (Functional) или F-зависимости. Надо сказать, что именно зависимости данного типа составляют большую часть зависимостей между

- 81 -

данными и многие области применения баз данных имеют дело только с ними.

Кроме функциональных зависимостей будут рассматриваться многозначные зависимости (MV — Multi Valued) и зависимости соединения (J — Join). Более общие классы зависимостей рассматриваться не будут.

3.4.1. Определение

В самом общем случае функциональная зависимость является формальной записью ограничения, которое можно описать фразой «Атрибуту X соответствует только одно значение атрибута Y». Для примера приведем отношение, в котором для простоты будем считать, что у каждого студента уникальная фамилия. Ограничение вводится для того, чтобы не работать с обезличенными номерами студенческих билетов, зачетных книжек и так далее.

группы( ФАМИЛИЯ ПОЛ ГРУППА ФАКУЛЬТЕТ КАФЕДРА КУРАТОР )

Балашов

М

340

ФВТ

ЭВМ

Байков

Катеринченко

М

342

ФВТ

ЭВМ

Сарычев

Колычева

Ж

347

ФВТ

САПР

Телков

Малин

М

331

ФТА

АТ

Федоров

Никулкин

М

342

ФВТ

ЭВМ

Сарычев

Фахрудинова

Ж

342

ФВТ

ЭВМ

Сарычев

Чертков

М

343

ФВТ

ВПМ

Терехин

Рассмотрим ограничения, накладываемые на приведенное отношение.

1.Каждому студенту соответствует один, конкретный половой признак.

2.Каждый студент обучается только в одной группе.

3.К каждой группе прикреплен один куратор.

4.Каждая группа относится к одному факультету.

5.Каждая группа относится к конкретной кафедре.

6.Каждая кафедра относится к конкретному факультету.

7.Каждый куратор работает на определенной кафедре.

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

1.ПОЛ функционально зависит от атрибута СТУДЕНТ.

2.ГРУППА. функционально зависит от атрибута СТУДЕНТ.

3.КУРАТОР функционально зависит от атрибута ГРУППА.

4.ФАКУЛЬТЕТ функционально зависит от атрибута ГРУППА.

5.КАФЕДРА функционально зависит от атрибута ГРУППА.

6.ФАКУЛЬТЕТ функционально зависит от атрибута КАФЕДРА.

7.КАФЕДРА функционально зависит от атрибута КУРАТОР.

- 82 -

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

Для рассматриваемых семи зависимостей описание примет следующий вид:

1.СТУДЕНТ функционально определяет атрибут ПОЛ.

2.СТУДЕНТ функционально определяет атрибут ГРУППА.

3.ГРУППА функционально определяет атрибут КУРАТОР.

4.ГРУППА функционально определяет атрибут ФАКУЛЬТЕТ.

5.ГРУППА функционально определяет атрибут КАФЕДРА.

6.КАФЕДРА функционально определяет атрибут ФАКУЛЬТЕТ.

7.КУРАТОР функционально определяет атрибут КАФЕДРА. Наконец, приведем символическую запись функциональных

зависимостей:

1.СТУДЕНТ ПОЛ.

2.СТУДЕНТ ГРУППА.

3.ГРУППА КУРАТОР.

4.ГРУППА ФАКУЛЬТЕТ.

5.ГРУППА КАФЕДРА.

6.КАФЕДРА ФАКУЛЬТЕТ.

7.КУРАТОР КАФЕДРА.

Постараемся дать строгое определение функциональной зависимости.

Пусть имеется r — отношение со схемой R и атрибуты X R,

Y R, тогда отношение r удовлетворяет функциональной зависимости X Y, если Y( X=x(r)) имеет не более одного кортежа для любого X-значения x.

Множество X называется левой, а Y — правой частью функциональной зависимости X Y.

Определение можно интерпретировать следующим образом: если в отношении, удовлетворяющем функциональной зависимости X Y, имеются два кортежа t1 и t2 с одинаковыми X-значениями t1(X) = t2(X), то обязательно должно выполняться и t1(Y)=t2(Y). Такая интерпретация определения функциональной зависимости является основой алгоритма проверки наличия функциональной зависимости в отношении.

SATISFIES (r, X Y)

1.Пересортировать отношение r по X-столбцам так, чтобы кортежи с одинаковыми X-значениями оказались рядом.

-83 -

2.Если каждая совокупность кортежей с одинаковыми X- значениями имеет и одинаковые Y-значения, то алгоритм возвращает значение истина или ложь в обратном случае.

Проверим наличие функциональной зависимости КАФЕДРА ФАКУЛЬТЕТ для отношения группы:

группы( ФАМИЛИЯ

ПОЛ

ГРУППА

ФАКУЛЬТЕТ КАФЕДРА

КУРАТОР )

 

 

 

 

 

 

 

 

 

Малин

М

331

ФТА

АТ

Федоров

 

Чертков

М

343

ФВТ

ВПМ

Терехин

 

 

Колычева

Ж

347

ФВТ

САПР ВС

Телков

 

 

Балашов

М

340

ФВТ

ЭВМ

Байков

 

 

Катеринченко

М

342

ФВТ

ЭВМ

Сарычев

 

Никулкин

М

342

ФВТ

ЭВМ

Сарычев

 

Фахрудинова

Ж

342

ФВТ

ЭВМ

Сарычев

 

Здесь уже видно, что функциональная зависимость КАФЕДРА ГРУППА не выполняется в отношении, поскольку значению атрибута КАФЕДРА=ЭВМ соответствует несколько значений атрибута ГРУППА.

Понятие функциональной зависимости является одним из основных, и поэтому решено привести еще один вариант определения функциональной зависимости.

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

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

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

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

3.4.2.Аксиомы вывода

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

- 84 -

удовлетворяет какой-либо функциональной зависимости, а в другом — нет. Рассмотрим на примере экземпляр отношения студенты:

студенты(

ФАМИЛИЯ

ИМЯ

ГРУППА

БАЛЛ

ПОЛ )

 

 

 

 

 

 

 

 

Балашов

Андрей

342

5.00

М

 

Колычева

Лия

349

4.38

Ж

 

Малин

Сергей

345

4.87

М

 

Фахрудинова

Тамара

342

4.12

Ж

 

Чертков

Максим

344

4.31

М

Формально данный экземпляр отношения удовлетворяет зависимостям ИМЯ ФАМИЛИЯ и БАЛЛ ГРУППА. Совершенно ясно, что такие зависимости появились в отношении совершенно случайно из-за того, что выборка кортежей недостаточно представительна.

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

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

Другим методом является возможность вывода функциональной зависимости, если некоторые зависимости уже известны. Будем опираться при этом на следующее понятие:

Множество функциональных зависимостей F влечет функциональную зависимость X Y (F X Y), если каждое отношение, удовлетворяющее зависимостям из F, удовлетворяет и зависимости X Y.

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

Рассмотрим множество аксиом вывода, состоящее из шести аксиом. Предположим, что X, Y, Z и W - подмножества схемы R, тогда справедливы следующие аксиомы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]