Функциональная зависимость в СУБД: что такое, виды и примеры

Что такое функциональная зависимость?

Функциональная зависимость (ФД) — это ограничение, определяющее отношение одного атрибута к другому атрибуту в системе управления базами данных (СУБД). Функциональная зависимость помогает поддерживать качество данных в базе данных. Очень важно найти разницу между хорошим и плохим дизайном базы данных.

Функциональная зависимость обозначается стрелкой «→». Функциональная зависимость X от Y представлена ​​X → Y. Давайте разберемся с функциональной зависимостью в СУБД на примере.

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

Число работников Имя сотрудника Заработная плата Город
1 Dana 50000 Сан-Франциско
2 Фрэнсис 38000 Лондон
3 Эндрю 25000 Токио

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

Основные условия

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

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

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

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

  • Рефлексивное правило –. Если 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 Blue
H010 2015 Металлический
H033 2012 Серый

В этом примере maf_year и цвет независимы друг от друга, но зависят от car_model. В этом примере эти два столбца называются многозначными и зависят от car_model.

Эту зависимость можно представить следующим образом:

модель_автомобиля -> maf_year

car_model-> цвет

Тривиальная функциональная зависимость в СУБД

Тривиальная зависимость — это набор атрибутов, который называется тривиальным, если набор атрибутов включен в этот атрибут.

Итак, X -> Y является тривиальной функциональной зависимостью, если Y является подмножеством X. Давайте разберемся с примером тривиальной функциональной зависимости.

Например:

Эмп_ид Эмп_имя
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, то он считается нетривиальным. зависимость.

O компании CEO Возраст
Microsoft Наделла 51
Google Сундар Пичаи 46
Apple Тим Кук 57

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

(Компания} -> {CEO} (если мы знаем компанию, мы знаем имя генерального директора)

Но CEO не является подмножеством Company, и, следовательно, это нетривиальная функциональная зависимость.

Транзитивная зависимость в СУБД

Транзитивная зависимость — это тип функциональной зависимости, которая возникает, когда «t» косвенно формируется двумя функциональными зависимостями. Давайте разберемся на следующем примере транзитивной зависимости.

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

O компании CEO Возраст
Microsoft Наделла 51
Google Сундар Пичаи 46
Алибаба Джек Ма 54

{Компания} -> {CEO} (если мы знаем компанию, мы знаем имя ее генерального директора)

{CEO } -> {Age} Если мы знаем генерального директора, мы знаем его возраст.

Следовательно, согласно правилу правила транзитивной зависимости:

{Company} -> {Age} должно сохраняться, это имеет смысл, потому что, если мы знаем название компании, мы можем узнать ее возраст.

Примечание. Необходимо помнить, что транзитивная зависимость может возникать только в отношении трех и более атрибутов.

Что такое нормализация?

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

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

Преимущества функциональной зависимости

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

Резюме

  • Функциональная зависимость – это когда один атрибут определяет другой атрибут в система СУБД.
  • Аксиома, Разложение, Зависимый, Определитель, Объединение — ключевые термины функциональной зависимости.
  • Четыре типа функциональной зависимости: 1) Многозначная 2) Тривиальная 3) Нетривиальная 4) Транзитивная
  • Многозначная зависимость возникает в ситуации, когда в одной таблице имеется несколько независимых многозначных атрибутов.
  • Тривиальная зависимость возникает, когда набор атрибутов, который называется тривиальным, если этот набор атрибутов включен в этот атрибут.
  • Нетривиальная зависимость возникает, когда верно A->B, где B не является подмножеством A.
  • Транзитив — это тип функциональной зависимости, который возникает, когда он косвенно формируется двумя функциональными зависимостями.
  • Нормализация — это метод организации данных в базе данных, который помогает избежать избыточности данных.