Каковы зависимости базы данных?

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

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

Зависимости базы данных и функциональные зависимости

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

 A -> B 

Например, в таблице, в которой перечислены характеристики сотрудника, включая номер социального страхования (SSN) и имя, можно сказать, что имя зависит от SSN (или SSN -> имя), поскольку имя сотрудника может быть однозначно определено из SSN. Однако обратное утверждение (имя -> SSN) неверно, поскольку несколько сотрудников могут иметь одно и то же имя, но всегда иметь разные SSN.

Тривиальные функциональные зависимости

Тривиальная функциональная зависимость возникает, когда вы описываете функциональную зависимость атрибута от коллекции атрибутов, которая включает исходный атрибут. Например, {A, B} -> B – это тривиальная функциональная зависимость, как и {name, SSN} -> SSN. Этот тип функциональной зависимости называется тривиальным, потому что он может быть выведен из здравого смысла. Очевидно, что если вы уже знаете значение B, то значение B может быть однозначно определено этими знаниями.

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

Полная функциональная зависимость возникает, когда вы уже удовлетворяете требованиям для функциональной зависимости, и набор атрибутов в левой части оператора функциональной зависимости больше не может быть уменьшен. Например, {SSN, age} -> name – это функциональная зависимость, но она не является полной функциональной зависимостью, потому что вы можете удалить age из левой части оператора, не затрагивая отношения зависимости.

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

Транзитивные зависимости возникают, когда существует косвенная связь, которая вызывает функциональную зависимость. Например, A -> C является транзитивной зависимостью, когда она истинна только потому, что оба – A -> B и B -> C – истина.

Многозначные зависимости

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

Важность зависимостей

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

  • Чтобы таблица находилась во второй нормальной форме (2NF), в таблице не должно быть ни одного атрибута, не являющегося простым, который функционально зависит от подмножества ключа-кандидата.
  • Чтобы таблица находилась в третьей нормальной форме (3NF), каждый непростой атрибут должен иметь нетранзитивную функциональную зависимость от каждого ключа-кандидата.
  • Чтобы таблица находилась в нормальной форме Бойса-Кодда (BCNF), каждая функциональная зависимость (кроме тривиальных зависимостей) должна быть в суперключе.
  • Чтобы таблица была в четвертой нормальной форме (4NF), она не должна иметь многозначных зависимостей.
Оцените статью
Solutics.ru
Добавить комментарий