12.1 Сущности с разносортными атрибутами
Какие концепты могут отображаться в базах данных
В предыдущих разделах для описания сущности задавалось её уникальное имя и один или более атрибутов. Неявно предполагалось существование не менее одного атрибута, а в описаниях экземпляров сущностей обязательное задание значений всех атрибутов. Допускалось, что значения некоторых атрибутов может быть неизвестно, и тогда им присваивался символ отсутствующего значения NULL. Атрибуты рассмотренного вида будем называть обязательными. Долгое время все атрибуты считались обязательными, что соответствовало идеологии и духу учётных систем. Трудно представить себе, например, ведомость на выплату зарплаты, в которой для некоторых работников не обязательно указание фамилии.
В полуструктурированных данных часть атрибутов обязательна, а другие атрибуты, не обязательные, могут существовать у одних экземпляров сущности и отсутствовать у других. Представим, что необходимо выяснить круг лиц интересующихся некоторым сайтом. Можно, конечно, запретить вход на сайт лицам, которые точно не укажут имена, явки, пароли, серию, номер паспорта и массу других нужных нам сведений. Но ведь они могут просто отказаться от посещения сайта? Так что лучше уж разрешить посетителям сообщить о себе что-нибудь и добавить сведения, которые они сочтут важными. Если кто-то в графе ”имя” напишет ”DJVasja”, то я конечно буду знать, что это не человеческое имя, но ведь оно как-то характеризует посетителя. А если кто-то сам добавит атрибут ”цвет глаз” со значением “голубые”, то это повод выделить подкатегорию лиц, для которых цвет глаз важен.
Можно считать, что переход от хорошо структурированных данных с обязательными атрибутами к полуструктурированным данным -- это движение от систем с обученными и ответственными пользователями к системам с неквалифицированными (в рамках системы) и безответственными пользователями.
Существуют концепты без атрибутов. Их часто используют философы, создавая некоторые структуры из двух и более концептов, например, используя противопоставления или перечни альтернатив. С концептами без атрибутов можно работать, используя естественные для человека рассуждения на примерах. В качестве полезного и совсем не тривиального упражнения предлагается построить базу, допускающую сущности без атрибутов.
В общем случае можно предположить существование концептов со сложно структурированными системами разносортных атрибутов. Достаточно широкое определение концепта можно получить, выделив пять классов атрибутов – обязательные, необязательные, состояния, ресурсы и смыслы. Предполагается, что в моделях понятий допускаются некоторые структуры на атрибутах, а пути сужения/обобщения понятий задаются явно. Могут использоваться ограничения на значения атрибутов и их комбинаций.
Кроме приведенной классификации по сортам атрибутов можно разбить концепты предметной области по их назначению на предметные (вещные, энергетические, информационные) сущности, сущности-связи и сущности-процессы.
Связи рассматриваются как концепты с двумя основными видами атрибутов. Первые определяют стороны связи, а вторые эмерджентные свойства, появляющиеся только при наличии связи. Понятия-связи могут уточняться добавлением атрибутов, определяющих возможность задействования связи, в частности, задающих нелинейности, и атрибутов, определяющих состояние и историю связи.
Конечно, искушённый читатель понимает, что создать, например, таблицу, хранящую атрибуты такой связи недостаточно. Необходимо обеспечить её активность.
Сущности-процессы можно определить как связи особого вида с четырьмя группами атрибутов, определяющих то, что действует (субъект), то, над чем выполняется действие (объект), какое действие (сценарий) выполняется и, наконец, при каких условиях, с какими ограничениями и свойствами идёт процесс. Под сценарием следует понимать связный и взаимно обусловленный набор действий.
Для открытых систем выделяется класс сущностей-ресурсов. Желательно определить для них характеристики доступности и, если это возможно, законы сохранения и преобразования, хотя бы локальные. Используются ограничения на ресурсы и атрибуты любых концептов.
Сами ресурсы многосортны, а ресурсы некоторых сортов могут порождать ресурсы других сортов. Важно понимать, что ресурс может быть доступен экземпляру сущности или всему классу, но не является их свойством.
По-видимому, наиболее естественный подход к моделированию систем с ресурсами это разработка системы концептов, позволяющих описывать вмещающие пространства, существующие в них потоки ресурсов и распределенные объекты изучаемой системы.
Атрибуты и шкалы измерения
Элементы данных, хранящиеся в базе, получаются в двух родственных процессах измерения и распознавания. Будем рассматривать процесс измерения как определение термина из словаря результатов измерений, который описывает результат измерения наилучшим, в некотором смысле, способом. Инвариантность результатов измерений определяют шкалы измерений. Формально шкала это отображение : OR действующее из множества O измеряемых объектов в множество результатов измерений R. Определяющим компонентом шкалы является либо множество допустимых преобразований результатов измерений, либо обязательный набор отношений.
Шкала определяет допустимые способы обработки данных – адекватные статистики, а для некоторых областей, например, социологии может задавать более тонкие свойства, например, существенность, значимость результата измерений.
А нам зачем шкалы? За тем, что они дают ещё один смысл, ограничивающий допустимую обработку данных хранящихся в базе.
Существует пять основных шкал -- наименований, порядка, интервалов, отношений и абсолютная шкала.
Шкала наименований (она же номинальная). Это самая слабая шкала. Значением признака, измеряемого в этой шкале (или качественного признака) является имя класса эквивалентности, к которому принадлежит объект при анализе по измеряемому признаку. Допустимые преобразования – любые взаимно однозначные отображения. Характеризующее множество отношений состоит из единственного отношения – эквивалентности. При большом числе классов используют иерархические шкалы наименований. Наиболее известными примерами таких шкал являются таксономии в биологии. Допустимая операция одна. Это проверка совпадения или несовпадения. Можно дополнительно вычислять вероятности заполнения для различных классов или количества элементов в классах.
Примеры признаков в шкале наименований: имена собственные, названия городов, номера игроков команды.
Шкала порядка (она же ранговая). Допустимые преобразования – любые монотонные отображения. Характеризующее множество отношений состоит из двух отношений – эквивалентности и порядка. Пример такой шкалы: бальные оценки успеваемости (например, неудовлетворительно, удовлетворительно, хорошо, отлично), шкала твердости минералов Мооса, в которой выбраны эталоны минералов, а принадлежность к классу определяется по царапанию поверхности.
Заметим, что для данных в шкале порядка среднее значение -- неадекватная статистика. В теории функциональных уравнений показано, что, например, уравнение f((x+y)/2) = (f(x)+f(y))/2 выполняется только для линейной функции f, а в шкале порядка допустим более широкий класс монотонных преобразований.
Интервальная шкала (она же шкала разностей). Часто употребляется для работы с субъективными оценками. Начало отсчёта выбирается произвольно, единица измерения задана. Допустимое преобразование – линейное x = x + c. В характеризующее множество отношений входят кроме отношения эквивалентности и порядка, ещё отношение пропорциональности или суммирования интервалов (разностей). Типичный пример – темпоральные шкалы. В них интервалы времени можно суммировать или вычитать, но складывать даты бессмысленно. Другие примеры: шкалы температур по Цельсию и Фаренгейту. В интервальных шкалах для описания зависимостей можно использовать только отношения интервалов.
Шкала подобия. Допустимо преобразование подобия (умножение на положительную константу) x = kx, где k>0. В характеризующее множество отношений кроме эквивалентности, порядка, пропорциональности входит ещё суммирование. Поэтому результаты таких измерений можно обрабатывать в рамках поля вещественных чисел, то есть, используя сложение, вычитание, умножение и деление. Нуль абсолютен и имеет определённый в предметной области смысл. Примеры измеряемых величин: масса, длина, сила, стоимость (цена), температура в абсолютной шкале (Кельвина).
Поскольку в классической физике и инженерном деле предполагается, что все измерения выполняются в шкале подобия, то иногда проявляется странная склонность рассматривать любые измерения как выполненные в этой шкале. Вот тогда школы начинают бороться за неадекватную статистику ”средний балл”, а недостаточно подготовленные аналитики удивляются тому, что в социологии измеримая величина в некоторых обстоятельствах оказывается незначимой.
Абсолютная шкала. Имеет единственную нулевую точку, характеризующую отсутствие чего-либо. Результат измерения однозначен, не подлежит изменению. Единственное допустимое преобразование тождественное. К множеству отношений шкалы подобия добавляется однозначность определения единицы измерений. Типичный пример – подсчет количества людей в группе.
Уже упоминалось, что шкала полностью определяет осмысленность методов обработки результатов измерения. Для классических шкал адекватны те статистики, которые инвариантны относительно допустимых преобразований используемой шкалы.
Понятие “измеряемая величина” можно обобщить на признаки сложных открытых объектов, используемых в общественных и компьютерных науках, в частности в администрировании программных продуктов и в адаптивных программах. Особенности рассматриваемого класса измеряемых величин связаны с невозможностью адекватного моделирования описываемого объекта вне контекста или вмещающей среды. Зависимость результата измерения от времени, состояния объекта и системы в целом, от ресурсов имеющихся в распоряжении измеряемого объекта и, наконец, ограниченность размеров ресурсов совместно используемых объектом измерения, другими объектами и измерителем приводят к существенному усложнению модели измеряемой величины.
Возможны интерпретации результата измерения в моделях отличных от модели измерения и распадение измеряемой величины в семейство измеряемых величин.
Пример разделения измеряемой величины “размер таблицы” для системы управления базами данных Oracle. Для размещения таблицы выделяется структура данных называемая сегментом. Сегмент состоит из экстентов, которые представляют набор непрерывно размещенных блоков базы имеющих фиксированный размер. В этом вмещающем пространстве величина “размер таблицы” распадается в следующее семейство измеряемых величин:
“Размер таблицы” как место, которое не могут занять другие таблицы. Он равен размеру сегмента.
“Размер таблицы” как количество экстентов занятых данными таблицы.
“Размер таблицы” как количество блоков занятых данными таблицы.
“Размер таблицы” как количество байтов занятых данными таблицы.
“Размер таблицы” как количество символов, выданных при распечатке таблицы. Из-за возможности кодирования, сжатия числовых данных и возможности шифрования “на лету” не совпадает со значением предыдущего параметра.
“Размер таблицы” определенный как значение параметра High Water Mark, указывающего на последний блок, когда-либо занятый данными таблицы.
Заметим, что величины описанного выше семейства, за исключением размера определяемого через число символов, вне базы смысла не имеют.
Выпишем обычно неявно предполагаемые постулаты классической теории измерений, сделав упор на нюансы важные для рассматриваемого класса измеряемых величин:
Измеряемый объект есть замкнутая система. Он не взаимодействует с другими объектами и, в частности, с измерителем. Отсюда следует, что его можно без ущерба извлечь из контекста (системы) или вмещающего пространства, и что влиянием измерителя можно пренебречь.
Измеряемый объект не меняется вообще и тем более во время измерения. Это означает, что результаты измерений выполненных в разное время и с разной длительностью совпадают с точностью до погрешности измерений, и что интерпретация измерения не зависит от времени начала измерения и его длительности.
Измеряемая величина не имеет ограничений на применимость.
Результат измерения интерпретируется непосредственно в рамках модели измерения.
Измеритель и алгоритм измерения не рассматриваются в рамках теории, то есть считаются всегда существующими или, по крайней мере, не заслуживающими внимания.
Заметим, что, по крайней мере, в социологических измерениях невыполнение последних трёх пунктов учитывается давно. В общем случае возможны нарушения всех перечисленных постулатов.
Система измеряемых величин может иметь сложную структуру, возможно зависящую от особенностей решаемой задачи и использованного инструментария. Например, план счетов управленческого бухгалтерского учёта можно рассматривать как вмещающее пространство, определяющее каждый счёт или субсчёт как измеряемую величину. Этот план счетов может изменяться в зависимости от целей учета и/или особенностей бизнес-процессов.
Классическая измеряемая величина представляет концепт с двумя обязательными атрибутами:
имя_измеряемой_величины(модель_измерения, результат_измерения).
В общем случае измеряемая величина может иметь более сложную спецификацию:
имя_измеряемой_величины(область_применения, модель_измерения, модель_интерпретации, результат_измерения, параметры_измерения).
В ней атрибут “область_применения” характеризует ограничения на применимость величины, указание моделей измерения и интерпретации отражает различия между измерением и интерпретацией, атрибут “параметры_измерения” характеризует условия, при которых выполнялось измерение.
Ограничения областей существования измеряемых величин одна из основных причин локальности используемых моделей. В отличие от известной практики, когда кусочные описания вызываются техническими причинами, в основном желанием упрощения используемых моделей, в общем случае причины явления лежат глубже, в свойствах самой изучаемой системы. Существенные ограничения на применение моделей делают получаемые знания менее универсальными и выдвигают на первый план аспекты, связанные с классификациями и идентификацией системы и ее признаков.
Очевидно, что сведения о шкалах и особенностях измерений данных, содержащихся в базе, во многих случаях желательно хранить в базе и сделать их доступными информационной системе, основой которой эта база является. В последующих разделах станет понятно, что дополнительная информация об измерениях может храниться как один из элементов семантики данных в виде смыслов.
Полуструктурированные данные
Модель полуструктурированных данных, допускающая необязательные атрибуты, может использоваться для интегрирования данных, полученных их разных источников, и для представления данных с нечётко определённой или меняющейся структурой.
В моделях, допускающих только обязательные атрибуты, схема данных определяется заранее, априорно, и только затем начинается работа с данными. В полуструктурированных моделях используются апостериорные схемы, называемые обычно руководствами по данным (Data Guide). Они могут быть не известны до ввода данных и, уж точно, могут изменяться в процессе работы.
СУБД предназначенные для работы с полуструктурированными моделями данных существуют, но во многих случаях удобнее использовать соответствующие расширения в традиционных СУБД.
Принято выделять тяжеловесные (heavyweight) или легковесные (lightweight) модели полуструктурированных данных. В первых пытаются для работы с хорошо структурированными данными использовать традиционные средства, а для остальных вырабатывать средства специфические для плохо структурированных данных. Легковесные модели не предполагают такого разделения данных и потому хуже оптимизированы.
Мы будем заниматься эмуляцией одной из легковесных моделей OEM (Object Exchange Model), созданной в Стэнфордском университете для СУБД Lore, предполагая, что запросы можно разделять по степени структурированности данных и потому проблемы с оптимизацией запросов для хорошо структурированных данных нет.
Модель OEM представляется ориентированным графом с именованными ребрами. Хранимые объекты, которые могут быть простыми (атомарными) или сложными, представляются вершинами графа, имеющими уникальные идентификаторы. Простые объекты принимают значения одного из базисных типов, но не имеют исходящих ребер, Сложные объекты, наоборот, имеют исходящие ребра, но не имеют значений. Некоторым вершинам приписываются имена, используемые как точки входа в граф. Такую вершину называют ещё корнем.
Объект OEM имеет структуру, представленную на рис. 12.1. Object_ID – уникальный идентификатор или NULL, Label – имя объекта, записанное текстовой строкой, Type – тип данных, Value -- значение, записанное текстовой строкой.
-
Object_ID
Label
Type
Value
Рис. 12.1. Структура объекта OEM
Простейший пример полуструктурированной базы в модели OEM представлен на рис. Отображаются два объекта. Это лица, связанные отношениями ”быть сыном” и “”быть матерью. У объекта ”мать” имеется атрибут ”цвет волос”, отсутствующий у объекта ”сын”.
Рисунок 12.2. Пример полуструктурированной базы OEM.
Обычно путеводителем по данным (рис. 12.4) называют граф, который для каждого вида объектов содержит единственный узел, с которым связаны все атрибуты, существующие хотя бы у одного объекта. Будем называть его путеводителем или максимальным путеводителем. Можно считать, что он образован объединением без повторений всех объектов базы. Добавим ещё минимальный путеводитель (рис. 12.4), образованный пересечением всех объектов базы.
Для реализации модели OEM в Caché необходимо в глобалах, которые могут быть только деревьями, научиться представлять добавленные ветви ссылок, соединяющих узлы одного уровня. Можно ссылки (связи, дополняющие дерево) хранить как компоненты значения узла. Можно ориентированную ссылку, имеющую имя “name” и действующую из узла ^P(a1,a2,…,an) в узел ^P(b1,b2,…,bn), хранить как узел ^P(a1,a2,…,an,”_name”,”b1,b2,…,bn”). При этом, его родитель ^P(a1,a2,…,an,”_name”) является виртуальным узлом.
На рис. 12.5 показан пример реализации базы и путеводителя в одном глобале Caché. Имя узла и его номер относительно одноименных узлов хранятся в одном индексе. Виртуальные узлы не выделены.
Можно хранить в индексе не полные имена узлов, а номера их предков. Кроме того, узел путеводителя может хранить количество узлов данных соответствующего типа. Например, на рис.12.5 запись ^P(“DataGuide”,”Person”,”age”)=”2;1,2” значит, что в базе есть два свойства “age” у узлов типа “Person”, а именно: у узлов ^P(“Person#1”) и ^P(“Person#2”).
В DataGuide можно вычислить частоту появления некоторого свойства у типа. Она может быть больше 1 (например, у человека может быть несколько номеров телефонов). Можно учитывать сам факт вхождения узлов некоторого типа: при этом из нескольких однотипных потомков учитывается только один.
Рис. 12.5. Реализация базы на рис. 12.2 и путеводителя в Caché
Мы не будем обсуждать такие важные детали, как реализация автоматически перестраиваемого путеводителя, организация навигации по объектам и по связям, создание индексов на связи между узлами, необходимых для ускорения поиска путей между узлами и поддержания целостности данных.
Обратим внимание на то, что рассмотренная реализация полуструктурированной модели стала возможной в первую очередь благодаря заданию своеобразной семантики элементов представляющего глобала.
