Сравнительный анализ семантических моделей, применяемых для проектирования схем баз данных

№ 290

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

Март

2006

ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ

УДК 681.3.016

А.М. Бабанов

СРАВНИТЕЛЬНЫЙ АНАЛИЗ СЕМАНТИЧЕСКИХ МОДЕЛЕЙ, ПРИМЕНЯЕМЫХ ДЛЯ ПРОЕКТИРОВАНИЯ СХЕМ БАЗ ДАННЫХ

В статье предлагается оригинальный подход к сравнению выразительных способностей семантических моделей. С использованием семантических категорий осуществляется сравнительный анализ известных моделей (IDEF1X, Barker ERM, Chen ERM, UML, ORM) и модели «Объект-Отображение», предлагаемой автором.

Практическому применению технологии баз данных неизменно сопутствует необходимость решения задачи проектирования схемы базы данных для одной из коммерческих систем управления базами данных. Если предметная область содержит хотя бы десяток различных типов объектов, вряд ли удастся качественно решить эту задачу, минуя этап семантического (концептуального) моделирования. К настоящему моменту в мире известны и воплощены в соответствующих программных средствах (так называемых CASE-системах) такие семантические модели, как IDEF1X, Barker ERM, Chen ERM, UML, ORM. Настоящая статья посвящена выработке понятийного аппарата для сравнения выразительных способностей этих моделей, с использованием которого во второй части статьи проводится сравнительный анализ вышеупомянутых моделей, а также OM-модели, предлагаемой автором.

ЭТАЛОН ДЛЯ СРАВНЕНИЯ СЕМАНТИЧЕСКИХ МОДЕЛЕЙ

В условиях использования различных понятий для представления одних и тех же концепций необходимо выработать набор базовых понятий, к которому будем приводить понятия различных моделей. После такого своеобразного «приведения к общему знаменателю» можно говорить об обоснованном сравнении выразительных возможностей семантических моделей. Для выработки набора базовых понятий воспользуемся сформулированным Дейтом общим подходом к проблеме семантического моделирования [1].

«Общий подход к проблеме семантического моделирования характеризуется четырьмя основными этапами.

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

2. Далее попытаемся определить набор соответствующих символических (т.е. формальных) объектов, которые могут использоваться для представления описанных выше семантических концепций.

3. Кроме того, следует определить набор формальных общих правил целостности, предназначенных для работы с такими формальными объектами.

4. Наконец, необходимо определить набор формальных операторов, предназначенных для манипулирования этими формальными объектами».

За основу семантических концепций возьмем семантические категории, выработанные философами, логиками и лингвистами за многовековую историю развития этих наук [2].

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

- именно языковая среда с детства формирует соответствующие мыслительные процессы в каждом человеке, включая проектировщика схем баз данных;

- считается, что способность модели данных к вербализации элементов схемы и самой базы данных полезна при верификации схемы экспертами по предметной области [3].

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

Имена - слова и словосочетания, являющиеся знаками предметов. Имена бывают единичные, их предметными значениями являются отдельные предметы, и общие. Общее имя является знаком произвольного, любого предмета некоторого класса (определенного вида предметов) и в силу этого как знак представляет в нашем мышлении именно этот класс, который и считается предметным значением общего имени.

Предикаторы - выражения языка, предметными значениями которых являются свойства (одноместные предикаторы) или отношения (многоместные предикаторы).

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

Логические термины - знаки логических отношений (операций), с помощью которых в языке строятся понятия и высказывания. Обобщенно все они мо-

гут трактоваться как знаки специфических - логических - функций.

Повествовательные предложения - знаковые формы суждений.

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

В том случае, когда областями определения и значений функции являются множества предметов, функция называется предметной. Другой, принципиально новый вид функций, введенных логикой, - это пропозициональные (логические) функции. Они отличаются от предметных функций своеобразием их значений. Таковыми являются Истина или Ложь. При этом в зависимости от характера области определения этих функций среди них особо выделяются предметно-истинностные и истинностно-истинностные. Знаками (функторами) предметно-истинностных функций являются предикаторы. Знаками истинностноистинностных функций являются логические связки.

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

Полезно заметить, что двухместные предикаторы могут трактоваться также как одноместные предметные функторы. Таковы предикаторы «отец», «мать». В обычном языке мы употребляем эти слова зачастую именно как предметные функторы для образования таких имен, как «мать Петрова».

ОПРЕДЕЛЕНИЕ ФОРМАЛЬНЫХ КОНЦЕПЦИЙ OM-МОДЕЛИ

Функциональная трактовка семантических категорий является методологической основой модели «Объект-Отображение» (в дальнейшем кратко -OM -модель от англоязычного ее написания - Object-Mapping Model) [4, 5]. Исходя из этой трактовки, определим набор формальных объектов, достаточных для представления описанных выше семантических концепций.

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

Характерным для единичных суждений является использование в качестве логических подлежащих их высказываний единичных имен, предметными значе-

ниями которых являются отдельные предметы или объекты (эмпирические или идеальные в зависимости от реальности или идеальности моделируемого мира). Таким образом, имеем одно из основных формальных понятий ОМ-модели - объект.

