Концептно-ориентированная модель
Материал из Википедии — свободной энциклопедии
Концептно-ориентированная модель данных основана на теории решеток и теории упорядоченных множеств. Другой источник идей, используемых при создании этой модели, это формальный концептный анализ. В основе концептно-ориентированного подхода лежит положение, что модель должна быть иерархической и многомерной одновременно. Она также пересекается с функциональной моделью данных и моделью данных, основанной на универсальном отношении.
Фундаментальный принцип концептно-ориентированной парадигмы состоит в том, что объекты живут в пространстве, структура которого описывает синтаксис или схему модели. Элементарные части пространства называются концептами, а объекты или экземпляры концептов называются элементами данных. Концепты аналогичны отношениям или таблицам в реляционной модели, тогда как элементы данных аналогичны строкам или записям.
Концептно-ориентированная модель позволяет разработчику баз данных описать естественное представление синтаксиса и семантики данных, которые обладают как иерархическими так и многомерными свойствами. Исходя всего лишь из небольшого количества основных понятий и принципов, этот подход позволяет смоделировать разнообразные существующие методы и практические примеры, такие как многозначные признаки, сложные отношения, группирование и агрегирование, онлайновую аналитическую обработку (OLAP), логический вывод, управление жизненным циклом, сложную категоризацию, онтологии и многие другие механизмы.
Содержание |
[править] Синтаксис модели
На синтаксическом уровне концепт определяется как комбинация его надконцептов. Как следствие каждый концепт одновременно включен в каждый из его надконцептов. Формально синтаксис или схема модели дополняются одним верхним концептом и одним нижним концептом, и тогда эта структура образует решетку. Верхний концепт является прямым или непрямым родителем любого другого концепта в модели тогда как нижний концепт прямо или косвенно включает любой другой концепт в модели.
Альтернативно концептно-ориентированный синтаксис (схема) может быть описан в традиционных терминах размерностей и доменов. Каждый надконцепт в определении концепта является доменом для размерности с данной парой подконцепт-надконцепт. Размерность обычно имеет уникальное имя в области своего концепта. Таким образом, каждый концепт определяется как множество имен размерностей со своими доменами в других концептах. Схема базы данных может быть тогда представлена ациклическим графом в котором узлы соответствуют концептам, а ребра размерностям, ведущим от концепта к его доменам в суперконцептах. Двойственным к размерности является понятие инверсной размерности, которое понимается как характеристика или атрибут, принимающий значения из какого-то надконцепта (а не подконцепта). Важно, что размерности однозначны, тогда как инверсные размерности многозначны.
[править] Семантика модели
На семантическом уровне модель данных представляется ее элементами данных. Элемент определяется как комбинация надэлементов взятых из надконцептов. Богатство концептно-ориентированной модели основано на существовании самых разных интерпретаций ее формальной семантики:
- Надэлемент может интерпретироватья как характеристика данного элемента, принимаемая соответствующим атрибутом или координата этого элемента в пространстве надконцепта. В этом случае целая может рассматриваться как иерархическая многомерная система координат, где объекты являются координатами для других объектов.
- Надэлементы могут также интерпретироваться как множества, группы или категории для своих подэлементов. Таким образом, каждый элемент в модели включается в несколько надэлементов-групп и сам включает свои подэлементы.
- Предполагается, что каждый элемент является экземпляром некоторого отношения по отношению к его надэлементам, и с другой стороны, его подэлементы связывают его с другими элементами в модели.
- Надэлемент может интерпретироваться как базовый объект для его подэлементов, и с другой стороны, подэлементы являются расширениями для его надэлементов.
[править] Пример
Диаграмма описывает синтаксическую структуру компании, которая получает заказы, состоящие из частей и затем выполняет их за несколько операций.
Синтаксически концепт Orders характеризуется двумя размерностями и двумя инверсными размерностями. Размерности имеют домены в концептах Addresses и Customers, а инверсные размерности имеют домены в концептах OrderParts и OrderOperations. Заметим, что размерности всегда принимают единственное значение и соответствуют отношению много-к-одному. Инверсные размерности принимают несколько значений и соответствуют отношению один-к-многим. Отношения многие-к-многим реализуются посредством общих подконцептов. Примитивная или каноническая размерность этой модели равна 7, поскольку это число путей от нижнего концепта к верхнему.
Семантически каждый заказ состоит либо из множества частей, либо из множества операций, которые необходимых для выполнения этого заказа. Двойственным образом, заказ является комбинацией одного адреса (доставки) и одного заказчика. В канонической форме каждый элемент мог бы быть представлен как комбинация 7 примитивных элементов данных.
Элементы-заказы интерпретируются как экземпляры отношений по отношению к их надэлементам из концептов Addresses и Customers. С другой стороны, эти же самые элементы-заказы связаны с другими элементами этой модели посредством подэлементов из OrderParts и OrderOperations, интерпретируемых как экземпляры отношений. Таким образом, роль элементов-заказов относительна и зависит от рассматриваемого уровня.
Верхний концепт представляет предметную область на наиболее абстрактном уровне без каких-либо деталей. Распространяя информацию наверх мы получаем агрегированные значения всех свойств целой компании. Например, можно вычислить общее количество заказов или операций в заказах, выполненных в компании, используя соответствующие инверсные размерности верхнего концепта. Одна инверсная размерность это путь в обратном направлении.
Нижний концепт представляет предметную область на наиболее детальном уровне и равен сумме всех концептов, которые не имеют подконцептов. Обычно этот уровень включает много элементов для которых можно получить много свойств, используя их размерности. Например, часть заказа характеризуется одним заказом и одним товаром, которые в свою очередь характеризуются их свойствами более высокого уровня и т. д. вплоть до верхнего концепта.
В решетке можно определить произвольное отношение, используя подконцепты нижнего уровня. Например, для каждого заказчика можно определить множество групп товаров, которые он когда-либо заказывал, как специальное отношение посредством концептов нижнего уровня Products, OrderParts и Orders.