Главная » SQL, Базы данных » СПЕЦИАЛЬНЫЕ ЗНАЧЕНИЯ

0

Как показано выше, введение неопределенных значений (NULL) приводит к разрушению реляционной модели, которая великолепно обходилась без них в течение десяти лет с момента ее создания в 1969 году [6.1] и вплоть до введения этих значений в 1979 году [14.7].

Теперь предположим, как показано в разделе 19.4, что понятие неопределенных значений

в контексте представления отсутствующей информации заменено понятием специальных значений. Следует отметить, что в реальном мире мы обычно пользуемся именно специальными значениями. Например, специальное значение "?" используется для обозначения количества рабочих часов для некоторого сотрудника, если его фактическое значение по какой-либо причине не известно9. Таким образом, общая идея заключается в том, чтобы просто применять подходящее специальное значение, отличное от всех обычных значений атрибута, во всех тех случаях, когда обычное значение не может использоваться. Обратите внимание на то, что это специальное значение обязательно должно принадлежать к соответствующему типу. Поэтому в примере с данными о количестве рабочих

часов типом атрибута HOURS_WORKED является не просто целое число, а целые числа плюс специальное значение. (Здесь можно привести прекрасную аналогию — во многих карточных играх тип TRUMPS (Козыри) включает не четыре значения, а пять: "козыри — червы", "козыри — трефы", "козыри — бубны", "козыри — пики" и "игра без козырей".)

Безусловно, следует признать, что изложенная выше схема не очень изящна, но она обладает явным преимуществом, поскольку не подрывает логических основ  реляционной модели. В остальной части этой книги мы будем просто игнорировать возможность поддержки неопределенных значений (NULL), за исключением некоторых случаев, характерных для контекста языка SQL, когда те или иные ссылки на неопределенные значения (NULL) будут неизбежны. Более подробно вопросы об использовании схемы, основанной на специальных значениях, рассматриваются в [19.12].

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии