Что такое функциональная зависимость?
Функциональная зависимость (FD) определяет отношение одного атрибута к другому атрибуту в системе управления базами данных (СУБД). Функциональная зависимость помогает вам поддерживать качество данных в базе данных. Функциональная зависимость обозначена стрелкой →. Функциональная зависимость X от Y представлена X → Y. Функциональная зависимость играет жизненно важную роль, чтобы найти разницу между хорошим и плохим дизайном базы данных.
Пример:
Количество сотрудников | Имя сотрудника | Зарплата | город |
1 | Dana | 50000 | Сан-Франциско |
2 | Фрэнсис | 38000 | Лондон |
3 | Эндрю | 25000 | Токио |
В этом примере, если мы знаем значение номера сотрудника, мы можем получить имя сотрудника, город, зарплату и т. Д. Таким образом, мы можем сказать, что город, имя сотрудника и зарплата функционально зависят от номера сотрудника.
В этом уроке вы узнаете:
- Основные условия
- Правила функциональных зависимостей
- Типы функциональных зависимостей
- Многозначная зависимость в СУБД
- Тривиальная функциональная зависимость
- Нетривиальная функциональная зависимость в СУБД
- Транзитивная зависимость
- Что такое нормализация?
- Преимущества функциональной зависимости
Основные условия
Вот некоторые ключевые термины для функциональной зависимости:
Основные условия | Описание |
аксиома | Аксиомы — это набор правил вывода, используемых для определения всех функциональных зависимостей в реляционной базе данных. |
декомпозиция | Это правило, которое предполагает, что если у вас есть таблица, которая содержит две сущности, определяемые одним и тем же первичным ключом, то вам следует рассмотреть возможность разбивки их на две разные таблицы. |
зависимый | Он отображается в правой части диаграммы функциональной зависимости. |
детерминанта | Он отображается в левой части диаграммы функциональной зависимости. |
союз | Предполагается, что если две таблицы разделены, а PK одинаковы, вам следует рассмотреть возможность их размещения. все вместе |
Правила функциональных зависимостей
Ниже приведены три наиболее важных правила для функциональной зависимости:
- Рефлексивное правило. Если X является набором атрибутов, а Y is_subset_of X, то X содержит значение Y.
- Правило дополнения: когда выполняется x -> y и c установлен атрибут, то также выполняется ac -> bc. Это добавление атрибутов, которые не изменяют основные зависимости.
- Правило транзитивности. Это правило очень похоже на правило транзитивности в алгебре, если выполняется x -> y и y -> z, то x -> z также выполняется. X -> y называется функционально определяющим y.
Типы функциональных зависимостей
- Многозначная зависимость:
- Тривиальная функциональная зависимость :
- Нетривиальная функциональная зависимость :
- Транзитивная зависимость:
Многозначная зависимость в СУБД
Многозначная зависимость возникает в ситуации, когда в одной таблице имеется несколько независимых многозначных атрибутов. Многозначная зависимость — это полное ограничение между двумя наборами атрибутов в отношении. Это требует, чтобы определенные кортежи присутствовали в отношении.
Пример:
Модель автомобиля | Maf_year | цвет |
H001 | 2017 | металлический |
H001 | 2017 | зеленый |
H005 | 2018 | металлический |
H005 | 2018 | синий |
H010 | 2015 | металлический |
H033 | 2012 | Серый |
В этом примере maf_year и color не зависят друг от друга, но зависят от car_model. В этом примере эти два столбца называются многозначными и зависят от car_model.
Эта зависимость может быть представлена так:
car_model -> maf_year
car_model-> color
Тривиальная функциональная зависимость:
Тривиальная зависимость — это набор атрибутов, которые называются тривиальными, если набор атрибутов включен в этот атрибут.
Таким образом, X -> Y является тривиальной функциональной зависимостью, если Y является подмножеством X.
Например:
emp_id | Emp_name |
AS555 | Гарри |
AS811 | Джордж |
AS999 | Kevin |
Рассмотрим эту таблицу с двумя столбцами Emp_id и Emp_name.
{Emp_id, Emp_name} -> Emp_id является тривиальной функциональной зависимостью, поскольку Emp_id является подмножеством {Emp_id, Emp_name}.
Нетривиальная функциональная зависимость в СУБД
Функциональная зависимость, которая также известна как нетривиальная зависимость, возникает, когда A-> B выполняется, где B не является подмножеством A. В отношении, если атрибут B не является подмножеством атрибута A, то он рассматривается как нетривиальный зависимость.
Компания | Исполнительный директор | Возраст |
Microsoft | Сатья Наделла | 51 |
Сундар Пичаи | 46 | |
яблоко | Тим Кук | 57 |
Пример:
(Компания} -> {Генеральный директор} (если мы знаем Компанию, мы знаем имя генерального директора)
Но генеральный директор не является частью Компании, и, следовательно, это нетривиальная функциональная зависимость.
Транзитивная зависимость:
Транзитив — это тип функциональной зависимости, который возникает, когда t косвенно формируется двумя функциональными зависимостями.
Пример:
Компания | Исполнительный директор | Возраст |
Microsoft | Сатья Наделла | 51 |
Сундар Пичаи | 46 | |
Алибаба | Джек Ма | 54 |
{Company} -> {CEO} (если мы знаем компанию, мы знаем имя ее генерального директора)
{CEO} -> {Age} Если мы знаем генерального директора, мы знаем Age
Поэтому согласно правилу правила переходной зависимости:
{Company} -> {Age} должно иметь место, это имеет смысл, потому что, если мы знаем название компании, мы можем знать его возраст.
Примечание. Необходимо помнить, что транзитивная зависимость может иметь место только в отношении трех или более атрибутов.
Что такое нормализация?
Нормализация — это метод организации данных в базе данных, который помогает избежать аномалии избыточности, вставки, обновления и удаления данных. Это процесс анализа схем отношений на основе их различных функциональных зависимостей и первичного ключа.
Нормализация присуща теории реляционных баз данных. Это может привести к дублированию одних и тех же данных в базе данных, что может привести к созданию дополнительных таблиц.
Преимущества функциональной зависимости
- Функциональная зависимость позволяет избежать избыточности данных. Поэтому одни и те же данные не повторяются в нескольких местах в этой базе данных
- Это помогает вам поддерживать качество данных в базе данных
- Это поможет вам определить значения и ограничения баз данных
- Это поможет вам определить плохие проекты
- Это поможет вам найти факты, касающиеся дизайна базы данных
Резюме
- Функциональная зависимость — это когда один атрибут определяет другой атрибут в системе СУБД.
- Аксиома, Разложение, Зависимость, Детерминант, Объединение — ключевые термины для функциональной зависимости
- Четыре типа функциональной зависимости: 1) Многозначность 2) Тривиальная 3) Нетривиальная 4) Транзитивная
- Многозначная зависимость возникает в ситуации, когда в одной таблице несколько независимых многозначных атрибутов.
- Тривиальная зависимость возникает, когда набор атрибутов называется тривиальным, если набор атрибутов включен в этот атрибут
- Нетривиальная зависимость возникает, когда A-> B выполняется, где B не является подмножеством A
- Транзитив — это тип функциональной зависимости, который возникает, когда он косвенно формируется двумя функциональными зависимостями.
- Нормализация — это метод организации данных в базе данных, который помогает избежать избыточности данных.