Сущности и связи: отражение в свойствах

При проектировании баз данных для понимания предметной области мы делаем ее концептуальную модель, в которой описываем сущности, связи и свойства. При этом, сущности и связи можно достаточно однозначно определить. Но со свойствами сущностей все намного интереснее. Практика проектирования показывает, что определение свойств зависит от связей между сущностями и от нашего понимания процессов и требований к решению, которое мы разрабатываем.

Сущности связаны между собой через определенные события, состояния или отношения. При этом связи являются двухсторонними и отражаются на обе связанные сущности как свойства.

Сущность может иметь постоянные собственные (идентификационные) свойства, или присоединенные (функциональные), возникающие или изменяющиеся в зависимости от состояния или точки зрения.

Рассмотрим в качестве примера анализ сущностей и связей для человека.

links

Вначале определим типы связей:

  • Событие — с точки зрения самого человека, его рождение является начальным событием его бытия. А с точки зрения врача это может быть процесс и его результат как конечное состояние.
  • Состояние/Процесс — проживание человека в квартире, использование телефона, и обслуживание коммунальной компанией дома является состоянием с точки зрения самого человека, или процессом для провайдера услуг связи или коммунальной компанией.
  • “Часть — Целое” как пространственно-логическое отношение между квартирой и домом, проецирующие отношения с другими сущностями между собой (человек проживает в квартире И в доме, коммунальная компания обслуживает дом И квартиры в нем).
  • Логическая связь “Род-Вид” — в данном примере отношение между просто телефоном и стационарным телефоном, который устанавливается в квартире и, соответственно, имеет адрес установки.

Есть постоянные (генетические) и переменные (функциональные) связи. Например, у каждого человека есть родители, благодаря которым он родился. А телефонный номер или квартира могут меняться многократно в течении его жизни.

Логические связи позволяют нам делать семантические вычисления — проецировать по таким связям свойства с одних сущностей на другие. Например, если квартира является частью дома, то человек проживает не только в квартире, но и в доме. Также, если коммунальная компания обслуживает дом, значит она обслуживает и квартиры в этом доме.

Семантические вычисления также могут производиться на основе комплексных связей, объединяющих между собой простые связи. Например, если человек проживает в квартире, и в ней установлен стационарный телефон, то это значит, что он является абонентом или пользователем данного телефона.

Благодаря рождению и своим родителям человек имеет дату рождения и полное имя (ФИО), которое при желании он может поменять. Тем не менее имя и дата рождения человека являются его  постоянными и идентифицирующими свойствами.

Родители также имеют свойство “Дети”, в котором перечисляются люди, которые от них родились.

property-reflection

Рисунок 2. Взаимное отражение сущностей через свойства.

Человек может также пользоваться телефоном, и для него можно указать свойство “Номер телефона”. А у телефонного номера, соответственно, появляются свойства “Абонент” и “Период обслуживания”.

У провайдера услуг связи, так же как и у родителей имеется свойство “Номерная емкость”, в которой перечисляются доступные номера телефонов, и свойство “Абоненты”, в котором перечисляются пользователи услуг. У телефона также имеется свойство “Провайдер”.

Если телефон стационарный и установлен на квартире, то у него появляется свойство “Адрес установки”.

При проживании человека в квартире у него появляется свойство “Адрес”, а у квартиры появляются свойства “Жилец” и “Период проживания”. При наличии стационарного телефона добавляется свойство “Телефонный номер”.

Квартира является частью дома, поэтому у нее есть свойство “Номер дома”. А у дома имеется свойства “Жильцы” и “Квартиры”. Также у дома есть свойство “Обслуживающая компания”, поскольку имеется связь “Обслуживание” с коммунальной компанией.

Обслуживание дома также является и обслуживанием квартир в этом доме. Проецирование связи “Обслуживание” с дома на квартиру производится благодаря отношению “Часть -Целое” между квартирой и домом.

Коммунальная компания имеет свойства “Обслуживаемые дома” и “Жильцы”, определяющие обслуживаемых ими объектов и клиентов.

Все свойства возникают при взаимодействии или отношении одной сущности с другими сущностями, зависят от контекста. Например, имя человека может быть представлено на разных языках, причем, не всегда можно найти соответствие. Либо дата рождения может считаться в разных календарях.

Наглядный пример это свойства самого элементарного объекта — точки. Размер на рисунке точка имеет только для наглядности. Ее местоположение задается разными координатами в различных системах координат, цвет зависит от освещения. Следовательно, координаты и цвет точки являются не собственными, а присоединенными свойствами.

Физики, в теории относительности и в квантовой теории вывели субъектность реальности, ее зависимость от точки зрения.

coordinate-system

Рисунок 3. Относительность значений свойств от заданной системы координат.

Реляционные базы данных и SQL технически предоставляют неограниченные возможности по обработки данных, но фактически мы жестко ограничены существующей структурой данных и во многих случаях получаем слишком громоздкие конструкции, которые мешают нам понимать смысл данных.

Поэтому идут постоянные поиски и разработки в области следующего, семантического, уровня технологий обработки данных. Разрабатываются онтологии и базы знаний, которые успешно применяются в разных областях деятельности, от обучения и медицины, до ситуационного и стратегического управления.