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

Содержание

Слайд 2

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

Основной единицей представления данных в реляционной модели является

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

Слайд 3

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

На практике построение логической модели базы данных, независимо

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

Слайд 4

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

Формальных средств описания данных, необходимых для проверки правильности

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

Слайд 5

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

Любое априорное знание об ограничениях предметной области, накладываемых

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

Слайд 6

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

Кортежи отношений могут представлять экземпляры сущности предметной области

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

Слайд 7

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

Определение функции не накладывает никаких ограничений на множество

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

Слайд 8

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

Определение 1.
Пусть r (A1, A2, ..., An)

Понятие функциональной зависимости в данных Определение 1. Пусть r (A1, A2, ...,
- схема отношения R, a X и Y - подмножества r. Говорят, что Х функционально определяет Y, если каждому значению атрибутов кортежа отношения из Х соответствует не более одного значения атрибутов того же кортежа отношения из Y. Такая ФЗ обозначается как

Слайд 9

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

Пример:
ГРАФИК_ПОЛЕТОВ (Пилот, Рейс, Дата_вылета, Время_вылета)

Понятие функциональной зависимости в данных Пример: ГРАФИК_ПОЛЕТОВ (Пилот, Рейс, Дата_вылета, Время_вылета)

Слайд 10

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

Известно, что:
каждому рейсу соответствует определенное время вылета;

Понятие функциональной зависимости в данных Известно, что: каждому рейсу соответствует определенное время

для каждого пилота, даты и времени вылета возможен только один рейс;
на определенный день и рейс назначается определенный пилот.
Следовательно:
"Время_вылета" функционально зависим от "Рейс":
"Рейс"→ "Время_вылета";
"Рейс" функционально зависим от {"Пилот", "Дата_вылета", "Время_вылета"}:
{"Пилот", "Дата_вылета", "Время_вылета"} → "Рейс";
"Пилот" функционально зависим от {"Рейс", "Дата_вылета"}: {"Рейс", "Дата_вылета"} →"Пилот".

Слайд 11

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

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

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

Слайд 12

Для получения формального (строгого) определения наличия ФЗ в отношении нужно обратиться к

Для получения формального (строгого) определения наличия ФЗ в отношении нужно обратиться к
реляционным операциям.
Определение 2.
Пусть имеется отношение R со схемой r, X и Y - два подмножества R. ФЗ имеет место на R, если множество имеет не более одного кортежа для каждого значения х.
Такая ФЗ называется также F-зависимостью.

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

Слайд 13

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

Если семантика предметной области базы данных сложна, то

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

Слайд 14

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

Анализ связей между сущностями в предметных областях позволяет выделить

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

Слайд 15

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

Определение 3.
Говорят, что неключевой атрибут функционально полно зависит

Основные классы функциональных зависимостей Определение 3. Говорят, что неключевой атрибут функционально полно
от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Если неключевой атрибут зависит от части составного ключа, то говорят о частичной ФЗ.

Слайд 16

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

Пример: Частичные и полные ФЗ
ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ (Личный номер, Предмет, Фамилия,

Основные классы функциональных зависимостей Пример: Частичные и полные ФЗ ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ (Личный номер,
Должность, Оклад, Часы)

Слайд 17

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

Первичным ключом отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ является пара атрибутов Личный_номер-Предмет. Значения

Основные классы функциональных зависимостей Первичным ключом отношения ПРЕПОДАВАТЕЛЬ_ПРЕДМЕТ является пара атрибутов Личный_номер-Предмет.
атрибута Количество_часов зависят от значения атрибута Предмет, т.е. имеем частичную ФЗ
Предмет→Часы.
Значения атрибута Фамилия зависят от значений атрибутов Личный_номер-Предмет, т.е. имеем полную функциональную зависимость
{Личный_номер, Предмет} →Фамилия.

Слайд 18

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

Рассмотрим проблему избыточности данных с точки зрения существования определенных

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

Слайд 19

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

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

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

Слайд 20

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

Каким образом можно использовать это наблюдение с учетом семантики

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

Слайд 21

Анализ связей между сущностями в предметных областях позволяет определить, наряду с частичной

Анализ связей между сущностями в предметных областях позволяет определить, наряду с частичной
и полной ФЗ, еще несколько классов ФЗ.
Одним из таких классов является класс транзитивных ФЗ.
Определение 4.
Пусть X, Y, Z - атрибуты отношения R. Если при этом имеются ФЗ и , но отсутствуют ФЗ и , то говорят, что Z транзитивно зависит от Х. Такие ФЗ называются транзитивными (Т-зависимостями).

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

Слайд 22

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

Пример: Транзитивные ФЗ
Личный номер преподавателя определяет его должность,

Основные классы функциональных зависимостей Пример: Транзитивные ФЗ Личный номер преподавателя определяет его
т.е. имеет место ФЗ Личный_номер→Должность.
С другой стороны, согласно тарификации каждой должности назначается определенный оклад, т.е. имеет место ФЗ Должность→Оклад.
Каждый преподаватель получает за работу соответствующий должности оклад, т.е. оклад преподавателя определяется через его должность.

Слайд 23

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

Семантическая связь между атрибутами отношения может носить неоднозначный характер,

Основные классы функциональных зависимостей Семантическая связь между атрибутами отношения может носить неоднозначный
это порождает существование класса многозначных зависимостей (MV-зависимостей).
Пример: один преподаватель может преподавать несколько предметов, а один предмет может преподаваться несколькими преподавателями.
Многозначная зависимость может быть следующих типов: 1:N (один ко многим), M:1 (многие к одному) и M:N (многие ко многим).

Слайд 24

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

Определение 5.
Пусть r - некоторая схема отношения, X

Основные классы функциональных зависимостей Определение 5. Пусть r - некоторая схема отношения,
и Y - подмножества атрибутов r. Если при заданных значениях атрибутов из {X} существует некоторое множество, состоящее из нуля или более взаимосвязанных значений атрибутов из {Y}, никак не связанных со значениями других атрибутов этого отношения r - X - Y, то говорят о существовании многозначной зависимости между атрибутами X и Y: (класс MV-зависимостей).

Слайд 25

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

Разделение установленных функциональных зависимостей по различным отношениям может привести

Основные классы функциональных зависимостей Разделение установленных функциональных зависимостей по различным отношениям может
к нарушению принципа замкнутости реляционных операций, потере некоторых существующих кортежей или появлению мнимых кортежей.
Поэтому есть необходимость выделения еще одного класса функциональных зависимостей - класса зависимостей по соединению (J-зависимостей).
Этот класс ФЗ требует от ФЗ наличия свойства восстанавливаемости по своим проекциям с помощью естественного соединения.

Слайд 26

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

Пусть U - универсальное отношение, полученное объединением всех атрибутов

Основные классы функциональных зависимостей Пусть U - универсальное отношение, полученное объединением всех
сущностей предметной области в одно отношение.
Определение 6.
Пусть r = {r_1, …, r_p} - множество схем на U. Отношение R из множества U удовлетворяет зависимости по соединению, если R разлагается без потерь на r как

Слайд 27

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

Для каждой базы данных на множестве ее отношений можно

Аксиомы вывода функциональных зависимостей Для каждой базы данных на множестве ее отношений
рассмотреть все возможные, допустимые в семантическом смысле функциональные зависимости.
Для каждого отношения существует вполне определенное множество ФЗ между его атрибутами.
На практике число рассматриваемых атрибутов и ФЗ конечно (!).

Слайд 28

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

Поскольку ФЗ являются высказываниями об атрибутах сущностей предметной области,

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

Слайд 29

Математически задачу вывода базового набора ФЗ можно поставить следующим образом.
Пусть U

Математически задачу вывода базового набора ФЗ можно поставить следующим образом. Пусть U
{A1, A2, ..., An} - универсальное множество атрибутов, т.е. полный набор атрибутов отношения базы данных. Совокупность пар (X, Y), таких, что , задает структуру ФЗ отношения R. Такое отношение называют еще универсальным отношением.
Задача состоит в построении такого набора ФЗ, из которого могут быть получены все ФЗ базы данных.

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

Имя файла: Функциональные-зависимости.pptx
Количество просмотров: 41
Количество скачиваний: 0