Классика баз данных - статьи

       

Распространенная критика языка SQL состоит


Распространенная критика языка SQL состоит в том, что поддержка в языке неопределенных значений разрушает реляционную модель. Дейт приводит ряд доводов в пользу этой позиции. Наиболее фундаментальным является тот довод Дейта, что поскольку в SQL NULL определяется не как значение, а как некоторый флаг, означающий отсутствие значения в некотором атрибуте, домены не могут должным образом содержать неопределенные значения, поскольку, по определению, домены являются множествами значений. Следовательно, отношения, включающие неопределенные значения, отношениями, по существу, не являются, что подрывает самые глубинные основы реляционной модели []. Дейт также приводит более доступный аргумент, в котором он утверждает, что трехзначная логика, вытекающая из наличия неопределенных значений, может приводить к появлению абсурдных результатов. В этой заметке критикуется этот второй аргумент и демонстрируется, что Дейт неправильно использует трехзначную логику SQL. Поэтому критика Дейта является логически ошибочной и в действительности не может служить обвинением в адрес SQL, как это полагает Дейт. Однако следует заметить, что эта критика критики Дейта не направлена на защиту неопределенных значений или трехзначной логики в SQL. Скорее она призвана подчеркнуть, что трехзначная логика действительно может сбивать людей с толку. Использование неопределенных значений меняет смысл простых на вид запросов и, по всей вероятности, может приводить к многочисленным ошибкам, которые зачастую могут не опознаваться.

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