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