№ 280
ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
Декабрь
2003
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ
УДК 681.3.07
А.М. Бабанов
ТЕОРИЯ СЕМАНТИЧЕСКИ ЗНАЧИМЫХ ОТОБРАЖЕНИЙ
В статье определяются основные понятия теории семантически значимых отображений (в дальнейшем - теория отображений), главное назначение которой заключается в описании семантики предметной области для целей проектирования схемы базы данных. Использование теории отображений позволяет предложить конструктивную, относительно простую, но в то же время весьма результативную методологию проектирования баз данных для всех известных моделей данных.
Предлагаемая статья явилась результатом осмысления опыта многолетней работы автора в области технологии баз данных. В ходе этой работы у автора возникло и с годами только усилилось чувство неудовлетворенности подходами к моделированию данных, опубликованными за последние 30 лет. Вместо того чтобы создать у читателя непротиворечивую картину этой области знаний и дать конкретную конструктивную методологию для построения «хороших» баз данных, даже классические печатные работы (по крайней мере, их русскоязычные переводы) грешат неточным использованием терминов, неадекватными построениями, противоречиями, нерешенными проблемами и т.д.
Если рассматривать базу данных как формальную систему, в которой синтаксические правила соответствуют правилам структуризации данных конкретной модели, то проблема построения «хорошей» базы данных сводится к определению для фиксированной предметной области таких правильно построенных формул (ППФ), которые в любой момент времени соответствуют моделируемому миру (семантически значимы). Таким образом, одной из основных задач системы является сохранение соответствия между ППФ и фактами мира, а отношения между символами языка и объектами, которые они обозначают, - основной предмет исследований семантики - части теории знаковых систем.
Неоднократно решая эту задачу, мы опытным путем определили некоторую методологию (часто на уровне интуиции). Но для того, чтобы ее можно было более-менее строго и понятно объяснить другим людям, требовался какой-то базис, своеобразная формальная система. Так родилась теория отображений.
Несколько слов по поводу терминологии. К сожалению, одни и те же понятия часто определяются по-разному. Это достаточно типично для разных научных теорий, но нередко встречается и в рамках одной. В лучшем случае эти определения не противоречат друг другу, а лишь представляют взгляды на один и тот же предмет с различных точек зрения, но нередки и исключения. Чтобы у читателя не возникало неоднозначных представлений о том или ином используемом нами понятии, имеющем определенные традиционные трактовки, мы будем с пометкой «аналоги» приводить для сравнения эти определения.
ОБЪЕКТЫ И ОТОБРАЖЕНИЯ
Мир - это совокупность взаимосвязанных объектов. Всякий объект есть уникальная целостность, которую человек в процессе мировосприятия и мышления способен отличить от всего того, что не является данной целостностью. Взаимосвязи объектов определяются через отображения. Семантически значимое отображение (в дальнейшем - отображение) - это не-
который семантически значимый закон ф, по которому каждому объекту моделируемого мира х может быть поставлен в соответствие (а может быть, и нет) один или более объектов.
Аналоги:
«Отображение (функция, оператор) есть закон соответствия, сопоставляющий каждому элементу множества А некоторый (единственный) элемент множества В. ф: А ^ В означает, что задано отображение А в В, называемое ф » [1]. Как вы понимаете, наша трактовка понятия «отображение» гораздо обобщенней. Мы не требуем обязательного наличия единственного образа.
Детальная классификация отображений (соответствий) встречается у Кофмана [2]:
«Соответствие Г между множествами Е1 и Е2 определено, если задан обычный граф О с Е1 хЕ2. Тогда говорят, что О - граф соответствия Г, Е1 - область определения, а Е2 - область значений Г. Соответствие, обратное Г, обозначается Г-1, Е2 - область определения, а Е1 - область значений Г-1. (Аналог понятия “соответствие” в теории отображений - понятие “отображение”.)
Отображением множества Е1 во множество Е2 называется такое соответствие, которое любому хеЕ1 сопоставляет, по крайней мере, один уеЕ2. Тогда говорят, что элемент у - образ элемента х, а х - переменная или аргумент. (Аналог понятия “отображение” в теории отображений - понятие “полностью определенное отображение”.)
Функцией Е1 в Е2 называется такое отображение, которое каждому хеЕ1 сопоставляет один и только один уеЕ2. (Аналог понятия “функция” в теории отображений - понятие “полное функциональное отображение”.)».
В моделировании данных сложилась традиция (которой мы и последуем) называть самый общий случай соответствия отображением: «Бинарное отношение Я множеств 51 и 52 определяет два отображения Я : 51 -> 52 и Я"1: 52 -> 51, каждое из которых является обратным по отношению к другому» [3].
Если представить себе, что нам удалось для некоторого объекта предметной области зафиксировать все представляющие интерес его отображения в другие объекты, то именно совокупность этих отображений определяет смысл этого объекта.
Каждый факт соответствия ф одному объекту одного другого объекта представляет экземпляр отображения ф (или экземпляр ф-отображения), все экземпляры одного и того же отображения ф, соответствующие одному объекту, будем называть отображением ф этого объекта (или ф-отображением объекта).
В естественном языке практически любое предложение определяет те или иные объекты и их отображения друг в друга. Если объекты представить в виде вершин графа, то каждый экземпляр отображения можно представить в виде ориентированной дуги, а все отображения объекта - в виде совокупности дуг, выходящих из вершины отображаемого объекта.
Таким образом, фраза «У дочери Сидорова Саши есть две дочери - Маша и Даша» может быть представлена в виде графа объектов и отображений (рис. 1).
Сидоров дочь Саша дочь Маша
О-------------------► (> ^
Рис. 1. Граф объектов и отображений
Вершины, представляющие объекты, помечаются символами, уникально обозначающими эти объекты. Если обозначающий символ объекта неизвестен (в данном случае не указан в предложении), вершина остается непомеченной. Пометка на дуге, изображающей экземпляр отображения, является символом, уникально обозначающим отображение. Все дуги графа должны быть помечены.
Рассмотрим объект х и отображение ф. Будем называть образом объекта х при отображении ф (или кратко, ф-образом объекта х) объект у, поставленный в соответствие объекту х одним из экземпляров отображения ф (краткая запись у = ф(х)). Схожесть с языком, традиционно используемым для функций в математике, не случайна - отображение является обобщением понятия функции.
Все отображение ф объекта х порождает совокупность образов, которую будем называть областью ф-образов объекта х (обозначение - {ф(х)}). В каждом конкретном случае эта совокупность:
- может быть пустой (отображение ф неприменимо к объекту х) или
- содержать один объект, или
- содержать много объектов.
Объект х в таком случае будем рассматривать как прообраз объекта у при отображении ф (или кратко, ф-прообразом объекта у) (обозначение - х = ф 1(>’)). Всю совокупность прообразов объекта у при отображении ф назовем областью ф-прообразов объекта у (обозначение - {ф-1(у)}).
Назовем количество элементов совокупности ее мощностью (для обозначения мощности будем использовать знаки ||). Например, |{дочь (Сидоров)}| = 1, |{дочь (Саша)}\ = 2.
ф-отображение объекта х характеризует кардинальное число объекта х при отображении ф (обо-
значение - КЧф (х)) - мощность его области образов при этом отображении. Диапазон изменения кардинальных чисел, таким образом, от 0 до да. Например, КЧдочь (Сидоров) = 1, КЧдочь (Саша) = 2 .
Совокупность всех объектов, имеющих ненулевые кардинальные числа при отображении ф, назовем реальной областью определения отображения (РО-ОО) ф, а совокупность всех ф-образов этих объектов -реальной областью значений отображения (РОЗО) ф. Мы уже упоминали об аналогии «отображение -функция». Так вот, одним из самых главных отличий отображений объектов реального мира от функций в математике является динамичный характер экземпляров отображений. В течение времени эти экземпляры могут возникать и исчезать, у них могут меняться образы, в то время как функция у = х раз и навсегда фиксирует свои экземпляры.
Семантика же отображений стабильна и в любой момент времени отражает тот закон, который справедлив для всех возможных состояний их экземпляров. По этой причине наряду с динамичными РООО и РОЗО для отображений необходимо рассматривать «потенциальные» ООО и ОЗО. Область определения отображения (ООО) ф - это совокупность объектов, которые в силу смысла закона ф могли иметь в прошлом или имеют в настоящем, или смогут иметь в будущем хотя бы один ф-образ. Область значений отображения (ОЗО) ф - это совокупность объектов, которые в силу смысла закона ф могли быть в прошлом или являются в настоящем, или смогут стать в будущем ф-образами некоторых объектов. Например, если отображению «дочь» придать юридический смысл, то ООО «дочь» - совокупность всех людей, а ОЗО «дочь» - совокупность всех женщин.
УНИВЕРСАЛЬНЫЕ ОТОБРАЖЕНИЯ
Большая часть отображений специфична для каждой предметной области, но существуют отображения, используемые во всех предметных областях, и поэтому называемые универсальными.
Любое описание любого мира невозможно без использования некоторой знаковой (семиотической) системы. Для уникальной идентификации объекта мира в знаковой системе ему ставят в соответствие некоторый символ (имя объекта) - слово или словосочетание. Однозначное отображение между символом языка и объектом, им обозначенным, будем называть отображением денотации (обозначения). В качестве символа этого отображения будем использовать слово «денотат» или слово «обозначаемое». Это отображение относится к области семантики - части семиотики (теории знаковых систем), собственно и изучающей взаимосвязи между символами языка и обозначаемыми ими объектами. Благодаря этому отображению любые утверждения языка по отношению к символу переносятся в мир объектов. Неудивительно, что в приводимых примерах явно это отображение не фигурирует, но всегда предполагается.
До сих пор мы говорили об одной стороне взаимосвязей между объектами. На самом деле, у каждого отображения ф есть инверсное (или обратное) ему
отображение ф-1. Так, для отображения «денотат» инверсным является отображение, ставящее в соответствие объекту символ языка, уникально его идентифицирующий. Будем обозначать это отображение символом «термин» или «обозначающее». Отметим, что если отображение «денотат» любому символу ставит в соответствие один и только один объект, то отображение «термин» для некоторого объекта может либо вообще не давать образа (объект не имеет имени), либо может иметь один образ либо совокупность образов. Поскольку именно пара отображений «термин - денотат» переносит семантику объектов моделируемого мира на символы знаковой системы и наоборот, желательно, чтобы оба этих отображения были взаимно однозначными. Только в этом случае возможно изоморфное отношение между этими системами.
Отображение, ставящее в соответствие классу его экземпляры, будем обозначать символом «экземпляр», а обратное ему - символом «класс». Если отображения «денотат» и «термин» транслируют семантику из моделируемого мира в знаковую систему и обратно, то отображение «экземпляр» распространяет смысл, приписанный классу, на все его экземпляры. Так, если для класса (например, Студент) задано отображение (например, экзамен студента) с определенными характеристиками, то любой объект-экземпляр этого класса может и должен (в зависимости от характеристик) иметь соответствующее количество своих образов при этом отображении (сдавать экзамены).
В дальнейшем для изображения экземпляров взаимообратных отображений будем пользоваться неориентированными дугами с соответствующими пометками на их концах. Пометки, касающиеся отображения, располагаются рядом с его образом (рис.2).
Сидоров родитель ребенок Саша
О---------------------------------------о
Рис. 2. Экземпляры взаимообратных отображений
Пара взаимообратных отображений «суперкласс -подкласс» (или «род - вид») составляет основу любой классификации. Обязательным условием участия объекта в этих отображениях является наличие у этого объекта отображений вида «экземпляр» (т.е. он должен быть классом). Некоторый класс х - суперкласс класса у, если любой объект, являющийся экземпляром у ^ = экземпляр(у)), одновременно является экземпляром х ^ = экземпляр(х)).
ОПЕРАЦИИ НАД ОТОБРАЖЕНИЯМИ
Рассмотрим один экземпляр отображения ф. Он ставит объекту х в соответствие объект у, причем у -ф-образ х (у = ф(х)), а х - ф-прообраз у (х = фч(у)). С другой стороны, для обратного ф отображения ф-1 : х - фч-образ у, а у - фч-прообраз х. Но краткие записи этих фактов такие же, х = фч(у) и у = ф(х), поскольку образ объекта при отображении ф является прообразом этого же объекта при обратном отображении ф-1. Этот факт является первым характерным признаком взаимообратных отображений.
Вторым характерным признаком таких отображений является следующее: ООО ф является областью значений обратного ему отображения ф-1, и, наоборот, ОЗО ф является областью определения обратного ему отображения ф-1.
Каждая операция ставит в соответствие одному или нескольким отображениям одно новое отображение. В целом набор таких операций сформирует алгебру отображений. Понятно, что первую такую операцию мы только что определили. Это операция инверсии отображений. Результатом этой операции, примененной к отображению ф, является обратное ему отображение ф-1 такое, что пара отображений ф, ф-1 удовлетворяет следующим условиям:
- для любого экземпляра отображения ф найдется экземпляр отображения ф-1 такой, что образ экземпляра ф совпадает с прообразом экземпляра ф-1, а прообраз экземпляра ф - с образом экземпляра ф-1;
- для любого экземпляра отображения ф-1 найдется экземпляр отображения ф такой, что образ экземпляра ф совпадает с прообразом экземпляра ф-1, а прообраз экземпляра ф - с образом экземпляра ф-1.
Очевидно, что ООО ф является ОЗО ф-1, и, наоборот, ОЗО ф является ООО ф-1.
Для строгого определения тех или иных понятий, а также доказательства некоторых утверждений теории отображений нам понадобится формальная система. Таковой вполне может служить исчисление предикатов первого порядка (ИППП).
Определим интерпретацию символов ИППП в нашей теории. Предметные переменные (например, х, у, 2, ...) служат для подстановки объектов. Функциональные символы (например, ф, ф-1, у, у, ...) представляют отображения. Будем использовать два вида предикатов, для удобства слегка отойдя от стандартной формы Р(ху,...):
- предикат вида х = у истинен тогда и только тогда, когда предметные переменные х и у указывают на один и тот же объект;
- предикат вида у = ф(х) истинен тогда и только тогда, когда у является образом х при отображении ф.
Тогда, по определению инверсии отображений, формула УхУу( у = ф( х) ^ х = ф-1(у)) общезначима.
Объекты (например, «Саша» на рис. 1), являющиеся образами какого-то объекта х («Сидоров») при отображении ф («дочь»), могут, в свою очередь, участвовать в другом отображении у («дочь»). В таком случае можно говорить о композиции этих отображений (аналоге композиции функций).
Композиция отображений ф и у (рис.3) есть отображение у(ф) такое, что для каждого экземпляра отображения у(ф(х)) существуют:
- экземпляр отображения ф(х) с тем же самым прообразом и
- экземпляр отображения у(у), у которого прообраз совпадает с образом экземпляра отображения ф(х) (т.е. у = ф(х)), а образ совпадает с образом экземпляра отображения у(ф(х)).
Понятно, что каждый экземпляр ООО у(ф) является одновременно экземпляром ООО ф, а каждый экземпляр ОЗО у(ф) является одновременно экземпля-
ром ОЗО у: {экземпляр (ООО(у(ф)))} с {экземпляр (ООО(ф))} и {экземпляр (ОЗО(у(ф)))} с {экземпляр (ОЗО(у))}. Кроме этого, {экземпляр (ОЗО(ф))} п {эк-земпляр(ООО(у))}^0.
По определению композиции отображений, общезначимой будет следующая формула:
УХ^(2 = у (ф(х)) ^ Зу(у = ф(X) Л 2 = у (у))).
Объединение отображений ф и у есть отображение (ф и у), такое, что для каждого экземпляра отображения (ф и у)(х) существует:
- либо экземпляр отображения ф (х) с теми же самыми образом и прообразом,
- либо экземпляр отображения у (х) с теми же самыми образом и прообразом,
- либо оба таких экземпляра одновременно.
Например, отображение «ребенок» есть объединение
отображений «дочь» и «сын»: Ребенок = Дочь и Сын.
Понятно, что каждый экземпляр ООО ф и у одновременно является либо экземпляром ООО ф, либо экземпляром ООО у, а каждый экземпляр ОЗО ф и у одновременно является либо экземпляром ОЗО ф, либо экземпляром ОЗО у: {экземпляр (ООО(ф и у))} с с {экземпляр (ООО(ф))} и {экземпляр (ООО(у))} и {экземпляр (ОЗО(ф и у))} с {экземпляр (ОЗО(ф))} и и {экземпляр (ОЗО(у))}.
Общезначимой будет следующая формула:
УхУу(у = (фиу)(х) ^ у = ф(х) V у = у(х)).
Пересечение отображений ф и у есть отображение (ф п у), такое, что для каждого экземпляра отображения (ф п у)(х) существуют одновременно:
- и экземпляр отображения ф (х) с теми же самыми образом и прообразом,
- и экземпляр отображения у (х) с теми же самыми образом и прообразом.
Например, отображение «дочь, живущая вместе с родителем» есть пересечение отображений «дочь» и «живет вместе с».
Понятно, что каждый экземпляр ООО ф п у одновременно является и экземпляром ООО ф, и экземпляром ООО у, а каждый экземпляр ОЗО ф п у одновременно является и экземпляром ОЗО ф, и экземпляром ОЗО у: {экземпляр (ООО(ф п у))} с {экземпляр (ООО(ф))} п {экземпляр (ООО(у))} и {экземпляр (ОЗО(ф п у))} с {экземпляр (ОЗО(ф))} п {экземпляр (ОЗО(у))}.
Общезначимой будет следующая формула:
УхУу( у = (фпу)( х) ^ у = ф( х) Л у = у( х)).
Разность отображений ф и у есть отображение (ф - у), такое, что для каждого экземпляра отображения (ф - у)(х):
- существует экземпляр отображения ф (х) с теми же самыми образом и прообразом и
- не существует экземпляра отображения у (х) с теми же самыми образом и прообразом.
Например, отображение «отец» есть разность отображений «родитель» и «мать»: Отец = Родитель -Мать.
Понятно, что каждый экземпляр ООО ф - у одновременно является и экземпляром ООО ф, а каждый экземпляр ОЗО ф - у одновременно является и экземпляром ОЗО ф: {экземпляр (ООО(ф - у))} с {экземпляр (ООО(ф))} и {экземпляр (ОЗО(ф - у))} с {экземпляр (ОЗО(ф))}.
Общезначимой будет следующая формула:
УхУу(у = (ф-у)(х) ^ у = ф(х) Л-у = у(х)).
СЕМАНТИЧЕСКИ ЗНАЧИМЫЕ ФОРМЫ ДАННЫХ
Понятия теории отображений предназначены для описания семантики предметной области и могут быть использованы, в частности, при проектировании схемы базы данных в рамках той или иной модели данных. В любой модели данных возможно порождение «бессмысленных» структур, которые нарушают семантику объектов предметной области и, как следствие, искажают истинность фактов. Чтобы исключить такие случаи, необходимо ввести для традиционно используемых в моделях данных форм представления данных их семантически значимые (отвечающие семантике предметной области) аналоги. Таковыми являются множество, кортеж и отношение.
Аналоги:
«Множество есть собрание (набор, совокупность) предметов, называемых элементами множества; как основное понятие теории множеств, понятие множества не подлежит логическому определению. Множество может быть задано указанием общего свойства его элементов или прямым перечислением элементов» [1].
Семантически значимое множество (СЗ-мно-жество) (в широком смысле) - это некоторое отображение одного объекта. Семантически значимое множество (в узком смысле) - это область образов одного объекта при некотором отображении. Сами образы будем называть элементами СЗ-множества. Мы впервые используем традиционную математическую форму представления (в данном случае - множество) для семантически правильных совокупностей объектов. Поэтому снабжаем слово «множество» соответствующим эпитетом. Этим мы подчеркиваем тот факт, что в отличие от множеств в математике множества в теории отображений всегда имеют смысл, который транслируется на все элементы этого множества. В дальнейшем будем предполагать, что всегда имеются в виду именно СЗ-множества и опускать этот префикс.
Таким образом, множество полностью определяет объект х, отображение ф и область ф-образов объекта х - {ф(х)}. Чтобы не изобретать новых знаков, будем обозначать такое множество также {ф(х)}, тем более что это соответствует определению множества в узком смысле.
Будем в дальнейшем применять к СЗ-множествам некоторые идеи теории множеств в их традиционном смысле, в частности, использовать для них теоретикомножественные операции, такие, как объединение, пересечение и разность. Так, теперь можно утверждать, что {экземпляр (ООО(дочь))} = {экземп-ляр(Человек)} и {экземпляр (ОЗО(дочь))} = {экземп-ляр(Человек)} п {объект пола (Женский)}.
Представляют интерес случаи применения отображения к элементам некоторого множества. Рассмотрим множество {ф(х)} и отображение у (в принципе ничто не мешает рассматривать случай, когда ф и у - одно и то же отображение) его элементов. Будем обозначать {у({ф(х)})} область у-образов элементов множества {ф(х)}. Понятно, что это то же самое, что и область образов объекта х при отображении у(ф) - композиции отображений ф и у: {у({ф(х)})} = {у(ф(х))}. В дальнейшем, если нужно будет подчеркнуть участие в отображении множества, будем использовать первое выражение, в остальных случаях - второе.
И, наконец, в моделировании данных интересен случай, когда рассматривается отображение между элементами двух множеств. Элементы одного множества {ф(х)} выступают в роли прообразов экземпляров отображения у, элементы другого множества {у (у)} выступают в роли образов этих экземпляров. Будем обозначать {{ф(х)}у{у(у)}} - совокупность экземпляров отображения у, таких, что их прообразами являются элементы множества {ф(х)}, а образами - элементы множества {у (у)}. Для таких случаев удобно использовать нотацию, применяемую в математике -у : {ф(х)} -> {у(у)}.
Областью у-образов объекта г во множестве {у(у)} назовем совокупность у-образов объекта г, одновременно являющихся элементами множества {у(у)} (обозначение - {у^) ->{у(у)}}).
Другая популярная форма данных - отношение. Введем ее в бинарном варианте. Любой экземпляр любого отображения полностью определяется отображением-классом, объектом-прообразом и объектом-образом: ф, х, у=ф(х). Фиксируя в знаковой системе такой экземпляр отображения, мы предполагаем автоматическое создание обратного ему экземпляра -экземпляра обратного отображения ф-1 с объектом-прообразом у и объектом-образом х= ф- (у). Так, высказывание «Сидоров является родителем Саши» неявно влечет за собой высказывание «Саша - ребенок Сидорова». Естественно, что эффективная форма представления экземпляров отображений должна учитывать это обстоятельство.
Семантически значимым бинарным кортежем (СЗ-2-кортежем) называется форма
{<ф>:<ф-образ>, < ф-1 >:< ф-1 -образ>}, определяющая пару взаимообратных экземпляров отображений: у=ф(х) и х= ф-1 (у). Для приведенного примера это будет кортеж {родитель: Сидоров, ребенок: Саша}. Как нетрудно заметить, в кортеже максимально неизбыточно определены все элементы, не-
обходимые для идентификации экземпляров отображений. Можно сказать, что этот кортеж представляет двухстороннюю связь типа «родитель - ребенок» между объектами «Сидоров» и «Саша», причем имена отображений в таком случае характеризуют роли, которые играют соответствующие объекты в этой связи.
Рассмотрим отображение у между множествами ф(х) и у(у) - у:{ф(х)} -> {у(у)}. Семантически значимым бинарным отношением (СЗ-2-отношением) называется форма
{{<у>:<у-образ элемента множества {ф(х)}>,
< у-1 >:< у-1 -образ элемента множества {у(у)}>}},
определяющая пару взаимообратных отображений у и
у-1 между множествами {ф(х)} и {у (у)} путем явного
указания кортежей-экземпляров {{ф(х)}у{у(у)}}. Так, отношение «дочь - дочь'1» на множествах {экземпляр (ООО(дочь))} и {экземпляр(ОЗО(дочь))} - это совокупность следующих кортежей: {дочь: Саша, дочь'1: Сидоров}, {дочь: Маша, дочь-1: Саша}, {дочь: Даша, дочь-1: Саша}.
Аналоги:
С понятием отношения связана наибольшая путаница. Приведем несколько известных его определений.
«Пусть Еп = Е х...х Е есть произведение п множеств Е, т.е. множество всех кортежей (х1,...,хп), х- еЕ(/' =1,...,п). Отображение Р : Еп -> {0, 1} называется п-местным отношением (предикатом, логической функцией) над Е. Множество А с Е всех кортежей, для которых Р(х1,...,хп) = 1, определяет «свойство» кортежей: (х1,..., хп) состоят в отношении Р тогда и только тогда, когда (х1,...,хп) е А» [1].
«п-местным отношением Я на множествах Д,...,Ап называется подмножество прямого произведения А1 х...хАп. Другими словами, элементы х1,...,хп, где х е А- 0 =1,. .,п), связаны отношением Я тогда и только тогда, когда (х1,...,хп) е Я ((х1,...,хп) -упорядоченный набор из п элементов).
Пусть Я - бинарное отношение. Определим обратное отношение ЯГ1 следующим образом: Я-1=
={(х,у)|(у,х)еЯ}. Таким образом, ЯГ1 связывает те же пары элементов, что и Я, но «в другом порядке» [4].
«Пусть задано множество из п типов или доменов 7 (- = 1,...,п), причем все они необязательно должны быть различными. Тогда г будет отношением, определенным на этих типах, если оно состоит из двух частей: заголовка и тела (заголовок еще иногда называют схемой или интенсионалом отношения, а тело - экс-тенсионалом отношения), где:
- заголовок - это множество из п атрибутов вида А : 7; здесь А- - имена атрибутов отношения г, а 7 -соответствующие имена типов;
- тело - это множество из т кортежей V, здесь t является множеством компонентов вида А ■ V , в которых Vг- - значение типа 7, т.е. значение атрибута Д в кортеже Ь> [5].
Человека прежде всего интересует истинность или ложность того или иного факта, поэтому ему ближе и понятней первое определение. В информационных системах (и в базах данных, в частности) принято хранить только истинные факты и предполагать выполнение гипотезы о замкнутости мира: если кортеж не содержится в теле отношения, то соответствующее ему утверждение ложно. Понятно, что в таком случае первое и второе определения эквивалентны. Третье определение отличается от второго отсутствием порядка в элементах кортежей, и, таким образом, одно отношение в смысле третьего определения соответствует сразу нескольким отношениям, соответствующим второму определению. Именно третье определение используется в базах данных и, как нетрудно заметить, наше определение очень близко ему.
КОЛИЧЕСТВЕННЫЕ ХАРАКТЕРИСТИКИ
ОТОБРАЖЕНИЙ
До сих пор, определяя свою знаковую систему (а теория отображений также является знаковой системой), мы в основном говорили о знаках, отражающих качественные характеристики объектов и отображений. Важную роль при описании семантики мира в знаковой системе играют и количественные характеристики, прежде всего, касающиеся отображений. Одну из них - кардинальное число объекта, участвующего в отображении, - мы уже рассмотрели.
Количественной характеристикой множества является его мощность. Будем называть мощностью множества {ф(х)} кардинальное число КЧф (х):
|{ф(х)}| = КЧф (х).
Все отображение ф в целом количественно характеризуют минимальные и максимальные кардинальные числа.
Глобальное минимальное кардинальное число (ГМКЧ) отображения ф - это наименьшее из кардинальных чисел КЧф (х) объектов х, являющихся экземплярами ООО ф:
ГМКЧ = min КЧф (х).
х=экземпляр(ООО(ф))
Реальное минимальное кардинальное число (РМКЧ) отображения ф - это наименьшее из кардинальных чисел КЧф (х) объектов х, которые реально
имеют ф-образы (являются экземплярами РООО ф): РМКЧф = min КЧф (х).
х=экземпляр( РООО(ф))
Максимальное кардинальное число отображения ф - это наибольшее из кардинальных чисел КЧф (х) объектов х, являющихся экземплярами ООО ф:
МКЧф = max КЧф (х).
х=экземпляр(ООО(ф))
Очевидно, что
0 <= ГМКЧф <= РМКЧф <= МКЧф.
Так, для отображения «дочь» ГМКЧдочь = 0, РМКЧдочь = 1, МКЧдочь = Ю.
Используемый знак бесконечности (ю) говорит о том, что у отображения «дочь» нет ярко выраженной верхней границы количества образов одного объекта. Хотя, конечно, трудно себе представить человека, у которого, например, миллион дочерей (в физиологическом смысле).
Введем более компактную форму записи характеристик отображения: <имя отображения> (<ГМКЧ>,
<РМКЧ>, <МКЧ>). Например, дочь (0,1,ю).
Может показаться бессмысленным РМКЧ, ведь оно, на первый взгляд, всюду равно 1. Но, если предполагать традиционный физиологический смысл отображения «дочь», дочь-1 (2,2,2), поскольку всегда есть два человека, считающие некоторый объект своей дочерью, - мать и отец.
Следующие количественные характеристики относятся к случаю применения отображения к элементам некоторого множества.
Глобальное минимальное кардинальное число (ГМКЧ) отображения у на множестве {ф(у)} - это наименьшее из кардинальных чисел элементов этого множества при отображении у:
ГМКЧу ({ф(у)}) = min КЧу (х),
х=элемент({ф( ,)})
где отображение «элемент» ставит в соответствие множеству его элемент.
Реальное минимальное кардинальное число (РМКЧ) отображения у на множестве {ф(у)} - это
наименьшее из кардинальных чисел при отображении у тех элементов этого множества, которые реально имеют у-образы (являются экземплярами РООО у): РМКЧ у ({фОО}) = min КЧу (х).
х=элемент({ф( ,)})л х=экземпляр( РООО(у))
Максимальное кардинальное число (МКЧ) отображения у на множестве {ф(у)} — это наибольшее из кардинальных чисел элементов этого множества при отображении у:
МКЧу ({ф(у)}) = max КЧу (х).
х=элемент({ф( ,)})
Очевидно, что
о <= ГМКЧу({фОО}) <= РМКЧу({фО,)}) <=
<= МКЧу ({ф(,)}).
Для примера с отображением дочь:
ГМКЧдочь ({дочь(Сидоров)}) = 2,
РМКЧдочь ({дочь(Сидоров)}) = 2,
МКЧдочь ({дочь(Сидоров)}) = 2.
И, наконец, последняя группа количественных характеристик относится к случаю, когда рассматривают некоторое отображение между двумя фиксированными множествами.
Кардинальное число объекта х при отображении у во множество {у(г)} КЧу (х ^ {у (z)}) - это
мощность области у-образов объекта х во множестве {у(г)}: КЧу (х ^ {у( z)}) = |{у(х) -> {у(г)}}|.
Глобальное минимальное кардинальное число (ГМКЧ) отображения у между множествами {ф(у)} и {у(г)} (у: {ф(у)} -> {у(z)}) - это наименьшее из кар-
динальных чисел элементов множества {ф(у)} при отображении у во множество {у(z)}:
ГМКЧу ({ф( у)} ^ {у( z )}) =
= min КЧу(х^{у^)}).
х=элемент({ф( у)})
Реальное минимальное кардинальное число (РМКЧ) отображения у между множествами {ф(у)} и {у(г)} (у: {ф(у)} -> {у^)}) - это наименьшее из кардинальных чисел тех элементов множества {ф(у)} при отображении у во множество {у(z)} , которые реально имеют у-образы (являются экземплярами РООО у): РМКЧу ({ф( у)} ^ {у( z )}) =
= min КЧ. (х ^{у(z)}).
х=элемент({ф( у)})л х=экземпляр( РООО(у))
Максимальное кардинальное число (МКЧ) отображения у между множествами {ф(у)} и {у(г)} (у:
{ф(у)} -> {у(z)}) - это наибольшее из кардинальных чисел элементов множества {ф(у)} при отображении у во множество {у^)}:
МКЧy ({ф( у)} ^ {у( z )}) =
= max КЧу(х^{у(z)}).
х=элемент({ф( у)})
Очевидно, что
0<= ГМКЧу({ф(у)} ^{у(z)}) <=
<= РМКЧу ({ф( у)} ^ {у( z)}) <=
<= МКЧу ({ф( у)} ^ {у( z)}).
Если предположить, что родителем Маши помимо Саши является Миша ({дочь(Миша)}= {Маша}), то:
ГМКЧдочь ({дочь(Сидоров)} ^ {дочь(Миша)}) = 1,
РМКЧдочь ({дочь(Сидоров)} ^{дочь(Миша)}) = 1,
МКЧдочь ({дочь(Сидоров)} ^{дочь(Миша)}) = 1.
Краткой формой записи введенных характеристик является <имя отображения> <множество прообразов> -> <множество образов> (<ГМКЧ>, <РМКЧ>, <МКЧ>). Например, дочь {дочь(Сидоров)} -> {дочь (Миша)} (1,1,1).
ТИПИЗАЦИЯ ОТОБРАЖЕНИЙ
Вновь введенные количественные характеристики отображений позволяют выделить полезные для многих приложений теории типы отображений (их можно применять для всех трех ранее рассмотренных случаев - отображения как такового, отображения на множестве и отображения между множествами).
Отображение ф называется:
- неограниченным, если ГМКЧф = 0, РМКЧф = 1, МКЧф = ю;
- полностью определенным, если ГМКЧф Ф 0;
- функциональным, если МКЧф = 1, в том числе:
- частичным функциональным, если ГМКЧф =0, МКЧф = 1;
- полным функциональным, если ГМКЧф = 1, МКЧф = 1.
Отображение у полностью определено тогда и только тогда, когда
Ух(х = экземпляр(ООО(у)) — 3у(у = у(х))).
Отображение у полностью определено на множестве ф(у) тогда и только тогда, когда
Ух(х = ф(у) — 32(2 = у(х))) ,
где у - не переменная, а символ конкретного объекта, определяющего множество.
Отображение у полностью определено между множествами ф(у) и у(2) тогда и только тогда, когда Ух(х = ф(у) — Зи(и =у(х) ЛИ =у(2))) ,
где у и 2 - не переменные, а символы конкретных объектов, определяющих множества.
Отображение у функционально тогда и только тогда, когда
УхУ^^^ = у(х) л V = у(х) — V = м>).
Отображение у функционально на множестве ф(у) тогда и только тогда, когда
УхУ^УЦ х = ф( у) л V = у (х) л V = у( х) — V = V),
где у - не переменная, а символ конкретного объекта, определяющего множество.
Отображение у функционально между множествами ф(у) и у(2) тогда и только тогда, когда
УхУгУЦ х = ф( у) л V = у( х) л V = у( х) л ЛV = у(2) ЛW =у(2) —— V = М>) ,
где у и 2 - не переменные, а символы конкретных объектов, определяющих множества.
Полностью определенное отображение у полностью определено на множестве ф(у), если {ф(у)}с{экземпляр(ООО(у))}.
Полностью определенное на множестве ф(у) отображение у полностью определено между множествами ф(у) и у(2), если {у(2)}с{у(ф(у))}.
Функциональное отображение у безусловно функционально на множестве ф(у) и между множествами ф(у) и у(2).
Отображение у является следствием отображения ф, если для любого экземпляра отображения ф найдется экземпляр отображения у, такой, что их образы и прообразы совпадают. Очевидно, что ООО у включает ООО ф, а ОЗО у включает ОЗО ф. В таком случае УхУу(у = ф(х) — у = у(х)). Например, отображение «ребенок» является следствием отображения «дочь».
Отображения ф и у эквивалентны тогда и только тогда, когда они являются следствием друг друга. Очевидно, что ООО у = ООО ф, а ОЗО у = ОЗО ф. В таком случае УхУу(у = ф(х) ^ у = у(х)). Например,
отображение «ребенок» эквивалентно объединению отображений «дочь» и «сын».
Бинарное отношение, определяющее пару взаимо-обратных отображений у и у-1 между множествами {ф(х)} и {у (у)}, также характеризуется кардинальными числами этих отображений. Говорят, что отноше-
ние, определяющее пару функциональных отображений, есть отношение «один к одному» (или 1:1), отношение с одним функциональным, а другим нефункциональным отображениями есть отношение «один ко многим» (или 1:N) или «многие к одному» (или N:1) и отношение, определяющее пару нефункциональных отображений, есть отношение «многие ко многим» (или M:N). Понятно, что эта нотация не характеризует минимальные кардинальные числа и поэтому менее информативна. Но во многих практических случаях эта информация и не играет существенной роли, и поэтому последняя нотация вполне применима.
СЛОЖНЫЕ ОТОБРАЖЕНИЯ
До сих пор мы ограничивались рассмотрением простых отображений, у каждого экземпляра которых есть один прообраз и один образ. Это делалось по трем причинам:
- во-первых, простейший случай легче поддается анализу и более нагляден для определения базовых понятий теории;
- во-вторых, простые отображения составляют, как правило, подавляющее большинство среди всех отображений предметной области;
- в-третьих, часто сложные отображения сводятся к совокупности простых.
Однако возникает необходимость в использовании сложных отображений, каждый экземпляр которых имеет более одного прообраза и/или образа. Классическим примером такой ситуации в моделировании данных является «поставка некоторым поставщиком детали для конкретного проекта». Каждый факт такой поставки представляет собой тернарную связь между конкретными поставщиком, деталью и проектом.
Перебирая варианты поляризации участвующих в этой связи множеств по двум полюсам «прообраз» -«образ», имеем три пары взаимообратных отображений:
Поставщик -> Деталь х Проект и Деталь х Проект -> Поставщик
Деталь -> Поставщик х Проект и Поставщик х Проект -> Деталь
Проект -> Поставщик х Деталь и Поставщик х Деталь -> Проект.
Здесь для краткости записи выражение типа {экземпляр^)}, определяющее множество экземпляров класса х, заменено просто именем класса х. Кроме того, не указаны имена отображений. Выбор краткого, но емкого имени сложного отображения - большая проблема. Обычно ограничиваются именем связи, именами классов, участвующих в этой связи, и ролями, которые играют эти классы (очень часто они совпадают с именами классов).
Многие нерешенные проблемы моделирования данных связаны с недооценкой возможностей анализа сложных отображений. В таких случаях даже уважаемые издания отделываются фразами типа «понятия, относящиеся к отображениям, связанным с бинарны-
ми отношениями, могут быть распространены на парные отношения» [3]. При этом приводимые иногда примеры анализа п-арных отношений говорят об ошибочности такого анализа и дают неадекватные результаты [3. С. 173]. С этим же связано сведение сложных отображений к простым на ранних этапах процесса проектирования схемы БД, чем грешат многие (если не все) методологии. Это приводит к невосполнимой на последующих этапах потере семантической информации и неудовлетворительному качеству проекта схемы БД.
Если в случае простого отображения семантика экземпляра отображения определяется только именем отображения, то в случае сложного отображения необходимо уточнять роли объектов-прообразов и объектов-образов. В математике и программировании в таких случаях вводят упорядочивание входных и выходных параметров функций. Мы же будем применять следующую «неупорядочивающую» нотацию для экземпляра сложного отображения:
{гГ :л,...,С‘:ут} = ф({гГ : хь...,С :хп}), где г°ш - роли объектов-образов, у - объекты-образы, г1" - роли объектов-прообразов, х}- - объекты-прообразы.
Например, для сложной связи - расписание занятий, имеем пару взаимообратных экземпляров сложных отображений: {Группа: 1411, Преподаватель: Бабанов, Предмет: Модели данных} = КТО-ЧТО ({День: Понедельник, Время: 14.45, Аудитория: 051}) и {День: Понедельник, Время: 14.45, Аудитория: 051} = = КОГДА-ГДЕ ({Группа: 1411, Преподаватель: Бабанов, Предмет: Модели данных}).
В случае единичного прообраза и/или образа роль, как и ранее, будем опускать. Например, наряду с простым отображением «дочь» можно рассматривать сложное отображение «папина-мамина дочь»: Маша = = папина-мамина дочь ({отец: Миша, мать: Саша}) и наоборот: {отец: Миша, мать: Саша} = родители (Маша).
Таким образом, каждый вид отображения определяется совокупностями ролей объектов-прообразов и объектов-образов, а также своими экземплярами; для каждой роли прообразов задается область определения роли, а для каждой роли образов - область значений роли. Соответственно каждый экземпляр отображения помимо своего класса определяет по одному объекту для каждой роли прообразов и образов.
Обобщение определений теории строится по следующему принципу. Если раньше объекты-прообразы и объекты-образы были простыми объектами с единственной ролью, семантика которой однозначно определялась смыслом отображения, то теперь совокупность {г1гп :х1,...,г"" :хп} будем рассматривать как один
сложный объект-прообраз, а {г^:у1,...,г^ :ут} -как один сложный объект-образ. В таком случае имеем как бы простое отображение сложных объектов. Введение понятий сложных объектов-прообразов
и объектов-образов позволяет распространить введенные определения на случай сложных отображений без особых их изменений.
Количество различных отображений, определяемых связью степени п, равно С" +... + С"-1. Естественно использовать для представления экземпляров этих отображений кортежи и отношения степени п. Семантически значимым кортежем степени и (СЗ-и-кортежем) называется форма {г1 :х1,...,гп :хп}(г -роль объекта, х - объект), представляющая экземпляр связи, а вместе с ним - С1п +... + СЦ-1 экземпляров соответствующих отображений.
Семантически значимым отношением степени п (СЗ-и-отношением), определенным на множествах Д,..., Вп, называется совокупность
{{г1 :X1,...,гп:хп}}х 6 А, каждый элемент которой является СЗ-п-кортежем, и все они представляют экземпляры одной и той же связи (имеют одинаковую семантику). Понятно, что СЗ-п-отношение определяет экземпляры всех
С! +... + Спп-1 отображений между множествами
£1,...,£п, порожденных одной связью степени п.
Из всех С1 +... + Спп-1 отображений, определяемых
одной связью степени п, особую роль играют 2п отображений с простыми объектами-прообразами и объектами-образами:
{гГ :у1,...,С_1:уп-1} = ф(гГ :х1) и :у =у({гГ :х1,...,г1|-1:хп-1}).
Отображения первого вида назовем отображениями, определяемыми ролью (в данном случае - г1гп), а отображения второго вида назовем отображениями, определяющими роль (в данном случае - г°и).
Теперь пора окончательно определиться с символической и графической нотациями определения отображений. Они основаны на том факте, что отношение степени п определяет все отображения, ассоциируемые с одной связью степени п, и что отображения, определяющие роль и определяемые ролью, имеют особое значение. В таком случае эти отображения, их характеристики, а также области определения и значения ролей задаются выражением
{г1 (ГМКЧ1, РМКЧ1,МКЧп -
- ГМКЧ 1, РМКЧ 1, МКЧ 1): Д,
г1 г1 г1 1
гп (ГМКЧГ , РМКЧГ ,МКЧГ -
п Гп >п гп
- ГМКЧ -1, РМКЧ -1, МКЧ -1): Бп },
гп гп гп
где г - роли объектов в связи степени п; Ц - классы объектов, являющиеся одновременно областями определения и значения соответствующих ролей; ГМКЧг, РМКЧ^,МКЧ - количественные характе-
ристики отображения, определяющего роль г-;
ГМКЧ -1, РМКЧ -1,МКЧ -1 - количественные харак-
г/ г/ г/
теристики отображения, определяемого ролью г-.
Используемая символика отображений не случайна. Для каждой роли г- отображение, определяющее эту роль, и отображение, определяемое этой ролью, взаимно обратны.
Например, отображения, определяемые тернарной связью между матерью, отцом и ребенком, задаются в символической нотации так: {мать (1,1,1 - 0,1, да): Человек, отец (1,1,1 - 0,1, да): Человек, ребенок (0,1, да - 1,1,1): Человек}.
Более удобна и наглядна графическая нотация. В ней, как и ранее, классы представляют собой вершины графа, а связи степени п - ребра с п концами. Вершины помечаются именами классов, узел ребра, в котором соединяются все его концы, может быть помечен именем связи, а каждый конец ребра - именем роли. Если семантика связи и отображений очевидна, два последних вида пометок можно не использовать. Количественные характеристики отображения, определяющего роль, помечают соответствующий конец ребра ближе к вершине, а количественные характеристики отображения, определяемого ролью, помечают соответствующий конец ребра ближе к узлу.
Информация о совокупностях классов (ролей), которые неизбыточно определяют функциональность отображений в конкретную роль, указывается в графической нотации после характеристик этого отображения в виде {£1,...,От}. Кстати, таких совокупностей может быть несколько.
Пример для связи рождение ребенка матерью и отцом изображен на рис. 4.
Рис. 4. Графическое представление связи рождение и ассоциированных с ней отображений
Для отображений со сложными объектами-образами уместна еще одна операция - операция проекции. Рассмотрим тернарную связь, определенную на множествах X, У, 2, и отображение ф: Х-> Ух2. Проекция отображения ф на роль У есть отображение ф[Ч : X -> У, такое, что для каждого экземпляра отображения ф[У] У:у = ф[У](Х:х) найдется экземпляр отображения ф {У:у, 2:2}= ф(Х:х), такой, что у них совпадают объекты-прообразы и объекты-образы роли У, на которую осуществляется проецирование. По определению проекции отображения, общезначимой будет следующая формула:
УхУу(у = ф[У](х) ^ 32(< у,2 >= ф(х))).
Здесь для упрощения записи мы опустили имена ролей, и сложный объект-образ представили упорядоченным кортежем <у,2>. Например, проекцией отображения Родители: Ребенок -> Мать х Отец на роль Мать будет отображение Мать: Ребенок -> Мать.
В общем случае (связь степени т+п, и проецирование осуществляется на к<т ролей) можно дать следующее определение: проекция отображения ф на роли
есть отображение ф[г1°
,..., гк
для каждого экземпляра отображения
ф[гГ,...
= ф[гГ,
* Кг“': у1,..., гки ук } =
,гТ]({гГ : хь
': хп })
такое, что
найдется экземпляр отображения
ф {г“*:у1,...,С*:ут} = ф({г/п :х,..., С :хп}),
такой, что у них совпадают объекты-прообразы и объекты-образы ролей, на которые осуществляется проецирование.
На этом можно закончить определение основных понятий теории семантически значимых отображений.
ЛИТЕРАТУРА
1. Энциклопедия кибернетики. В 2-х т. К.: Главная редакция Украинской Советской Энциклопедии, 1974.
2. Кофман А. Введение в теорию нечетких множеств. М.: Радио и связь, 1982.
3. Цикритзис Д., Лоховски Ф. Модели данных. М.: Финансы и статистика, 1985.
4. Кук Д., Бейз Г. Компьютерная математика. М.: Наука, 1990.
5. Дейт К.Дж. Введение в системы баз данных, 7-е изд. М.: Изд. дом «Вильямс», 2001.
Статья представлена кафедрой теоретических основ информатики факультета информатики Томского государственного университета, поступила в научную редакцию «Кибернетика и информатика» 7 мая 2003 г.