Логическое сказуемое в таких высказываниях может быть задано с использованием одиночного общего имени, предикатора или предметного функтора, либо более сложного логического выражения, включающего эти знаки и логические термины. Все указанные семантические категории могут быть выражены через предметные функции. Последние и представляют второе основное формальное понятие ОМ-модели, которое мы будем называть более подходящим термином «отображение». Он, во-первых, не несет математического, количественного смысла образов и прообразов, традиционного для понятия «функция». Во-вторых, с функцией, как правило, ассоциируется требование единственности образа, чего нам также хотелось бы избежать. Семантически значимое отображение (в дальнейшем - отображение) -это некоторый семантически значимый закон ф, по которому каждому объекту моделируемого мира может быть поставлен в соответствие (а может быть, и нет) один или более объектов.

Введем функциональную форму простых единичных высказываний а = ф(а), говорящую о том, что объект а является образом отображения ф. В качестве прообраза а могут выступать общие имена, определяющие то или иное понятие об индивидах, единичное имя или совокупность единичных имен. В такой форме а - логическое подлежащее, ф(а) - логическое сказуемое, знак «=» играет роль связки «есть» или «является».

Рассмотрим частные случаи единичных высказываний, которые получаются в зависимости от вида прообраза а.

Если а - общее имя понятия об индивидах, то ф -отображение, ставящее в соответствие этому понятию элемент (или экземпляр) его объема (или класса). Класс объектов, соответствующий определенному понятию, является третьим формальным понятием ОМ-модели. Таким образом, функциональным аналогом высказывания «Человек (Сидоров)» является «Сидоров = Экземпляр (Человек)», где «Сидоров» -единичное имя объекта, а «Человек» - общее имя всех объектов класса.

В общем случае функциональная форма высказывания о соответствии объекта а понятию об индивидах хА(х) вводится следующим определением:

а = Экземпляр(А) =Ву а есть хА(х).

Отметим еще раз, что универсальное отображение «Экземпляр» ставит в соответствие классу его объекты.

Высказывание «Сидоров женат» может трактоваться двояко. Во-первых, при наличии явно определенного понятия «Женатый мужчина», как «Сидоров = Экземпляр (Женатый мужчина)». Во-вторых, как «Истина = Женат (Сидоров)». Второй вариант соответствует использованию простого свойства, задаваемого в логике одноместным предикатом.

Кстати, в последнем случае мы позволили себе отойти от явного выделения логического подлежащего. Для соблюдения этого правила необходимо использовать обратное отображение, ставящее в соответствие истинностному значению «Истина» объект, обладающий указанным свойством: «Сидоров = Женатый мужчина (Истина)». Обратите внимание на схожесть этого высказывания с первым вариантом. Это связано с дуализмом понятия хА(х), характеризуемого, с одной стороны, своим объемом - №хА(х), с другой стороны, содержанием - А(х). В первом случае объект «Сидоров» представлен скорее как элемент объема понятия «Женатый мужчина», во втором - как объект, удовлетворяющий характеристическому условию понятия, т.е. его содержанию. Как видим, с помощью отображений можно отразить многие нюансы традиционных логических форм.

На примере высказываний «Сидоров = Женатый мужчина (Истина)» и «Истина = Женат (Сидоров)» видим, что в отображении могут участвовать (как в качестве прообразов, так и в качестве образов) не только объекты моделируемого мира, но также и просто значения. Последние составляют еще одно формальное понятие ОМ-модели и отличаются от объектов тем, что сами они никогда не являются предметом мысли, а используются лишь как образы в отображениях-свойствах и отображениях-характеристиках. Множество истинностных значений является одним из примеров множества значений, которое является следующим формальным понятием ОМ-модели.

В высказывании «Истина = Женат (Сидоров)» «Женат» представляет свойство, характеризующее видовое отличие предметов рода «Мужчина», образующих вид «Женатый мужчина». Возможно обобщение подобных высказываний на случай вообще любых свойств, определяемых в логике одноместными предикатами.

Каждый такой предикатор Р представляет отображение между классом объектов ЖхА(х), которым может быть присуще данное свойство (в пределе - универсумом), и множеством истинностных значений (Р/: ^хА(х) -> {Истина, Ложь}). Назовем такие отображения отображениями-свойствами. Мы используем символ Р/ для функтора, чтобы отличать его от символа Р, используемого для обозначения предиката. Каждому такому отображению Р/ соответствует обратное отображение Р/1: {Истина, Ложь} -> ^хА(х), дихотомически делящее весь класс №хА(х) на два не-пересекающихся подкласса: объекты, для которых свойство Р выполняется, и объекты, которым свойство Р не присуще.

Функциональная форма высказывания о присущности объекту а класса ИХА(х) свойства Р вводится определением

а = Р- (Истина) =В/ а есть хА(х) & Р(а).

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

В случае, когда а - единичное имя или совокупность единичных имен, представляющих конкретные объекты, высказывательная форма а = ф(а) представляет собой констатацию факта, что объект а находит-

ся в определенном отношении с объектом (-ами) а. Рассмотрим высказывание «Сидоров является родителем Маши». Его можно представить в традиционной форме как «Родитель-Ребенок (Сидоров, Маша)» (в тех случаях, когда отношение не характеризуется простым общим именем языка, будем указывать в качестве такового перечисление имен ролей, причем в порядке следования соответствующих объектов в кортежах отношения).

