2.3.4 Основанная на объектах логическая модель

Первая модель, связанная с объектами, получила название модель сущность-связь или модель объект-отношение (entity/relationship (E/R) model). Модель начинается с определения объекта (сущность, единица данных). Например, в контексте управления персоналом объектом или единицей данных является сотрудник. Группу объектов (сотрудники предприятия) называют совокупностью объектов (или совокупностью единиц данных, множеством сущностей - entity set). Каждый объект характеризуют атрибуты, или свойства (attributes), которые описывают его. Свойством сотрудника (атрибутом) является, например, дата приема его на работу.
Для различения в наборе конкретных объектов или единиц данных используют ключ, который является одним из атрибутов объекта. Имеются различные ключи, но назначением всех их является уникальное отличие объекта среди объектов в наборе.
Первый тип ключа - это т.н. суперключ (superkey). Суперключ состоит из нескольких атрибутов, которые делают его сверхдостаточным, основываясь на его цели. Суперключом, например, может быть ключ, состоящий из группы свойств «номер счета», «название бюро» и «пол». Так как наличие номера лицевого счета само по себе достаточно, чтобы определить личность человека, то тогда такой ключ и является сверхдостаточным.
Ключ, который позволяет однозначно определить объект без чрезмерного использования атрибутов, может отделиться от суперключа и стать потенциальный ключом (candidate key) первичного ключа (primary key). В приведенном выше примере номер счета является хорошим примером потенциального ключа. Если потенциальных ключей больше, чем один, то выбирают один из них первичным ключом. На примере сотрудника конструируют первичный ключ полностью на атрибуте «номер сотрудника», поскольку внутри предприятия этот атрибут является, во всяком случае, уникальным и характеризует сотрудника больше, чем номер счета, который лучше в качестве первичного ключа для проведения различия между клиентами банка.
Связь, отношение или зависимость - это ссылка, которая создает логическую связь между объектами или совокупностями объектов. Например, на предприятии имеется взаимосвязь между совокупностью сотрудников и их пакетов заработных плат. Каждое отношение описывается группой свойств. В случае вышеприведенного примера связью между пакетом заработной платы и сотрудником могут быть номер сотрудника, номер месяца и номер года. Два связанные связью свойства могут быть разноуровневыми, например, одно является доминирующим (dominant) и другое подчиненным (subordinate). В приведенном примере номер сотрудника - доминирующий, ибо нельзя платить зарплату, если нет работника. Конечно, и обратное возможно, потому что заработная плата не выплачиваются, как правило, пока работник не отработал месяц времени.
Кардинальность является важным свойством (атрибутом) связи или отношения, и она определяет, какое имеется соответствие связанных полей данных. Отношения между работником и вознаграждением имеет тип «одного ко многим», который показывает, что общему сотруднику соответствует несколько пакетов заработной платы. Отношение, которое связывает вознаграждение с относительной выплатой, находится в связи «один к одному», которая указывает, что пакет вознаграждения должен соответствовать одной и только одной оплате (конкретная сумма заработной платы личности).
Отдельно стоит рассмотреть «слабые сущности» («weak entities»), или сущности, у которых отсутствует первичный ключ. Примером таких сущностей можно привести банковский депозит, чьим атрибутом является количество (сумма) и дату / время, или временная метка (timestamp). Невозможно определить первичный ключ, потому что разные люди могут сделать вклад одной величины в один и тот же момент времени. Вернее, эта сущность имеет зависимость многие-к-одному с сущностью, которая отображает номер банковского счета, на который был помещен вклад, и который, в свою очередь, является первичным ключом счета. Первичный ключ вклада составляют из атрибутов временной метки вклада и сущности «конто» (счет) номера счета.
Модель сущность-связь является первой и наиболее широко используемой моделью, но это не единственная логическая модель, поскольку с наступлением объектно-ориентированных языков широко распространились и объектно-ориентированные базы данных (object-oriented databases (OODB, русским акронимом может быть OOБД)). Понятие ООБД проистекает из использования принципов объектно-ориентированного программирования вместе с возможностью управления и хранения данных. ООБД используют в случае управления сложными структурами данных, где недостаточно только управление перечислением свойств, но где необходимо выполнить действия или процедуры, связанные с сохраненными данными.
Основные принципы ООБД такие же, как в объектно-ориентированном программировании:
- абстракция, или обобщение - свойство описывать аспекты функциональностей объектов и избегать внимания к деталям внутренней реализации
- инкапсуляция (encapsulation) или способность отделить внешние аспекты (функциональность) от внутреннего представления, поскольку оно не является существенным для верхних слоев приложения, то оно маскируется.
Оба приведенных аспекта позволяют объяснить (использовать) понятие абстрактного типа данных (abstract data types (ADT)).
Атрибуты характеризуют объекты (данные) и действия (как можно манипулировать объектами). Например, тип «текст» у объекта можно определить путем прибавления текстов операции добавления текста, или как поиск некоторого отрывка этого текста. Аналогично сущностям или множеству сущностей объект может принадлежать к классу объектов. Можно также определить, что объекты являются единственными экземплярами класса (или представителями класса), которые представляют некоторое известное приложения. У каждого объекта имеется свой признак (OID - object identifier), который является уникальным в рамках всей системы, и представляет собой ссылку на сам объект.