Нека разгледаме релация R(A B C). Тук A, B и C са известни като атрибут на релацията R. Когато възникне следното условие; тогава транзитивната зависимост възниква в СУБД. Условията са A → B, B → C. Следователно условието става A → C. С други думи, можем да кажем, че когато зависимостите са направени от две функционални зависимости, тогава функционалните зависимости стават транзитивни зависимости.
Какво е преходна зависимост?
Да разгледаме релация R(A B C). Тук A, B и C са известни като атрибут на релацията R. Когато възникне следното условие; тогава транзитивната зависимост възниква в СУБД. Условията са A → B, B → C. Следователно условието става A → C. в транзитивните функционални зависимости зависимият е пряко зависим от детерминантата.
Нека разберем транзитивните зависимости с помощта на следния пример.
Author_ID | Автор | Книга | Автор_Националност |
---|---|---|---|
A1 | Арундати Рой | Богът на малките неща | Индия |
A1 | Киран Десай | Наследството на загубата | Индия |
A2 | Р. К. Нараян | Човекоядецът от Малгуди | Индия |
В горната таблица на авторите получаваме това.
Ако разгледаме внимателно функционалните зависимости, обсъдени по-горе, ще открием следния модел.
- A → B и B → C B → C; следователно A → CA → C.
- A → Книга, B → Автор B → Автор и C → Автор_Националност C→Автор_Националност
Да предположим, че прилагаме трета нормална форма (3NF) в горната авторска таблица. В този случай транзитивната зависимост на авторската таблица трябва да бъде премахната и процесът на премахване на транзитивните зависимости на базата данни е известен като процес на нормализиране.
Как да избегнем преходните зависимости?
Нека разгледаме отново горната таблица на автора и да видим какъв тип проблем възниква по време на създаването на таблицата.
Таблица на авторите:
Author_ID | Автор | Книга | Автор_Националност |
---|---|---|---|
A1 | Арундати Рой | Богът на малките неща | Индия |
A1 | Киран Десай | Наследството на загубата | Индия |
A2 | Р. К. Нараян | Човекоядецът от Малгуди | Индия |
Аномалиите в данните (като аномалии при актуализиране, вмъкване и изтриване) и несъответствието могат да бъдат допринесени от таблицата на автора. Когато има твърде много излишък в базата данни, тогава в данните се причиняват аномалии. Аномалии в данните също се причиняват, когато има проблем с актуализирането, изтриването и вмъкването на нови данни. Например в таблицата на автора-
- Не можем да добавим нов автор, докато не можем да добавим книга към таблицата.
- Не можем да изтрием автора, докато не изтрием напълно книгата от базата данни.
- Ако искаме да изтрием книгата „Богът на малките неща“, идентификационният номер, авторът и националността на автора също се изтриват.
Горните проблеми възникват във всяка връзка, която съдържа преходни зависимости.
Трета нормална форма чрез премахване на транзитивната зависимост
Нека разгледаме Авторска таблица с три атрибута (Author_ID, Author, Author_Nationality) и се опитайте да намерите и премахнете Transitive зависимостта от тази таблица,
Таблица на авторите:
Author_ID | Автор | Книга | Автор_Националност |
---|---|---|---|
A1 | Арундати Рой | Богът на малките неща | Индия |
A1 | Киран Десай | Наследството на загубата | Индия |
A2 | Р. К. Нараян | Човекоядецът от Малгуди | Индия |
Горната таблица на автора не е в 3NF, защото има транзитивна зависимост. Да видим как
форматирайте датата в java
- Автор → Автор_Националност Автор → Автор_Националност
- Author_ID → Автор
Следователно съществува и следната функционална зависимост,
- Authir_ID → Author_Nationality формира модел, подобен на това, което обсъдихме по-горе.
Сега, за да елиминираме транзитивната зависимост, всичко, което трябва да направим, е да разделим таблицата на автора по такъв начин, че Author_ID вече да не зависи функционално от Author_Nationality.
Нека създадем две таблици, едната съдържа само { Author_ID, Author}, а другата съдържа {Author_Nationality}. Новите таблици ще изглеждат така,
Таблица на автора
Author_ID | Автор |
---|---|
A1 | Богът на малките неща |
A2 | Наследството на загубата |
A3 | Човекоядецът от Малгуди |
Таблица за националност на автора
Автор | Автор_Националност |
---|---|
Арундати Рой | Индия |
Киран Десай | Индия |
Р. К. Нараян | Индия |
Сега новата таблица на автора и таблицата с националност на автора не съдържа транзитивна зависимост и релацията вече е в 3NF.