Возможны две эквивалентных функциональных формы этого высказывания: «Сидоров = Родитель (Маша)» и «Маша = Ребенок (Сидоров)», где «Родитель» и «Ребенок» - два взаимно обратных отображения. Первое ставит в соответствие человеку его родителя, второе - его ребенка.

Аналогичные термины определяют роли, которые играют элементы класса «Человек» в отношении «Родитель-Ребенок»:

х Родитель(х) =В/ хЧеловек(х) ЗуЧеловек(у) Роди-

тель-Ребенок(х, у) и

у Ребенок(у) =0у уЧеловек(у) ЗхЧеловек(х) Роди-

тель-Ребенок(х, у).

Они могут трактоваться, с одной стороны, как классы объектов, образованные из первых и вторых компонент всех пар <х, у>, которые находятся в отношении «Родитель-Ребенок». С другой стороны, они представляют собой подклассы объектов класса «Человек», для которых истинны соответствующие предикаты. В любом случае роль определяет класс объектов, ее исполняющих. Характерным для понятия роли является несущественность того, какой конкретно объект является второй половинкой пары, главное, чтобы он существовал. В случае отображения, как мы видим, существенными являются оба объекта: и объект-прообраз, и объект-образ.

Таким образом, термин «Родитель» как роль определяется выражением

Родитель =0уI РЧх (Р(х) = ЗуРодитель-Ребенок (х, у)),

а термин «Родитель» как отображение -

Родитель =0у I/ЧхЧу (х = /(у) = Родитель-Ребе-нок(х, у)).

Функциональная форма высказывания о том, что объект а класса ^ХА(х) находится в отношении S1-S2 с объектом Ь класса ИХВ(х), вводится следующим образом:

а = ^(Ь) =0/ а есть хА(х) & Ь есть хВ(х) & <а, Ь> есть <х, у>^1-^2(х, у).

Эквивалентно ему утверждение об обратном отображении:

Ь = 52(а) =В/ а есть хА(х) & Ь есть хВ(х) & <а, Ь> есть <х, у>^1-^2(х, у).

По аналогии с функциональными формами для свойств для бинарного отношения 51-52 следует ввести еще два высказывания:

Истина = (5^5^/ (а, Ь) =В/ а есть хА(х) & Ь есть хВ(х) & <а, Ь> есть <х, у>5^52(х, у) и

<а, Ь> = (81-Б2)/А(Истина) =В/ а есть хА(х) & Ь есть хВ(х) & <а, Ь> есть <х, у>5^52(х, у).

Здесь мы также используем символ (51-52)/ для функтора, чтобы отличать его от символа 51-52, используемого для обозначения двухместного предиката.

В качестве отношения степени больше двух рассмотрим отношение «Отец - Мать - Ребенок». Тот факт, что Маша является ребенком Сидорова и Петровой, в традиционной форме будет представлен высказыванием «Отец - Мать - Ребенок (Сидоров, Петрова, Маша)». Ему будут соответствовать следующие эквивалентные высказывания в функциональной форме:

Маша = Ребенок (Сидоров, Петрова);

Сидоров = Отец (Петрова, Маша);

Петрова = Мать (Сидоров, Маша);

< Сидоров, Петрова > = Отец - Мать (Маша);

< Сидоров, Маша > = Отец - Ребенок (Петрова);

< Петрова, Маша > = Мать - Ребенок (Сидоров);

Истина = Отец - Мать - Ребенок (Сидоров, Петрова, Маша);

< Сидоров, Петрова, Маша > = Отец - Мать - Ребенок-1 (Истина).

Как видите, мы распространили использование имен ролей и на случай функторов - имен отображений.

До сих пор мы ограничивались рассмотрением простых отображений, у каждого экземпляра которых есть один объект-прообраз и один объект-образ. В случае отношения степени больше двух нам не обойтись без сложных отображений, каждый экземпляр которых имеет более одного объекта-прообраза и/или объекта-образа.

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

{гГ :у!,...,С :ут} = ф({г/п :*,...,г“ :х^}), где г°и1 - роли объектов-образов; уг - объекты-образы; г™ - роли объектов-прообразов; х}- - объекты-прообразы.

Количество различных классов отображений между классами объектов, определяемых связью степени п, равно

п

с0 , , сп = \ ' ст = 2П

сп + ... + сп = 2^ сп = 2 .

т=0

Естественно использовать для представления экземпляров этих отображений кортежи и отношения степени п. Семантически значимым кортежем степени и

(СЗ-и-кортежем) называется форма {г1 : х1,..., гп : хп } (гi - роль объекта; xi - объект), представляющая экземпляр связи, а вместе с ним - 2п экземпляров соответствующих отображений. Семантически значимым отношением степени п (СЗ-и-отношением), определенным на множествах Ц,...,Бп, называется

совокупность {{г, : х1,...,гп : хп}},хг е Ц, каждый

элемент которой является СЗ-п-кортежем, и все они представляют экземпляры одного и того же класса связей (имеют одинаковую семантику). Понятно, что СЗ-п-отношение определяет экземпляры всех 2п отображений между множествами Д,...,Бп, порожденных одной связью степени п.

