Что такое функциональная зависимость?
Функциональная зависимость (FD) - это ограничение, которое определяет отношение одного атрибута к другому атрибуту в системе управления базами данных (СУБД). Функциональная зависимость помогает поддерживать качество данных в базе данных. Очень важно найти разницу между хорошим и плохим дизайном базы данных.
Функциональная зависимость обозначена стрелкой «→». Функциональная зависимость X от Y представлена как X → Y. Давайте разберемся с функциональной зависимостью в СУБД на примере.
Пример:
Количество сотрудников | Имя сотрудника | Зарплата | Город |
1 | Дана | 50000 | Сан-Франциско |
2 | Фрэнсис | 38000 | Лондон |
3 | Андрей | 25000 | Токио |
В этом примере, если мы знаем значение номера сотрудника, мы можем получить имя сотрудника, город, зарплату и т. Д. Таким образом, мы можем сказать, что город, имя сотрудника и зарплата функционально зависят от номера сотрудника.
В этом руководстве вы узнаете:
- Ключевые термины
- Правила функциональных зависимостей
- Типы функциональных зависимостей в СУБД
- Многозначная зависимость в СУБД
- Тривиальная функциональная зависимость в СУБД
- Нетривиальная функциональная зависимость в СУБД
- Транзитивная зависимость в СУБД
- Что такое нормализация?
- Преимущества функциональной зависимости
Ключевые термины
Вот некоторые ключевые термины для функциональной зависимости в базе данных:
Ключевые термины | Описание |
Аксиома | Аксиомы - это набор правил вывода, используемых для вывода всех функциональных зависимостей от реляционной базы данных. |
Разложение | Это правило предполагает, что если у вас есть таблица, которая содержит две сущности, которые определяются одним и тем же первичным ключом, вам следует подумать о том, чтобы разбить их на две разные таблицы. |
Зависимый | Он отображается в правой части диаграммы функциональных зависимостей. |
Детерминант | Он отображается в левой части диаграммы функциональных зависимостей. |
Союз | Он предполагает, что если две таблицы разделены, а PK одинаков, вам следует рассмотреть возможность их размещения. вместе |
Правила функциональных зависимостей
Ниже приведены три наиболее важных правила функциональной зависимости в базе данных:
- Возвратное правило -. Если X - это набор атрибутов, а Y --_подмножество_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 и цвет не зависят друг от друга, но зависят от car_model. В этом примере говорится, что эти два столбца являются многозначными, зависящими от car_model.
Эту зависимость можно представить так:
car_model -> maf_year
car_model-> цвет
Тривиальная функциональная зависимость в СУБД
Тривиальная зависимость - это набор атрибутов, которые называются тривиальными, если набор атрибутов включен в этот атрибут.
Итак, X -> Y является тривиальной функциональной зависимостью, если Y является подмножеством X. Давайте разберемся с тривиальным примером функциональной зависимости.
Например:
Emp_id | Emp_name |
AS555 | Гарри |
AS811 | Георгий |
AS999 | Кевин |
Рассмотрим эту таблицу с двумя столбцами 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 |
Пример:
(Компания} -> {CEO} (если мы знаем компанию, мы знаем имя генерального директора)
Но генеральный директор не является частью компании, и, следовательно, это нетривиальная функциональная зависимость.
Транзитивная зависимость в СУБД
Транзитивная зависимость - это тип функциональной зависимости, которая возникает, когда t косвенно формируется двумя функциональными зависимостями. Давайте разберемся со следующим примером транзитивной зависимости.
Пример:
Компания | Исполнительный директор | Возраст |
Microsoft | Сатья Наделла | 51 |
Сундар Пичай | 46 | |
Алибаба | Джек Ма | 54 |
{Компания} -> {CEO} (если мы знаем компанию, мы знаем имя ее генерального директора)
{CEO} -> {Age} Если мы знаем генерального директора, мы знаем его возраст
Следовательно, согласно правилу правила транзитивной зависимости:
{Компания} -> {Возраст} следует придерживаться, это имеет смысл, потому что, если мы знаем название компании, мы можем узнать его возраст.
Примечание. Следует помнить, что транзитивная зависимость может возникать только в отношении трех или более атрибутов.
Что такое нормализация?
Нормализация - это метод организации данных в базе данных, который помогает избежать избыточности данных, аномалий при вставке, обновлении и удалении. Это процесс анализа схем отношений на основе их различных функциональных зависимостей и первичного ключа.
Нормализация присуща теории реляционных баз данных. Это может привести к дублированию одних и тех же данных в базе данных, что может привести к созданию дополнительных таблиц.
Преимущества функциональной зависимости
- Функциональная зависимость позволяет избежать избыточности данных. Поэтому одни и те же данные не повторяются в нескольких местах в этой базе данных.
- Помогает поддерживать качество данных в базе данных.
- Это поможет вам определить значения и ограничения баз данных.
- Это поможет вам определить плохой дизайн
- Это поможет вам найти факты, касающиеся дизайна базы данных.
Резюме
- Функциональная зависимость - это когда один атрибут определяет другой атрибут в системе СУБД.
- Аксиома, Декомпозиция, Зависимость, Детерминант, Союз - ключевые термины для функциональной зависимости.
- Четыре типа функциональной зависимости: 1) многозначная 2) тривиальная 3) нетривиальная 4) транзитивная.
- Многозначная зависимость возникает в ситуации, когда в одной таблице есть несколько независимых многозначных атрибутов.
- Тривиальная зависимость возникает, когда набор атрибутов, который называется тривиальным, если набор атрибутов включен в этот атрибут
- Нетривиальная зависимость возникает, когда A-> B выполняется, когда B не является подмножеством A
- Транзитив - это тип функциональной зависимости, которая возникает, когда она косвенно формируется двумя функциональными зависимостями.
- Нормализация - это метод организации данных в базе данных, который помогает избежать избыточности данных.