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

Содержание:

Anonim

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

Функциональная зависимость (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
Google Сундар Пичай 46
яблоко Тим Кук 57

Пример:

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

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

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

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

Пример:

Компания Исполнительный директор Возраст
Microsoft Сатья Наделла 51
Google Сундар Пичай 46
Алибаба Джек Ма 54

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

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

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

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

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

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

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

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

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

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

Резюме

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