Из всех 2п отображений особую роль играют 2п отображений с простыми объектами-прообразами и объектами-образами:

{г/°и‘:у1,...,гпи :уп-1} = ф

и гГ‘ :у1 = У({гГ :xl,...,С-1 :хп-1}).

Отображения первого вида назовем отображениями, определяемыми ролью (в данном случае - г11п), а отображения второго вида назовем отображениями, определяющими роль (в данном случае - г1°и1).

Таким образом, в общем случае традиционной форме высказывания об отношении £1-£2-...-£п(а1, а2, ..., ап), где - 1-я роль отношения; а, - г-й компонент кортежа отношения; 51-52-.-5п - имя отношения; а1, а2, ., ап - кортеж отношения, соответствует 2п следующих эквивалентных функциональных форм:

Истина = Б1 £-...-5п

{^1 : а1} = £1 £ : а2, ..., Sn : ап)

{5*1 : al, ., : ак} = £1-.-£к

{£1 : а1, ..., £п : ап} = (£1-.-£п)~1(Истина).

И функциональное по форме высказывание

{£1 : al, ., £к : ак} = £1-.-£к

определяется следующим образом:

{£1 : аl, ., £к : ак} = £1-. -£к(£к+1 : ^+1 , . , ^ : а^ ~Д/

{£1 : а1, £2 : а2, ..., £п : ап} есть

{£1 : х1, £2 : х2, ..., £п : х„}£1-£2-.-£п(£1 : х1, £2 : х2,

., £п : хп).

В случае, когда а - единичное имя, представляющее простое значение (дату, число, строку символов), высказывательная форма а = ф(а) представляет собой констатацию факта, что объект а обладает значением некоторой характеристики, равным а. Рассмотрим высказывание «Сидоров = Человек пола (Мужской)». Эквивалентным ему будет высказывание «Мужской = Пол (Сидоров)», где «Пол» - функтор, представляющий отображение, ставящее в соответствие каждому человеку значение его пола. Такие отображения будем называть отображениями-характеристиками. Кстати, отображения-свойства представляют собой частный случай отображений-характеристик.

Функциональная форма высказывания о том, что объект а класса №хА(х) обладает значением характеристики /, равным х, вводится определением

а = /- (х) =0/ а есть хА(х) &/(а) = х.

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

Рассмотренный случай соответствует одноместной предметной функции в логике. Многоместная предметная функция определяет значение характеристики п-ки объектов. Например, для такой характеристики

связи типа «Брак», как дата регистрации брака, уместно рассмотреть высказывание «01.01.2001 = Дата регистрации брака (Муж: Сидоров, Жена: Петрова)». Здесь явно видна предметная функция, ставящая в соответствие кортежу объектов значение типа «Дата». Эквивалентными ему высказываниями, но уже с явно выраженными объектами-подлежащими, будут высказывания «Сидоров = Зарегистрированный муж (Жена: Петрова, Дата регистрации: 01.01.2001)» и «Петрова = Зарегистрированная жена (Муж: Сидоров, Дата регистрации: 01.01.2001)».

Функциональная форма высказывания о том, что объект а класса №хА(х) обладает в совокупности с объектом Ь класса ИхВ(х) значением характеристики f, равным х, вводится определением:

а = /а(Ь, х) =В/ а есть хА(х) & Ь есть хВ(х) & / (а, Ь) = х.

В теории семантически значимых отображений (ТСЗО) и ОМ-модели применяется ортогональный подход, при котором можно рассматривать отображения с любым положительным количеством прообразов и образов, причем они могут представлять собой произвольную совокупность объектов и значений, в которой есть, по крайней мере, один объект. Таким образом, уместно, в частности, говорить об отображениях-характеристиках объектов или их совокупностей в декартово произведение множеств значений.

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

- объекты моделируемого мира,

- классы объектов,

- значения характеристик как отдельных объектов, так и некоторых их совокупностей,

- множества значений,

- отображения как между объектами, так и между объектами и значениями.

Дальнейшим развитием функционального подхода, предпринятым в ТСЗО и ОМ-модели, является рассмотрение в каждом случае единичного высказывания не единственного отображения, а всех 2п отображений, определяемых отношением степени п. Это существенно повышает выразительность модели, позволяя определять в виде ограничений целостности на отображения дополнительные особенности предметной области.

Набор формальных общих правил целостности существенным образом определяется основными понятиями и составляет:

- ограничения целостности на множества значений отображений-характеристик;

- ограничения целостности на отображения-характеристики и сопутствующие им отображения;

- ограничения целостности на отображения между классами объектов;

- ограничения целостности на специализации;

- ограничения целостности на взаимоотношения отображений типа следствие и эквивалентность.

Ограничения целостности на множества значений отображений-характеристик достаточно традиционны

для технологии баз данных: определение синтаксиса составляющих их значений, перечисление допустимых значений, сравнение с константами, определение интервала и т.д.

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

Кардинальное число объекта х при отображении ф (обозначение - КЧф (х)) - мощность его области образов при этом отображении. Глобальное минимальное кардинальное число отображения ф

- это наименьшее из кардинальных чисел КЧф

объектов х, являющихся экземплярами области определения отображения (ООО) ф:

ГМКЧф = min КЧф (х).

х=экземпляр

Максимальное кардинальное число отображения

ф - это наибольшее из кардинальных чисел КЧф

объектов х, являющихся экземплярами ООО ф:

МКЧф = max КЧф (х).

х=экземпляр

В ТСЗО выделяются следующие типы отображений.

Отображение ф называется:

- неограниченным, если ГМКЧф = 0, МКЧф = да;

- полностью определенным, если ГМКЧф Ф 0 ;

- функциональным, если МКЧ ф = 1, в том числе:

- частичным функциональным, если ГМКЧф = 0, МКЧф = 1;

- полным функциональным, если ГМКЧф = 1, МКЧф = 1.

Отображение у полностью определено тогда и только тогда, когда

Vx( х = экземпляр (ООО (у)) ^ 3y( у = у( х))).

Отображение у функционально тогда и только тогда, когда VxVvVw(v = у(х) л w = у(х) ^ v = w).

Суперклассы и подклассы используются с целью исключения дублирования определения общих свойств и отношений нескольких «родственных» классов. Такие определения выносятся на уровень суперкласса и наследуются всеми его подклассами. Подкласс также может иметь свои собственные подклассы. Благодаря иерархиям специализации в проект включается важная семантическая информация о целостности и единственности объекта реального мира.

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

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

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

Тогда рассмотренные ранее ограничения целостности на специализации задаются следующими ограничениями на отображения между суперклассом и объединением подклассов:

- полная, пересекающаяся специализация:

иПК -> СК (1, 1), СК -> иПК (1, да), где иПК - объединение подклассов, а СК - суперкласс;

- полная, непересекающаяся специализация:

иПК -> СК (1, 1), СК -> иПК (1, 1);

- частичная, пересекающаяся специализация:

иПК -> СК (1, 1), СК -> иПК (0, да);

- частичная, непересекающаяся специализация:

иПК -> СК (1, 1), СК -> иПК (0, 1).

Здесь использована следующая краткая нотация: <ООО> -> <ОЗО> (<ГМКЧ>, <МКЧ>).

Отображение у является следствием отображения ф, если для любого экземпляра отображения ф найдется экземпляр отображения у, такой, что их образы и прообразы совпадают. Очевидно, что ООО у включает ООО ф, а область значений отображения (ОЗО) у включает ОЗО ф. В таком случае УхУу(у = ф(х) ^ у = у(х)) истинно. Например, отображение «ребенок» является следствием отображения «дочь».

Отображения ф и у эквивалентны тогда и только тогда, когда они являются следствием друг друга. Очевидно, что ООО у = ООО ф, а ОЗО у = ОЗО ф. В таком случае УхУу(у = ф(х) -о у = у(х)) истинно.

Например, отображение «ребенок» эквивалентно объединению отображений «дочь» и «сын».

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

рация ставит в соответствие одному или двум классам отображений один новый класс отображений. В целом набор таких операций образует алгебру отображений.

Отображение ф-1 является инверсией отображения ф тогда и только тогда, когда

VxVy(y = ф(x) ^ x = ф-1 (y)) .

Отображение у(ф) является композицией отображений ф и у тогда и только тогда, когда

VxVz(z = у(ф(x)) ^ 3y(y = ф(x) л z = у (y))).

Отображение ф и у является объединением отображений ф и у тогда и только тогда, когда

VxVy(y = (фиу)(x) ^ y = ф(x) vy = у(x)).

Отображение ф п у является пересечением отображений ф и у тогда и только тогда, когда

VxVy(y = (ф п у)(x) ^ y = ф(x) л y = у(x)) .

Отображение ф - у является разностью отображений ф и у тогда и только тогда, когда

VxVy(y = (ф-у)(x) ^ y = ф(x)л—.y = у(x)).

Отображение ф[Т] является проекцией отображения ф со сложным объектом-образом на роль Y тогда и только тогда, когда

VxVy(y = ф^](x) ^ 3z(< y, z >= ф(x))).

