Функционална зависимост в СУБД: Какво е, типове и примери

Съдържание:

Anonim

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

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

Функционалната зависимост се обозначава със стрелка „→“. Функционалната зависимост на X от Y е представена от X → Y. Нека разберем функционалната зависимост в СУБД с пример.

Пример:

Номер на служителя Име на служителя Заплата Град
1 Дана 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.

Видове функционални зависимости в СУБД

В СУБД има основно четири типа функционална зависимост. Следват типовете функционални зависимости в СУБД:

  • Многозначна зависимост
  • Тривиална функционална зависимост
  • Нетривиална функционална зависимост
  • Преходна зависимост

Многозначна зависимост в СУБД

Многозначната зависимост възниква в ситуацията, когато в една таблица има множество независими многозначни атрибути. Многозначната зависимост е пълно ограничение между два набора от атрибути в една връзка. Изисква определени кортежи да присъстват във връзка. Помислете за следния пример за многозначна зависимост, за да разберете.

Пример:

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
Apple Тим Кук 57

Пример:

(Company} -> {CEO} (ако познаваме компанията, знаем името на изпълнителния директор)

Но изпълнителният директор не е подмножество на компанията и следователно е нетривиална функционална зависимост.

Преходна зависимост в СУБД

Преходната зависимост е вид функционална зависимост, която се случва, когато t косвено се формира от две функционални зависимости. Нека разберем със следния пример за преходна зависимост.

Пример:

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

{Company} -> {CEO} (ако познаваме компанията, знаем името на нейния изпълнителен директор)

{CEO} -> {Age} Ако познаваме изпълнителния директор, знаем епохата

Следователно, според правилото за правило на преходна зависимост:

{Company} -> {Age} трябва да се държи, това има смисъл, защото ако знаем името на компанията, можем да знаем и неговата възраст.

Забележка: Трябва да запомните, че преходната зависимост може да възникне само във връзка с три или повече атрибута.

Какво е нормализация?

Нормализирането е метод за организиране на данните в базата данни, който ви помага да избегнете аномалия на излишък, вмъкване, актуализиране и изтриване на данни. Това е процес на анализ на релационните схеми въз основа на различните им функционални зависимости и първичен ключ.

Нормализацията е присъща на релационната теория на базата данни. Това може да доведе до дублиране на същите данни в базата данни, което може да доведе до създаването на допълнителни таблици.

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

  • Функционалната зависимост избягва излишък на данни. Следователно едни и същи данни не се повтарят на много места в тази база данни
  • Той ви помага да поддържате качеството на данните в базата данни
  • Той ви помага да дефинирате значения и ограничения на базите данни
  • Помага ви да идентифицирате лоши дизайни
  • Помага ви да намерите фактите относно дизайна на базата данни

Обобщение

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