существовать правило, определяющее допустимость значений.
Правило целостности домена – это метаправило, правило о правилах.
2.3.5.2 Целостность сущности. Правило целостности
сущности часто формулируют как требование уникальности значений
первичного ключа. Однако, на самом деле это не так. Требование
целостности сущности состоит в том, что каждый кортеж любого
отношения должен быть идентифицируем. Иначе говоря, в БД не
должна храниться информация о чем-то таком, что мы не можем
идентифицировать.
Это требование связано с проблемой представления незнания в
БД. В реальной жизни в базу данных нередко приходится включать
кортежи, содержащие неизвестные значения некоторых атрибутов.
Например:
поставщик зарегистрирован, а статус его еще не определен;
руководство фирмы еще не решило, в каком городе
разместить производство изделия;
известна дата смерти исторического деятеля, а дата рождения
затерялась в глубине веков и т.п.
В подобных случаях соответствующим атрибутам
присваиваются так называемые Null-значения.
Null – это специальный маркер, показывающий, что значение
данного атрибута в настоящий момент неизвестно и, возможно, будет
введено впоследствии. Null не «ноль», не «пробел», и вообще, Null не
имеет типа. Этим маркером может быть помечен любой атрибут
любого кортежа.
Null обладает следующими свойствами:
всякое сравнение с участием Null дает результат Null;
все Null-значения различны;
отрицание Null – тоже Null.
Если какой-либо из атрибутов, входящих в состав первичного
ключа отношения, принял значение Null, то представленный этим
кортежем экземпляр объекта ПО невозможно идентифицировать.
Очевидно, нет смысла хранить в БД такую комбинацию значений.
В самом деле, что означает утверждение: «номер поставщика
неизвестен»? Мы еще не присвоили ему номер? Мы не знаем,