Какво представлява транзитивната зависимост в база данни

Избягвайте преходните зависимости, за да помогнете за нормализирането

Транзитивната зависимост в база данни е непряка връзка между стойностите в същата таблица, която причинява функционална зависимост . За да постигнете стандарт за нормализиране на третата нормална форма (3NF), трябва да премахнете всяка транзитивна зависимост.

По своята същност транзитивната зависимост изисква три или повече атрибута (или колони за бази данни), които имат функционална зависимост между тях, което означава, че колона А в таблица разчита на колона Б чрез междинна колона В.

Да видим как това може да работи.

Пример за транзитивна зависимост

АВТОРИТЕ

Author_ID автор Книга Author_Nationality
Auth_001 Орсън Скот карта Играта на Ендър Съединени щати
Auth_001 Орсън Скот карта Играта на Ендър Съединени щати
Auth_002 Маргарет Атууд Приказката на Девалката Канада

В горния пример AUTHORS:

Но тази таблица въвежда транзитивна зависимост:

Избягване на преходни зависимости

За да се осигури трета нормална форма, да премахнем транзитивната зависимост.

Можем да започнем с премахването на колоната "Книга" от таблицата "Автори" и създаването на отделна таблица "Книги":

КНИГИ

Book_ID Книга Author_ID
Book_001 Играта на Ендър Auth_001
Book_001 Децата на ума Auth_001
Book_002 Приказката на Девалката Auth_002

АВТОРИТЕ

Author_ID автор Author_Nationality
Auth_001 Орсън Скот карта Съединени щати
Auth_002 Маргарет Атууд Канада

Това ли го оправи? Нека разгледаме нашите зависимости сега:

КНИГИ таблица :

Таблица "АВТОРИ" :

Трябва да добавим трета таблица, за да нормализираме тези данни:

ДЪРЖАВИ

Country_ID Държава
Coun_001 Съединени щати
Coun_002 Канада

АВТОРИТЕ

Author_ID автор Country_ID
Auth_001 Орсън Скот карта Coun_001
Auth_002 Маргарет Атууд Coun_002

Сега имаме три маси, като използваме чужди ключове за свързване между масите:

Защо транзитивните зависимости са лоши База данни

Каква е стойността на избягване на транзитивни зависимости, за да се гарантира, че 3NF? Да разгледаме отново първата ни маса и да видим създадените от нея проблеми:

АВТОРИТЕ

Author_ID автор Книга Author_Nationality
Auth_001 Орсън Скот карта Играта на Ендър Съединени щати
Auth_001 Орсън Скот карта Децата на ума Съединени щати
Auth_002 Маргарет Атууд Приказката на Девалката Канада

Този вид дизайн може да допринесе за аномалии и несъответствия в данните, например:

Това са само някои причини, поради които нормализирането и избягването на транзитивни зависимости защитават данните и осигуряват последователност.