Лекция 7 - Особенности проектирования реляционной БД_Часть 1

Содержание

Слайд 2

Курс лекций «Базы данных»

Функциональные зависимости
Типы функциональных зависимостей

Функциональные зависимости (ФЗ) являются отражением семантики

Курс лекций «Базы данных» Функциональные зависимости Типы функциональных зависимостей Функциональные зависимости (ФЗ)
взаимосвязи данных в предметной области.
Пусть R – переменная отношения, A, B – произвольные подмножества множества всех атрибутов R.
A→B, то есть B функционально зависит от A тогда и только тогда, когда для любого допустимого значения R каждое значение A связано только с одним значением B.
Левая часть выражения называется детерминантом (детерминантой) функциональной зависимости (ФЗ), правая – зависимой частью ФЗ.

Слайд 3

Курс лекций «Базы данных»

Примеры функциональных зависимостей
Пусть в отношении
СТУДЕНТ (Номер зачетной книжки,

Курс лекций «Базы данных» Примеры функциональных зависимостей Пусть в отношении СТУДЕНТ (Номер
Фамилия, Имя, Отчество, Адрес, Код группы)
существуют такие ФЗ:
Номер зачетной книжки → Фамилия, Имя, Отчество
Номер зачетной книжки → Адрес, Код группы
Номер зачетной книжки, Фамилия, Имя, Отчество → Адрес, Код группы
Множество атрибутов отношения, которое содержит в качестве подмножества потенциальный ключ называется суперключом этого отношения.

Слайд 4

Курс лекций «Базы данных»

Примеры функциональных взаимозависимостей
Если в то же отношение СТУДЕНТ  добавить

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

Слайд 5

Курс лекций «Базы данных»

Если существует функциональная зависимость вида А→В и В→А, то

Курс лекций «Базы данных» Если существует функциональная зависимость вида А→В и В→А,
между А и В имеется взаимно однозначное соответствие, или функциональная взаимозависимость.
Наличие функциональной взаимозависимости между атрибутами А и В обозначим, как А↔В или В↔А.
Существуют такие ФЗ, которые учитываются только формально, т.к. они всегда существуют и подразумеваются самим определением ФЗ. Это тривиальные ФЗ.
Тривиальная функциональная зависимость – это такая ФЗ, зависимая часть которой является подмножеством детерминанта.

Слайд 6

Курс лекций «Базы данных»

Пример тривиальной функциональной зависимости
Номер зачетной книжки, Фамилия, Имя, Отчество

Курс лекций «Базы данных» Пример тривиальной функциональной зависимости Номер зачетной книжки, Фамилия,
→ Фамилия, Имя, Отчество
Код группы, Курс → Курс
Множество всех функциональных зависимостей, которые задаются конкретным множеством функциональных зависимостей S, т. е. могут быть выведены из этих зависимостей, называется замыканием множества зависимостей S и обозначается S+.
Частичная функциональная зависимость – это зависимость неключевого атрибута от части составного ключа.

Слайд 7

Курс лекций «Базы данных»

Пример частичной функциональной зависимости
Для отношения ПРЕПОДАВАТЕЛЬ–ДИСЦИПЛИНА (Фамилия преподавателя,

Курс лекций «Базы данных» Пример частичной функциональной зависимости Для отношения ПРЕПОДАВАТЕЛЬ–ДИСЦИПЛИНА (Фамилия
Должность, Дисциплина, Часы) первичным ключом является
составной ключ – {Фамилия преподавателя, Дисциплина}.
Значение атрибута Часы зависит от атрибута Дисциплина, т.е. имеется частичная функциональная зависимость:
Дисциплина → Часы.
Атрибут С зависит от атрибута А транзитивно (существует транзитивная зависимость), если для атрибутов А, В, С выполняются условия А→В и В→С, но обратная зависимость отсутствует.

Слайд 8

Курс лекций «Базы данных»

Пример транзитивной функциональной зависимости
Пусть существует отношение
СОТРУДНИК (ФИО, Должность,

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

Слайд 9

Курс лекций «Базы данных»

Аксиомы вывода функциональных зависимостей

Пусть имеется отношение r
со схемой

Курс лекций «Базы данных» Аксиомы вывода функциональных зависимостей Пусть имеется отношение r
отношения R, X, Y, Z, W ⊆ R.
Рефлексивность: X→X.
Пополнение: если r удовлетворяет функциональной зависимости X→Y, то оно удовлетворяет и функциональной зависимости XZ→Y.
Аддитивность: если в отношении r заданы функциональные зависимости X→Y и X→Z, то существует функциональная зависимость X →YZ.

Слайд 10

Курс лекций «Базы данных»

Аксиомы вывода функциональных зависимостей

Проективность: если в отношении r задана

Курс лекций «Базы данных» Аксиомы вывода функциональных зависимостей Проективность: если в отношении
функциональная зависимость X→YZ, то существует и функциональная зависимость X → Y.
Транзитивность: если в отношении r заданы функциональные зависимости X→Y и Y→Z, то существует и функциональная зависимость X → Z.
Псевдотранзитивность: если в отношении r заданы функциональные зависимости X→Y и YZ→W, то существует и функциональная зависимость XZ→ W.
Данная система аксиом является полной и неизбыточной.

Слайд 11

Курс лекций «Базы данных»

В отношении R атрибут В многозначно зависит от атрибута

Курс лекций «Базы данных» В отношении R атрибут В многозначно зависит от
А, если каждому значению А соответствует множество значений В, не связанных с другими атрибутами из R.
Многозначные зависимости (МЗ) могут быть
«один ко многим» (1:М),
«многие к одному» (М:1)
«многие ко многим» (М:М), обозначаемые соответственно: А –>>В, А<<–В и А←→В.
Например, пусть преподаватель ведет несколько предметов, а каждый предмет может вестись несколькими преподавателями, тогда имеет место зависимость ФИО←→Предмет.

Слайд 12

Курс лекций «Базы данных»

Аксиомы вывода многозначных зависимостей

Пусть имеется отношение r со

Курс лекций «Базы данных» Аксиомы вывода многозначных зависимостей Пусть имеется отношение r
схемой отношения
R, X, Y, Z, W ⊆ R.
Рефлексивность: Х–>>Х.
Пополнение: если r удовлетворяет многозначной зависимости X–>>Y, то оно удовлетворяет и многозначной зависимости XZ–>>Y.
Аддитивность: если в отношении r заданы многозначные зависимости X–>>Y и X–>>Z, то существует и многозначная зависимость X–>>YZ.

Слайд 13

Проективность: если в отношении r задана многозначная зависимость (X –>>Y)&(X –>>Z), то

Проективность: если в отношении r задана многозначная зависимость (X –>>Y)&(X –>>Z), то
существует и многозначная зависимость X –>> (Y∩Z) или X –>> (Y – Z).
Транзитивность: если в отношении r заданы многозначные зависимости X –>> Y и Y–>>Z, то существует и многозначная зависимость
X –>> Z – Y.
Псевдотранзитивность: если в отношении r заданы многозначные зависимости X–>>Y и YW–>>Z, то существует и многозначная зависимость XW –>>Z – (YW).
Дополнение: если в отношении r заданы многозначные зависимости X–>>Y и Z=R–XY, то существует и многозначная зависимость X –>>Z.

Аксиомы вывода многозначных зависимостей

Курс лекций «Базы данных»

Слайд 14

Курс лекций «Базы данных»

Два или более атрибута называются взаимно независимыми, если ни

Курс лекций «Базы данных» Два или более атрибута называются взаимно независимыми, если
один из этих атрибутов не является функционально зависимым от других атрибутов.
В случае двух атрибутов отсутствие зависимости атрибута А от атрибута В можно обозначить так: А¬→В.
Случай, когда А¬→В и В¬→А, можно обозначить А¬ =В.

Слайд 15

Курс лекций «Базы данных»

Пример диаграммы зависимостей

Курс лекций «Базы данных» Пример диаграммы зависимостей