Database Programming & Design



Практическая схема специальных значений - часть 2


Если на предприятии допускаются

счета нулевого размера, то наличие в столбце значения

"$000,000,00" будет означать a) счет нулевого размера и b)

"реальное значение отсутствует". Чтобы разобраться с подобными

омонимами, требуются дополнительные расходы. Выходом из положения

является добавления флага, отличающего нулевые счета ото всех

остальных, или использование в качестве специального значения

менее критичного и очень редко используемого реального значения

(например, "$999,999,98"). В последнем случае мы не устраняем

расходы на различение омономов, но существенно их сокращаем. На

самом деле, этот вид стратегии удешевленного использования

омонимов использовался десятки лет.

Наконец, заметим, что стратегия избежания омонимов с

использованием некоторого значения для идентификации "отсутствия

реального значения", не значащего ничего больше, предоставляет ту

же выразительную мощность (и те же сложности), что схема Дейта со

специальными значениями. Собственно, стратегия состоит в том,

чтобы найти представление UNK внутри обычного домена, а не

заставлять производителей СУБД расширять этот домен.

Новая схема Дейта является альтернативой MVL с неправильно

определенной операцией сравнения по равенству, полным отсутствием

операций сравнения на больше и меньше, невозможностью получать

полную информацию из базы данных и существенным усложнением

написания даже простых запросов. Более того, теперь, когда мы

понимаем, как далека схема Дейта от реализации, видно, что наши

дебаты не имеют непосредственного отношения к практической

разработке и использованию баз данных. И проектировщики, и

пользователи будут продолжать работать при наличии ограничений,

свойственных применяемым диалектам SQL.

Консерваторы будут избегать использовать неопределенные значения

и MVL, осмотрительно остерегаясь сложности. Чтобы им помочь, я

кратко изложил практический подход к управлению отсутствующей

информации, который может быть использован при наличии

сегодняшних продуктов баз данных. Этот подход не претендует на

оригинальность и лишь немного расширяет существующую практику.

Более рисковые пользователи будут использовать неопределенные

значения и, возможно, иногда им придется обжигаться. Но

постепенно у них составится понимание сути неопределенных

значений и MVL, которое невозможно получить при чтении книг.




Содержание  Назад  Вперед