Функціональна залежність у СУБД: що таке, типи та приклади

Що таке функціональна залежність?

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

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

приклад:

Номер співробітника ім'я працівника Зарплата Місто
1 дана 50000 Сан Франциско
2 Френсіс 38000 Лондон
3 Ендрю 25000 Токіо

У цьому прикладі, якщо ми знаємо значення номера працівника, ми можемо отримати ім’я працівника, місто, зарплату тощо. Таким чином, ми можемо сказати, що місто, ім’я працівника та зарплата функціонально залежать від номера працівника.

Ключові терміни

Ось деякі ключові терміни для функціональної залежності в базі даних:

Ключові терміни Опис
аксіома Аксіоми — це набір правил висновку, які використовуються для висновку про всі функціональні залежності від реляційної бази даних.
Розкладання Це правило передбачає, що якщо у вас є таблиця, яка, здається, містить дві сутності, які визначаються одним і тим самим первинним ключем, вам слід розглянути можливість розбиття їх на дві різні таблиці.
Залежний Він відображається на праву частину діаграми функціональних залежностей.
Determinant Він відображається в лівій частині діаграми функціональних залежностей.
Union Це означає, що якщо дві таблиці окремі, а PK однаковий, вам слід розглянути можливість їх розміщення. разом

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

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

  • Рефлексивне правило –. Якщо X є набором атрибутів, а Y є_підмножиною X, тоді X містить значення Y.
  • Правило доповнення: коли x -> y виконується, а c встановлено атрибут, тоді ac -> bc також виконується. Це додавання атрибутів, які не змінюють основні залежності.
  • Правило транзитивності: це правило дуже схоже на правило транзитивності в алгебрі, якщо x -> y виконується і y -> z виконується, тоді x -> z також виконується. X -> y називається функціонально, що визначає y.

Типи функціональних залежностей у СУБД

Існує в основному чотири типи функціональної залежності в СУБД. Нижче наведено типи функціональних залежностей у СУБД:

  • Багатозначна залежність
  • Тривіальна функціональна залежність
  • Нетривіальна функціональна залежність
  • Транзитивна залежність

Багатозначна залежність у СУБД

Багатозначна залежність виникає в ситуації, коли в одній таблиці є кілька незалежних багатозначних атрибутів. Багатозначна залежність — це повне обмеження між двома наборами атрибутів у відношенні. Це вимагає, щоб у відношенні були присутні певні кортежі. Щоб зрозуміти, розгляньте наступний приклад багатозначної залежності.

приклад:

Модель_автомобіля Маф_рік Колір
H001 2017 Металевий
H001 2017 зелений
H005 2018 Металевий
H005 2018 синій
H010 2015 Металевий
H033 2012 сірий

У цьому прикладі maf_year і color не залежать один від одного, але залежать від car_model. У цьому прикладі ці два стовпці вважаються багатозначними, залежними від car_model.

Цю залежність можна представити так:

модель_авто -> maf_рік

модель автомобіля-> колір

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

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

Отже, 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, він вважається нетривіальним залежність.

Компанія CEO вік
Microsoft Сатья Наделла 51
Google Сундар Пічаї 46
Apple Тім Кук 57

приклад:

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

Але генеральний директор не є підмножиною компанії, а отже, це нетривіальна функціональна залежність.

Транзитивна залежність у СУБД

Транзитивна залежність — це тип функціональної залежності, який виникає, коли «t» опосередковано формується двома функціональними залежностями. Давайте розберемося на наступному прикладі транзитивної залежності.

приклад:

Компанія CEO вік
Microsoft Сатья Наделла 51
Google Сундар Пічаї 46
Alibaba Джек Ма 54

{Company} -> {CEO} (якщо ми знаємо компанію, ми знаємо ім’я її генерального директора)

{CEO } -> {Age} Якщо ми знаємо генерального директора, ми знаємо його вік

Тому згідно з правилом правила транзитивної залежності:

{Компанія} -> {Вік} має відповідати, це має сенс, оскільки якщо ми знаємо назву компанії, ми можемо знати її вік.

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

Що таке нормалізація?

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

Нормалізація властива теорії реляційних баз даних. Це може призвести до дублювання тих самих даних у базі даних, що може призвести до створення додаткових таблиць.

Переваги функціональної залежності

  • Функціональна залежність дозволяє уникнути надмірності даних. Тому ті самі дані не повторюються в кількох місцях база даних
  • Це допомагає вам підтримувати якість даних у базі даних
  • Це допоможе вам визначити значення та обмеження баз даних
  • Це допоможе вам визначити погані проекти
  • Це допоможе вам знайти факти щодо дизайну бази даних

Підсумки

  • Функціональна залежність – це коли один атрибут визначає інший атрибут у a Система СУБД.
  • Аксіома, декомпозиція, залежність, визначник, об’єднання є ключовими термінами для функціональної залежності
  • Чотири типи функціональної залежності: 1) багатозначна 2) тривіальна 3) нетривіальна 4) транзитивна
  • Багатозначна залежність виникає в ситуації, коли в одній таблиці є кілька незалежних багатозначних атрибутів
  • Тривіальна залежність виникає, коли набір атрибутів називається тривіальним, якщо набір атрибутів включено в цей атрибут
  • Нетривіальна залежність виникає, коли A->B виконується, де B не є підмножиною A
  • Транзитивність — це тип функціональної залежності, яка виникає, коли вона опосередковано утворена двома функціональними залежностями
  • Нормалізація — це метод організації даних у базі даних, який допомагає уникнути надмірності даних