Отображение ф О у является агрегатом отображений ф и у тогда и только тогда, когда

VxVyVz(< y, z >= (фОу)(x) ^ y = ф(x) л z = у(x)).

Творчески применив подход Дейта к семантическим категориям, мы получили в результате OM-модель.

СРАВНЕНИЕ КОНЦЕПЦИЙ СЕМАНТИЧЕСКИХ МОДЕЛЕЙ

Объектами анализа являются следующие семантические модели:

- модель «Сущность-Связь» в нотации Чена [6] (в дальнейшем - Chen ERM);

- модель «Сущность-Связь» в нотации Баркера [7] (в дальнейшем - Barker ERM);

- модель «Сущность-Связь» в нотации IDEF1X [8] (в дальнейшем - IDEF1X);

- объектно-ориентированная модель в нотации UML [9] (в дальнейшем - UML);

- модель «Объект-Роль» в нотации ORM [10, 11] (в дальнейшем - ORM);

- модель «Объект-Отображение» [4, 5] (в дальнейшем - OMM).

Если все остальные модели и нотации создавались специально для семантического информационного моделирования, то UML представляет собой набор моделей для всего жизненного цикла разработки программного обеспечения, включая функциональное моделирование. Комплексный подход является большим преимуществом UML. В настоящем обзоре мы, однако, затрагиваем аспекты, касающиеся только высокоуровневого информационного моделирования, которое в UML предлагается осуществлять с помощью диаграмм классов. Именно эту нотацию (без элементов моделирования поведения объектов классов) мы и будем иметь в виду, говоря про UML.

