Приложения

Многозначная зависимость в проектировании баз данных

В реляционной базе данных зависимость возникает, когда информация, хранящаяся в той же таблице базы данных, однозначно определяет другую информацию, хранящуюся в той же таблице. Многозначная зависимость возникает, когда наличие одной или нескольких строк в таблице подразумевает наличие одной или нескольких других строк в этой же таблице. Другими словами, два атрибута (или столбца) в таблице не зависят друг от друга, но оба зависят от третьего атрибута.

Многозначная зависимость препятствует нормализации стандарта четвертой нормальной формы . Реляционные базы данных следуют пяти нормальным формам, которые представляют руководящие принципы для дизайна записей. Они предотвращают аномалии обновления и несоответствия в данных. Четвертая нормальная форма имеет дело с отношениями многие-к-одному в базе данных .

Функциональная зависимость против многозначной зависимости

Если атрибут X однозначно определяет атрибут Y, то Y функционально зависит от X. Это записывается как X -> Y. Например, в таблице учеников ниже, Student_Name определяет Major:

Имя студента Основной
Ravi История искусства
в промежутке Химия
Ученики

Эта функциональная зависимость может быть записана: Student_Name -> Major . Каждое Student_Name определяет ровно один Major и не более.

Если вы хотите, чтобы база данных также отслеживала виды спорта, которыми занимаются эти студенты, вы можете подумать, что самый простой способ сделать это — просто добавить еще один столбец под названием Спорт:

Имя студента Основной спорт
Ravi История искусства Футбольный
Ravi История искусства Волейбол
Ravi История искусства Теннис
в промежутке Химия Теннис
в промежутке Химия Футбольный
Ученики

Проблема в том, что Рави и Бет занимаются несколькими видами спорта. Необходимо добавить новую строку для каждого дополнительного вида спорта. 

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

Многозначная зависимость записывается X -> -> Y. В этом случае:

Student_Name   -> ->  Major
Student_Name  -> ->  Спорт

Это читается как «Student_Name multidetermines определяет Major» и «Student_Name multidetermines определяет Sport».

Многозначная зависимость всегда требует как минимум трех атрибутов, поскольку она состоит как минимум из двух атрибутов, которые зависят от третьего.

Многозначная зависимость и нормализация

Таблица с многозначной зависимостью нарушает стандарт нормализации четвертой нормальной формы, поскольку создает ненужные избыточности и может вносить вклад в противоречивые данные. Чтобы довести это до 4NF, необходимо разбить эту информацию на две таблицы.

Похожие посты
Приложения

34 лучших бесплатных программных инструмента для резервного копирования

Приложения

Лучшие онлайн-инструменты для встреч

Приложения

11 лучших бесплатных почтовых аккаунтов

Приложения

7 бесплатных языков программирования для обучения детей кодированию