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

Зміст:

Anonim

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

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

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

Приклад:

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

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

У цьому підручнику ви дізнаєтесь:

  • Ключові терміни
  • Правила функціональних залежностей
  • Типи функціональних залежностей в СУБД
  • Багатозначна залежність в СУБД
  • Тривіальна функціональна залежність в СУБД
  • Нетрівіальна функціональна залежність в СУБД
  • Транзитивна залежність в СУБД
  • Що таке нормалізація?
  • Переваги функціональної залежності

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

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

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

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

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

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

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

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

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

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

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

Приклад:

Car_model 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

Приклад:

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

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

Перехідна залежність в СУБД

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

Приклад:

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

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

{CEO} -> {Age} Якщо ми знаємо CEO, ми знаємо Age

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

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

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

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

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

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

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

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

Резюме

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