Учебники

10) Функциональная зависимость СУБД

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

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

Пример:

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

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

Транзитивная зависимость:

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

Пример:

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

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

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

Поэтому согласно правилу правила переходной зависимости:

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

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

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

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

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

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

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

Резюме

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