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

       

Нарушают ли null’ы реляционную модель?


Соглашаясь со мной в нежелательности null’ов и 3VL, Рубинсон говорит, что «не убежден в том, что трехзначная логика нарушает реляционную модель». Но она действительно ее нарушает! Доводы предыдущего раздела, равно как и другие, которые здесь не используются, явным образом показывают, что таблица, «содержащая null’ы», не соответствует отношению в смысле реляционной модели, поскольку не удовлетворяет тому базовому реляционному требованию, что в каждой строке таблицы имеется значение для каждого столбца. Следовательно, фундаментальный объект в системе, поддерживающей null’ы, не является реляционной таблицей (я не знаю, чем она на самом деле является, но точно не реляционной таблицей). Повторю то, что говорится в [1] (и здесь я возвращаюсь к реляционной терминологии):

  • «Тип», содержащий null, не является типом (поскольку типы содержат значения).

  • «Кортеж», содержащий null, не является кортежем (поскольку кортежи содержат значения).

  • «Отношение», содержащее null, не является отношением (поскольку отношения содержат кортежи, а кортежи не содержат null’ы).

Подводя итог, надеюсь, что эта краткая заметка послужит поддержкой моего утверждения в [1] о том, что при наличии null’ов нельзя говорить о реляционной модели. Другими словами, я остаюсь при той своей позиции, что null’ы (и 3VL) и реляционная модель взаимно несовместимы.



Содержание раздела