Функціональна залежність у СУБД: що таке, типи та приклади
Що таке функціональна залежність?
Функціональна залежність (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 |
Сундар Пічаї | 46 | |
Apple | Тім Кук | 57 |
приклад:
(Компанія} -> {Генеральний директор} (якщо ми знаємо компанію, ми знаємо ім’я генерального директора)
Але генеральний директор не є підмножиною компанії, а отже, це нетривіальна функціональна залежність.
Транзитивна залежність у СУБД
Транзитивна залежність — це тип функціональної залежності, який виникає, коли «t» опосередковано формується двома функціональними залежностями. Давайте розберемося на наступному прикладі транзитивної залежності.
приклад:
Компанія | CEO | вік |
---|---|---|
Microsoft | Сатья Наделла | 51 |
Сундар Пічаї | 46 | |
Alibaba | Джек Ма | 54 |
{Company} -> {CEO} (якщо ми знаємо компанію, ми знаємо ім’я її генерального директора)
{CEO } -> {Age} Якщо ми знаємо генерального директора, ми знаємо його вік
Тому згідно з правилом правила транзитивної залежності:
{Компанія} -> {Вік} має відповідати, це має сенс, оскільки якщо ми знаємо назву компанії, ми можемо знати її вік.
Примітка. Потрібно пам’ятати, що транзитивна залежність може виникати лише у відношенні трьох або більше атрибутів.
Що таке нормалізація?
Нормалізація — це метод організації даних у базі даних, який допомагає уникнути надмірності даних, аномалій вставки, оновлення та видалення. Це процес аналізу схем відношень на основі їх різних функціональних залежностей і первинного ключа.
Нормалізація властива теорії реляційних баз даних. Це може призвести до дублювання тих самих даних у базі даних, що може призвести до створення додаткових таблиць.
Переваги функціональної залежності
- Функціональна залежність дозволяє уникнути надмірності даних. Тому ті самі дані не повторюються в кількох місцях база даних
- Це допомагає вам підтримувати якість даних у базі даних
- Це допоможе вам визначити значення та обмеження баз даних
- Це допоможе вам визначити погані проекти
- Це допоможе вам знайти факти щодо дизайну бази даних
Підсумки
- Функціональна залежність – це коли один атрибут визначає інший атрибут у a Система СУБД.
- Аксіома, декомпозиція, залежність, визначник, об’єднання є ключовими термінами для функціональної залежності
- Чотири типи функціональної залежності: 1) багатозначна 2) тривіальна 3) нетривіальна 4) транзитивна
- Багатозначна залежність виникає в ситуації, коли в одній таблиці є кілька незалежних багатозначних атрибутів
- Тривіальна залежність виникає, коли набір атрибутів називається тривіальним, якщо набір атрибутів включено в цей атрибут
- Нетривіальна залежність виникає, коли A->B виконується, де B не є підмножиною A
- Транзитивність — це тип функціональної залежності, яка виникає, коли вона опосередковано утворена двома функціональними залежностями
- Нормалізація — це метод організації даних у базі даних, який допомагає уникнути надмірності даних