Уже рассмотренное соответствие формальных концепций OM-модели логическим семантическим категориям показано в первых двух столбцах табл. 1. В целом эта таблица представляет сведение понятий анализируемых моделей к семантическим категориям и формальным концепциям OM-модели.

Во всех моделях есть два отдельных вида объектов, для которых применяются единичные имена, -сущности моделируемого мира и значения характеристик. ORM вводит для них обобщающее понятие -объект. OMM, Chen ERM и ORM рассматривают значения как нечто самостоятельное, организующееся в множества значений. Остальные модели оперируют

значениями исключительно в контексте атрибутов.

Общие имена во всех моделях обобщают единичные объекты до классов, множеств и типов.

Что касается свойств, отношений и характеристик, то особняком стоят две модели - ОММ и ОЯМ, которые при этом не используют понятие атрибута. Они оперируют более общими понятиями отображений и ролей соответственно и все случаи сводят к использованию только этих понятий. В остальных моделях для представления свойств, отношений и характеристик применяют как атрибуты, так и множества связей (в иМЬ - ассоциации). Первые представляют соответствия между объектами и значениями, вторые - только

Т аблица 1

Семантические категории и концепции сравниваемых моделей

Семантическая категория ОММ ГОЕИХ Barker ERM Chen ERM иМЬ ОИМ

Имя - единичное -- предмет - общее -- класс Объект Значение Класс объектов Множ-во значений Сущность Значение атрибута Множество сущностей Сущность Значение атрибута Множество сущностей Сущность Значение Множество сущностей Множество значений Объект Значение атрибута Класс объектов Объект Сущность Значение Тип объекта Тип сущностей Тип значений

Предикатор - одноместный (свойство предмета) - и-местный (отношение между и предметами) -- степени 2 -- степени > 2 2 отображения 2п отображений 4 отображения 2п отображений Атрибут логическ. типа Множество связей Атрибут логическ. типа Множество связей Атрибут логическ. типа Множество связей Множество связей Множество связей Атрибут логическ. типа Ассоциация Ассоциация Ассоциация Предикат: - с одной ролью - с и ролями - с 2 ролями - с и ролями

Предметный функтор - одноместной функции (характеристика предмета) -- с простым значением -- с значением га-кортежем - и-местной функции (характеристика и-ки предметов) -- с простым значением -- с значением га-кортежем 4 отображения 2т+1 отображений 2п+1 отображений 2п+т+1 отобра- жений Атрибут множества сущностей Атрибут множества сущностей Атрибут множества сущностей: - в 1 множество значений - в m множеств значений Атрибут множества связей: - в 1 множество значений - в m множеств значений Атрибут класса Предикат с 2 ролями: сущности и значения

Атрибут ассоциа- тивного класса Предикат с 2 ролями: объективизированной связи и значения

между объектами. Отметим, что в IDEF1X и Barker ERM возможны только бинарные множества связей.

Как утверждалось ранее, предметные функции в четырех моделях (IDEF1X, Barker ERM, Chen ERM и UML) представлены атрибутами. Беднее всего возможности IDEF1X и Barker ERM - в них допустимы только характеристики сущностей с простыми значениями. Благодаря понятию ассоциативного класса в UML возможны также простые характеристики n-ок предметов. Такие же возможности имеются в ORM с использованием так называемых объективизированных (objectified) связей, превращающих связь в сущность.

Полностью покрывают все возможности предметных функций лишь две модели - OMM и Chen ERM. Первая - благодаря универсальности понятия отображения, использования сложных отображений и ортогональности понятий объект и значение. Чен в своей основополагающей статье [6] определяет атрибут как отображение и рассматривает четыре типа атрибутов:

- отображение множества сущностей в множество значений;

- отображение множества сущностей в декартово произведение множеств значений;

- отображение множества связей в множество значений;

- отображение множества связей в декартово произведение множеств значений.

Высказывания наряду с OMM явно рассматриваются только в ORM, там они называются элементарными фактами [3].

В целом развитие семантических моделей на рубеже веков (OMM и ORM) демонстрирует тенденцию к декомпозиции казавшихся незыблемыми понятий «множество связей», «отношение», «предикат». С другой стороны, из разряда основных ушло понятие «атрибут».

Поскольку OMM и ORM во многом близки, хотелось бы уточнить их принципиальное отличие. Оно заключается в тех базовых понятиях, на которые в этих моделях декомпозировалось понятие «отношение». Подход OMM ранее достаточно подробно обсуждался, причем была явно продемонстрирована разница в понятиях «отображение» и «роль». Кстати, наша трактовка последнего понятия совпадает с мнением других специалистов.

Чен утверждает: «Роль сущности в связи - это функция, которую сущность выполняет в данной связи. Упорядочивание сущностей в определении связи может отсутствовать, если в связи явно указаны роли сущностей: (rj/ebr2/e2,...,rn/en), где r, - это роль сущности et в данной связи» [6].

