Null — значение в базе данных


Для определения пропущенной или отсутствующей информации Эдвард Кодд ввел понятие метки Null (правило №2 реляционной модели) как некоторое значение, которое отсутствует.

Null – не ноль числовой, не пустая строка. Это просто нет значения. Пусто. Иногда его называют Unknown. Для реализации Null-значения в больших СУБД(в Desktop СУБД нулевые значения практически отсутствуют) в соответствующих колонках пишут Not Null. Эта колонка не будет поддерживать Null-значение. Если этого не приписать, то это автоматически означает, что какая-то колонка строковая, числовая, дата и т.д. будет поддерживать пустое значение.

Для реализации пустого значения автоматически СУБД отводит новый байт. Поэтому злоупотреблять этим не стоит. Байт не видим. Чем больше пустых значений разрешены в колонках…тем «шире» становится размер таблицы. Что касается ключей, то ограничение Unique допускает null-значения и все они считаются различными. Ограничение Primary Key не допускает возможности null-значения, то есть все родители должны быть идентифицированы.

Что касается Foreign Key, то есть возможность Set Null – таким образом, FK фактически разрешает наличие пустых значений. Например, ювелирные изделия, авторство которых установить на сегодняшний день невозможно. Или сотрудники предприятия, которые формально ни к какому отделу предприятия не приписаны. Или отсутствие даты рождения в соответствующей графе списка – дата есть, ее просто не указали! В то же время существует ситуации, когда пустые значения неуместны или просто бессмысленны. Например, грифы гитар изготавливаются из определенной породы дерева. И значение Null в данной графе будет неуместным. Таким образом, наличие Null- значений или их отсутствие в FK диктуется контекстом той или иной задачи.


Комментарии запрещены.




Статистика