Функциональная зависимость в СУБД: что такое, виды и примеры
Что такое функциональная зависимость?
Функциональная зависимость (ФД) — это ограничение, определяющее отношение одного атрибута к другому атрибуту в системе управления базами данных (СУБД). Функциональная зависимость помогает поддерживать качество данных в базе данных. Очень важно найти разницу между хорошим и плохим дизайном базы данных.
Функциональная зависимость обозначается стрелкой «→». Функциональная зависимость 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 |
Сундар Пичаи | 46 | |
Apple | Тим Кук | 57 |
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
(Компания} -> {CEO} (если мы знаем компанию, мы знаем имя генерального директора)
Но CEO не является подмножеством Company, и, следовательно, это нетривиальная функциональная зависимость.
Транзитивная зависимость в СУБД
Транзитивная зависимость — это тип функциональной зависимости, которая возникает, когда «t» косвенно формируется двумя функциональными зависимостями. Давайте разберемся на следующем примере транзитивной зависимости.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
O компании | CEO | Возраст |
---|---|---|
Microsoft | Наделла | 51 |
Сундар Пичаи | 46 | |
Алибаба | Джек Ма | 54 |
{Компания} -> {CEO} (если мы знаем компанию, мы знаем имя ее генерального директора)
{CEO } -> {Age} Если мы знаем генерального директора, мы знаем его возраст.
Следовательно, согласно правилу правила транзитивной зависимости:
{Company} -> {Age} должно сохраняться, это имеет смысл, потому что, если мы знаем название компании, мы можем узнать ее возраст.
Примечание. Необходимо помнить, что транзитивная зависимость может возникать только в отношении трех и более атрибутов.
Что такое нормализация?
Нормализация — это метод организации данных в базе данных, который помогает избежать избыточности данных, аномалий при вставке, обновлении и удалении. Это процесс анализа схем отношений на основе их различных функциональных зависимостей и первичного ключа.
Нормализация присуща теории реляционных баз данных. Это может привести к дублированию одних и тех же данных в базе данных, что может привести к созданию дополнительных таблиц.
Преимущества функциональной зависимости
- Функциональная зависимость позволяет избежать избыточности данных. Поэтому одни и те же данные не повторяются в нескольких местах в этом база данных
- Это помогает вам поддерживать качество данных в базе данных.
- Это поможет вам определить значения и ограничения баз данных.
- Это поможет вам выявить плохой дизайн.
- Это поможет вам найти факты, касающиеся дизайна базы данных.
Резюме
- Функциональная зависимость – это когда один атрибут определяет другой атрибут в система СУБД.
- Аксиома, Разложение, Зависимый, Определитель, Объединение — ключевые термины функциональной зависимости.
- Четыре типа функциональной зависимости: 1) Многозначная 2) Тривиальная 3) Нетривиальная 4) Транзитивная
- Многозначная зависимость возникает в ситуации, когда в одной таблице имеется несколько независимых многозначных атрибутов.
- Тривиальная зависимость возникает, когда набор атрибутов, который называется тривиальным, если этот набор атрибутов включен в этот атрибут.
- Нетривиальная зависимость возникает, когда верно A->B, где B не является подмножеством A.
- Транзитив — это тип функциональной зависимости, который возникает, когда он косвенно формируется двумя функциональными зависимостями.
- Нормализация — это метод организации данных в базе данных, который помогает избежать избыточности данных.