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



         

Проблемы идентификации сущностей


Если этих проблем недостаточно, поговорим еще об одной проблеме, проблеме идентификации объектов и отношений. Как отмечалось выше, в объектных системах используется неявная форма идентификации, обычно основанная на расположении объекта в памяти (вездесущий указатель this). Это иногда также называют OID (Object Identifier, объектный идентификатор). Обычно это принято в системах, в которых напрямую не раскрывается расположение объектов в памяти, таких как объектные базы данных (в которых указатели в основной памяти являются довольно бессмысленными в качестве идентификаторов вне процессов базы данных). Однако в реляционной модели идентификация неявно присутствует внутри самого состояния – две строки с абсолютно одинаковым состоянием обычно считаются искажением реляционных данных, поскольку один и тот же факт, занесенный в базу данных дважды, является избыточным и непродуктивным. Для справедливости здесь следует говорить более точно; в действительности в реляционной системе допускаются кортежи-дубликаты (как отмечалось выше), но они часто запрещаются явными реляционными ограничениями, такими как ограничения PRIMARY KEY. В тех ситуациях, в которых значения-дубликаты допускаются, в реляционной системе отсутствует способ определить, какая из дублирующих строк выбирается – нет никакого неявного способа идентификации кортежей отношения, кроме как на основании его атрибутов. Это не так в случае объектных систем, в которых два объекта, обладающие абсолютно идентичными состояниями в двух разных областях памяти, в действительности являются разными объектами. (Из-за этого приходится различать операции «==» и «.equals()» в языках Java и C#.) Из этого вытекает простое следствие: если требуется согласовать в объектной и реляционной системах смысл идентификации, то в реляционной системе для обеспечения соответствия объектному идентификатору должно обеспечиваться некоторая разновидность уникального идентификатора (обычно автоинкрементный столбец целого типа).




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