Буч, Рамбо, Джекобсон отмечают: «Класс, участвующий в ассоциации, играет в ней некоторую роль. По существу, это «лицо», которым класс, находящийся на одной стороне ассоциации, обращен к классу с другой ее стороны» [9].

В статьях основного пропагандиста ORM Халпина понятие роли весьма противоречиво [11]. С одной стороны, он утверждает: «ORM представляет мир в терминах объектов, исполняющих роли. Факты - это утверждения о том, что объекты играют роли». В нашем понимании это соответствует следующим высказываниям: «Сидоров - муж», «Маша - ребенок», кон-

статирующим принадлежность объекта тому или иному классу. Если модель оперирует только такими фактами, она вряд ли может претендовать на большую выразительность и простоту использования.

С другой стороны, Халпин пишет: «n-арный факт имеет n ролей. Каждый из слотов предиката определяет отдельную роль в этом предикате». И далее: «Ограничение уникальности утверждает, что объекты (или значения) одной или нескольких ролей появляются в таблице фактов не более одного раза». В этих высказываниях явно видна первичность традиционных понятий «n-арный факт», «предикат», «таблица» и вторичность (как и в других моделях) - понятия «роль». Чувствуется, что понятие «роль» не в состоянии заменить понятий «отношение», «множество связей» в отличие от понятия «отображение».

В заключение этого раздела следует отметить, что наметившиеся в развитии семантических моделей тенденции привели к повышению выразительной силы этих моделей, а в лице OMM семантические модели приобрели формальную систему с присущей ей строгостью определений и выводов [12].

СРАВНЕНИЕ ВОЗМОЖНОСТЕЙ ОПРЕДЕЛЕНИЯ ОГРАНИЧЕНИЙ ЦЕЛОСТНОСТИ СЕМАНТИЧЕСКИХ МОДЕЛЕЙ

В табл. 2 проведено сравнение моделей с точки зрения возможностей выражения введенных ранее классов ограничений целостности.

Средства ограничений первого класса настолько традиционны, что в большинстве публикаций по моделям данных о них не упоминается.

Способность OMM определять ограничения целостности для всех теоретически возможных отображений открывает вряд ли когда-либо полностью используемые возможности. Так, в табл. 1 приведено количество отображений, связанных с каждым случаем использования предметных функций. Мы ограничимся рассмотрением ограничений целостности, упоминаемых в других семантических моделях. Они связаны лишь с двумя отображениями. Отображение-характеристика ставит в соответствие объекту или n-ке объектов одно значение или кортеж значений. Обратное ему отображение меняет местами образы и прообразы.

В IDEF1X и Barker ERM только функциональные отображения-характеристики могут представляться атрибутами, причем в качестве прообразов могут выступать только сущности. Необязательным атрибутам соответствуют частичные, а обязательным - полные функциональные отображения.

В отличие от них в Chen ERM и UML возможны как однозначные, так и многозначные атрибуты (связанные с нефункциональными отображениями-характеристиками).

Функциональные обратные отображения определяют ключевые атрибуты (как элементарные, так и групповые). Правда, в IDEF1X и Barker ERM можно определить лишь единственный первичный ключ, а в Chen ERM - любое количество возможных ключей. В ORM аналогичное ограничение целостности называется внутренним ограничением уникальности (internal uniqueness constraint).

Реализация ограничений целостности в сравниваемых моделях

Класс

ограничений

OMM

IDEF1X

Barker ERM Chen ERM

UML

ORM

Ограничения

целостности

на множества

значений

отображений-

характеристик

Традиционные средства:

- определение синтаксиса составляющих их значений,

- перечисление допустимых значений,

- сравнение с константами,

- определение интервала и т.д.

Ограничения целостности на отображения-характеристики и сопутствующие им отображения

Отображение-характеристика: МКЧ = 1 ГМКЧ = 0 ГМКЧ = 1 МКЧ = ю ГМКЧ = 0 ГМКЧ = 1

Обратное ему отображение: МКЧ = 1 ГМКЧ = 0 ГМКЧ = 1 МКЧ = ю ГМКЧ = 0 ГМКЧ = 1

Атрибут:

необяз.

обязат.

Первичный ключ

Атрибут:

необяз.

обязат.

Первичный ключ

Одно-

значный

атрибут

Много-

значный

атрибут

Возмож-

ный

ключ

Атрибут:

однозн.

необяз.

обязат.

многозн.

необяз.

обязат.

Первичн. и возм. ключ

Значение:

уник.

необяз.

обязат.

неуник.

необяз.

обязат.

Сущность:

уник.

необяз.

обязат.

неуник.

необяз.

обязат.

Ограничения целостности на отображения между классами

Отображение, определяемое ролью или группой ролей: МКЧ = 1 ГМКЧ = 0 ГМКЧ = 1 МКЧ = да ГМКЧ = 0 ГМКЧ = 1

Прообразы и образы -исключительно простые объекты

ООО

составляют

сущности

регулярн.

слабые

регулярн.

слабые

Эта роль или группа ролей: уник. необяз. обязат. неуник. необяз. обязат.

Отображение, определяющее роль или группу ролей: МКЧ = 1 ГМКЧ = 0 ГМКЧ = 1 МКЧ = ю ГМКЧ = 0 ГМКЧ = 1

Прообразы и образы -исключительно простые объекты

