Идентифицируемость объектов
Для баз данных концепция идентифицируемости объектов (object identity ) сравнительно нова 3. Идея состоит в том, что в модели с идентифицируемостью объектов объект существует независимо от его значения. Таким образом, имеется два понятия эквивалентности объектов: два объекта могут быть идентичны (они представляют собой один и тот же объект) или они могут быть равны (они имеют одно и тоже значение). Это влечет две следствия: первое – разделяемые объекты, а второе – изменения объектов.
В модели с идентифицируемыми объектами два объекта могут иметь совместно используемый компонент. Таким образом, схематическим представлением сложного объекта является (ориентированный) граф, в то время как в системе без идентифицируемости объектов таким представлением является (ориентированное) дерево.
Идентифицируемость объектов обеспечивает мощный примитив манипулирования данными, который может служить основой для манипулирования множествами, кортежами или рекурсивными сложными объектами. Поддержка идентифицируемости объектов обеспечивает возможность реализации таких операций, как присваивание объекта, копирование объекта (как глубокое, так и поверхностное) и проверка идентичности объектов и их равенства (как глубокого, так и поверхностного).
Конечно, можно моделировать идентифицируемость объектов в системе, основанной на идентификации посредством значений, путем введения явных идентификаторов объектов. Однако такой подход перекладывает на пользователя бремя обеспечения уникальности идентификаторов объектов и поддержки ссылочной целостности (и это бремя может быть весьма значительным для таких операций, как “сборка мусора”).
Модели с идентифицируемостью объектов являются нормой в императивных языках программирования, где каждый объект, с которым имеет дело программа, идентифицируем и может быть изменен. Идентифицируемость объекта обеспечивается за счет наличия имени переменной или соответствующего физического адреса памяти. Однако эта концепция совершенно нова для чисто реляционных систем, где идентифицируемость кортежей отношения основывается на значениях.