Базы данных

Экземпляры сущностей и значения атрибутов


Сущность — это экземпляр класса сущностей. Каждая сущность отличается значениями своих атрибутов. В 2.4 и 2.5 представлены четыре сущности класса Customer и пять сущностей класса videoTape соответственно.

Каждая сущность имеет значение для каждого из ее атрибутов, но это значение может являться специальным значением null (пусто), которое изображается в таблице в виде пустого поля. Например, значения атрибута otherUsers двух средних строк 2.4 равны null. Не всегда так просто узнать, что означает null. В данном случае, так как атрибут является множеством значений, null указывает на пустое множество значений, т.е. нет других пользователей, имеющих право использовать счет данного клиента. В других случаях значение null может означать следующее.

Не применим. Атрибут не применим к данной сущности и, следовательно, не должен иметь значения.

Отсутствует. Значение атрибута существует, но не записано.

Неизвестен. Значение атрибута может отсутствовать или быть не применимым.

Например, атрибут “имя супруга” лица, не состоящего в браке, должен иметь значение null потому, что этот атрибут не применим к данному человеку. Значение null атрибута роста человека означает, что значение отсутствует, так как понятно, что каждый человек имеет определенный рост. Значение null для номера телефона может означать как то, что у человека нет телефона (значение отсутствует), так и то, что номер телефона просто не записан (значение неизвестно). Значение null может означать, что данный человек отказывается предоставить свой номер телефона или что предоставленный номер оказался ошибочным или изменился и по этой причине был заменен на null. В последнем случае можно попытаться уточнить у клиента номер телефона. Уместно ли сделать это при следующем его визите в пункт проката? Значение null не дает достаточной информации для того, чтобы определить, как интерпретировать атрибут.

Для того чтобы отличать отсутствующие значения от неизвестных, можно воспользоваться трехзначной логикой. Рассмотрим атрибут сущности клиента has Phone. Значение true (истинно) указывает на наличие у клиента телефона, а значение false (ложно) говорит об отсутствии телефона. Значение null указывает, что неизвестно, имеет ли клиент телефон. Было даже предложено использовать четырехзначную логику: true, false, отсутствует, неприменим. Правильное толкование и использование в информационных системах значений null являются предметом бурной полемики. Дейт (С. J. Date) посвятил теме “отсутствующей информации” целую главу своей книги Введение в системы баз данных [Date99].

Комментарии закрыты