Бинарное отношение типаМ:Ы

Отображение, обратное агрегату функционально

Зависимое

множество

сущност.

Противоположная роль или гр. ролей: уник. необяз. обязат. неуник. необяз. обязат.

Возможно

Возможно

Возможно

Возможно

Штрих на ребре

ID-зави-

симость

Внешняя

уникальность

Ограничения целостности на специализации

Специализация полная, пересекающаяся иПК -> СК (1, 1),

СК -> иПК

Возможна

Возможна

Возможна

Специализация полная, непересекающаяся иПК -> СК (1, 1),

СК -> иЛК

Возможна

Возможна

Возможна

Возможна

Возможна

Специализация частичная, пересекающаяся иПК -> СК (1, 1),

СК -> иПК

Возможна

Возможна

Возможна

Специализация частичная, непересекающаяся иПК -> СК (1, 1),

СК -> иПК

Возможна

Возможна

Возможна

Возможна

Преамбула про неограниченные возможности OMM, предпосланная обсуждению предметных функций, справедлива и для предикатов. Используя характеристики всех возможных отображений между классами, можно тонко описать закономерности предметной области. Мы же ограничимся рассмотрением отображений, обсуждаемых в других моделях - отображений, определяемых ролью (группой ролей), и отображений, определяющих роль (группу ролей). Заметим, что в силу ограничения на степень множеств связей, прообразы и образы этих отображений в IDEF1X и Barker ERM должны быть простыми объектами, и соответственно эти отображения взаимно обратны.

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

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

Особо следует отметить, что в IDEF1X бинарное множество связей должно определять как минимум одно функциональное отображение и, следовательно, не может быть множеством связей типа «многие ко многим».

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

Для примера укажем отображение, обратное отображению-агрегату, построенному из произвольного сочетания отображений-характеристик и отображений между объектами. Тот факт, что оно функционально, в IDEF1X соответствует понятию зависимого множества сущностей, в Barker ERM представляется штрихом на ребре множества связей, в Chen ERM соответствует понятию ID-зависимости, а в ORM - внешнему ограничению уникальности (external uniqueness constraint). Все упомянутые выразительные средства го-

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

Только одна модель (Barker ERM) позволяет использовать единственный вид специализаций - полную, непересекающуюся. IDEF1X расширяет этот список еще и частичной, непересекающейся специализацией. Остальные модели допускают использование всех четырех видов специализаций. Отметим, что везде, кроме OMM, это связано с расширением основных концепций модели. В OMM, как видим, используются все те же понятия класса объектов и отображения. А все виды специализаций образуются, если накладывать разные ограничения на отображение из суперкласса в объединение подклассов.

Ограничения, связанные в OMM с определением следствий и эквивалентностей между отображениями, нашли свое отражение лишь в UML и ORM. Правда в первой это сводится к тому, что одна ассоциация является подмножеством другой. Остальные варианты следствий и эквивалентностей между отображениями требуют в UML дополнительных недиаграммных языковых средств. В ORM подобные ограничения называются ограничениями на подмножество и совпадение между двумя совместимыми последовательностями ролей. Каждая из последовательностей представляет собой проекцию некоторого предиката (отношения) или даже естественного соединения нескольких предикатов (отношений). Благодаря наличию в OMM операций над отображениями и производных отображений, класс ограничений целостности этого типа в ней очевидно шире, чем в других семантических моделях.

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

ЛИТЕРАТУРА

1. Дейт К. Введение в системы баз данных. 7-е изд.: Пер. с англ. М.: Вильямс, 2001. 1072 с.

2. Войшвилло Е.К., Дегтярев М.Г. Логика как часть теории познания и научной методологии (фундаментальный курс): В 2-х кн. М.: Наука, 1994.

3. Hatpin T.A. What is an elementary fact? // Proc. First NIAM-ISDM Conf., Utrecht, (Sep). 1993. 11 p.

4. Бабанов А.М. Теория семантически значимых отображений // Вестник ТГУ. 2003. № 280. С. 239 - 248.

5. Бабанов А.М. Применение теории семантически значимых отображений для проектирования реляционных баз данных // Вестник ТГУ. 2003. № 280. С. 249 - 257.

6. Chen P.P. The Entity - Relationship Model - Toward a Unified View of Data // ACM Trans. Database Systems. 1976. V. 1. No. 1. P. 9 - 36.

7. BarkerR. CASE*Method: Tasks and Deliverables. Wokingham, England: Addison-Wesley, 1990.

8. ВендровА.М. CASE-технологии. Современные методы и средства проектирования информационных систем. М.: Финансы и статистика, 1998. 176 с.

9. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя. М.: ДМК, 2000. 432 с.

10. Hatpin T.A. Business Rules and Object-Role Modeling // Database Prog. & Design. 1996. V. 9. No. 10. Miller Freeman, San Mateo CA. P. 66 -

72.

11. Hatpin T.A. Object-Role Modeling: An overview, electronic paper available on website www.orm.net, 1997.

12. Бабанов А.М. Формальная система теории семантически значимых отображений // Наст. сборник. С. 261 - 263.

Статья представлена кафедрой теоретических основ информатики факультета информатики Томского государственного университета, поступила в научную редакцию «Информатика» 25 мая 2005 г.