2007
ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА Управление, вычислительная техника и информатика
№ 1
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ
УДК 004.652: 681.3.016
А.М. Бабанов СЕМАНТИЧЕСКАЯ МОДЕЛЬ «СУЩНОСТЬ - СВЯЗЬ - ОТОБРАЖЕНИЕ»
Статья посвящена описанию семантической модели данных «Сущность-Связь-Отображение». В ней раскрываются назначение модели, ее основные структурные понятия, ограничения целостности и операции.
В предыдущих работах автора рассматриваются различные аспекты предлагаемого подхода к семантическому моделированию. Настоящая публикация представляет собой наиболее полное и целостное изложение семантической модели «Сущность - Связь - Отображение» в ее текущем состоянии. Известная ранее как модель «Объект - Отображение» эта модель рассматривается сейчас как развитие расширенной модели «Сущность - Связь» (EER-модели), при котором сохраняются основные, практически востребованные конструкции, а также вводятся новые, не менее полезные элементы, существенно повышающие выразительные возможности модели.
1. Назначение семантических моделей
Целью исследований автора является совершенствование семантической методики проектирования схем баз данных (БД) [1] и доведение ее до идеала, при котором выявление семантики предметной области (ПрО) и полная ее формализация осуществляется человеком один раз на первом этапе разработки информационной системы - анализе ПрО. Дальнейший перевод закономерностей ПрО, представленных в семантической схеме, на язык системы управления БД (СУБД) может происходить в достаточной степени формально одним из следующих способов:
- вручную человеком по фиксированным правилам семантической методики;
- полностью автоматически с использованием CASE-инструмента (Computer Aided Software Engineering - разработка программного обеспечения с помощью компьютера);
- в ходе человеко-машинной процедуры под управлением CASE-системы.
Для достижения поставленной цели, как минимум, необходимо синтезировать мощную семантическую модель [1] и разработать для нее набор детальных правил трансформации схемы в реляционную модель. Программой-максимумом является реализация CASE-системы, позволяющей вводить в удобной для человека форме семантику ПрО и генерировать элементы схемы на языке конкретной СУБД.
К модели-претенденту предъявляются следующие требования:
1. Модель должна обладать достаточной общностью и ясностью для того, чтобы в ней можно было легко представить любые явления и законы моделируемого мира.
2. Разрыв между этой моделью и моделями, реализуемыми в СУБД, не должен быть большим, желательно, чтобы можно было воспользоваться максимально
формальными правилами преобразования структур и ограничений целостности из одной модели в другую.
2. ER-модель и ее модификации
Одной из самых первых и самых распространенных семантических моделей данных является модель «Сущность - Связь» (Entity-Relationship Model - ER-модель). Первоначально предложенная Ченом в 1976 году [2] она предполагала пять основных структурных понятий схемы: множество сущностей, множество связей, множество значений, роль и атрибут (рис. 1).
Рис. 1. Метасхема ER-модели
В дальнейшем ER-модель была пополнена понятиями «специализация» и «категоризация» для представления отношений обобщения между множествами сущностей, и таким образом образована расширенная ER-модель (Enhanced Entity-Relationship Model - EER-модель) [3] (рис. 2).
Рис. 2. Метасхема EER-модели
Последующие модификации ER-модели (нотации Баркера и IDEF1X), хоть и удостоились реализаций в CASE-инструментах (Oracle Designer и ERwin соответственно), шли по пути сокращения выразительных возможностей представления семантики предметной области.
Схематично модификации ER-модели Чена можно представить следующим образом (рис. 3).
ER-модель
Чена
Рис. 3. Схема модификаций ER-модели
Основным недостатком ER-моделей Баркера и IDEF1X является тот факт, что они предлагают бедный язык для описания семантики ПрО и, в силу этого, уже на начальной фазе формализации представлений о ПрО вынуждают человека принимать «чисто технические» решения. Но совмещение двух в принципе различных мыслительных процессов - выяснение семантики ПрО и определение схемы БД на весьма абстрактном языке СУБД - еще полбеды. Хуже то, что принимаемые в ходе этого технические решения (например, введение дополнительного множества сущностей и бинарных множеств связей вместо множества связей степени больше двух) должны быть по-хорошему проанализированы заново в реляционной схеме. В противном случае можно получить не самую эффективную схему БД.
Идеальная семантическая модель должна быть близка по своей концепции человеческому мировосприятию и не сковывать его потребности в описании семантики моделируемого мира.
3. Модель восприятия мира человеком и понятия ER-модели
В философии и логике сложилась довольно естественная модель человеческого восприятия мира [4]. В соответствии с ней люди без проблем выделяют многочисленные предметы и строят их абстракции в контексте тех или иных понятий. Сами понятия о предметах в свою очередь тоже являются предметами мысли, правда, абстрактными, обобщающими реальные предметы. Все, что можно сказать о предмете, называют его признаками. Признаком может быть наличие или отсутствие у предмета того или иного качества - свойства, значения характеристики или отношения предмета к другим предметам. Подобные взгляды на окружающий нас мир хорошо соответствуют основным понятиям ER-модели.
Сущность (entity) - это абстрактное представление единичного объекта ПрО. Эта абстракция строится на основании некоторого понятия, существенного с точки зрения задач ПрО. Любое понятие характеризуется содержанием (условием, истинность которого говорит о том, что объект подпадает под это понятие) и объемом (классом объектов, удовлетворяющих условию содержания). Содержание понятия предполагает наличие определенных характеристик, общих для всех объектов объема, возможно различающихся значениями. Очевидно, что с точки зрения различных понятий можно построить несколько абстракций-сущностей одного и того же объекта. Понятие определяет множество сущностей (entity set), интенсионалом которого является содержание понятия, а экстенсионалом - его объем.
Связь (relationship) - это единичный экземпляр отношения (в философско-логическом смысле) между сущностями. Абсолютно все, что говорилось о сущности и множестве сущностей, можно сказать о связи и множестве связей. Разница заключается лишь в том, что для последних используется не понятие о предметах (как у сущностей), а понятие об отношениях. Множество связей (relationship set) можно рассматривать как математическое отношение, определенное на n множествах сущностей, а связь - как кортеж этого отношения с n элементами-сущностями.
Каждая сущность в такой связи играет определенную роль (role) - функцию, общую для всех сущностей этой роли. Таким образом, даже если в понятии об отношении неоднократно участвует одно и то же множество сущностей, в каждой связи сущности этого типа будут различаться своими ролями.
Информацию об объекте или взаимоотношении между объектами получают путем наблюдения или измерения характеристик, существенных для того или иного понятия, и выражают множеством пар «атрибут - значение». Значения (value) классифицируются в различные множества значений (value set). Таким образом, множество значений в этой модели представляет собой то, что в других моделях иногда называют доменом, - областью допустимых значений атрибутов.
Атрибут (attribute) в ER-модели формально определяется как отображение, ставящее в соответствие сущностям или связям некоторого множества одиночные значения или кортежи значений. Таким образом, областью определения атрибутивного отображения может быть множество сущностей или множество связей, а областью значений - множество значений или Декартово произведение множеств значений. Причем это отображение не обязано быть функциональным, образов у одного прообраза может быть несколько. В таком случае говорят о многозначных атрибутах.
Как уже отмечалось, расширениями ER-модели Чена являются концепции специализации/генерализации и категоризации. При этом задаются отношения
типа «подкласс - суперкласс» между множествами сущностей. Суперклассы и подклассы используются с целью исключения дублирования определения общих атрибутов и связей нескольких «родственных» типов сущностей (каждый подкласс специализации наследует все атрибуты и типы связей суперкласса). Специализация (specialization) представляет собой нисходящий подход к определению множества суперклассов и связанных с ними подклассов. Генерализация (generalization) представляет собой восходящий подход (противоположный специализации).
В некоторых ситуациях может потребоваться смоделировать связь «суперкласс/подкласс», включающую сразу несколько разных суперклассов. В этом случае создаваемый подкласс будет называться категорией (category). Подкласс категории обладает выборочным наследованием (selective inheritance). Это означает, что каждая сущность категории наследует атрибуты и связи только одного суперкласса. Кроме уже указанных возможностей, обеспечивающихся механизмом наследования, специализации и категоризации позволяют восстановить в БД единство объекта предметной области, рассматриваемого как несвязанные его абстракции-сущности.
4. Модель «Сущность - Связь - Отображение» как развитие ER-модели
Автором предлагается модель «Сущность - Связь - Отображение» (прежнее название - «Объект - Отображение») [5], которая в каком-то смысле продолжает развитие ER-модели в сторону более детального описания закономерностей предметной области. Ее англоязычное название - Entity-Relationship-Mapping Model или ERM-model (рис. 4).
Рис. 4. Метасхема ERM-модели
Кратко перечислим нововведения (основные из них будут подробнее освещены в дальнейшем):
1. Явно введено понятие «класс» как обобщение понятий «множество сущностей», «множество связей» и «множество значений» (в предыдущих версиях ER-модели оно отсутствовало). Именно классы будут образовывать области определения и области значений отображений.
2. Специализации и категоризации подняты на уровень класса, что позволяет рассматривать иерархии обобщения не только множеств сущностей, но также и множеств связей, и множеств значений.
3. Введено понятие «отображение». Определение каждого отображения включает помимо прочего указание ролей образов и прообразов, а также классов, объекты которых играют эти роли.
4. Выделены частные случаи отображений - атрибутивные и реляционные отображения. Первые полностью соответствуют аналогам в модели Чена. Вторые определяются множествами связей, и в качестве образов и прообразов в них выступают сущности.
5. Между отображениями вводятся отношения следствия и эквивалентности.
6. Определена алгебра отображений - набор операций, задаваемых на множестве отображений. Каждая операция имеет одно или два отображения на входе и продуцирует одно отображение на выходе.
7. Для специализаций введено понятие основания деления. В качестве такового выступают отображения.
Ключевым моментом, повлекшим за собой возможности более глубокого анализа ПрО, является дальнейшая декомпозиция понятия «множество связей» (в ER-модели при этом рассматриваются только роли сущностей) и выделение так называемых семантически значимых отображений. Каждое множество связей степени n определяет 2" - 2 отображений между множествами сущностей.
На самом деле отображения в моделировании данных присущи не только множествам связей, они пронизывают всю схему данных и очень тонко выражают семантику ПрО.
5. Понятие отображения
Семантически значимое отображение (mapping) (в дальнейшем просто - отображение) - это структурное понятие ERM-модели, определяющее некоторый закон предметной области, по которому каждому объекту моделируемого мира может быть поставлен в соответствие (а может быть, и нет) один или более объектов. Законы, действующие в мире объектов, представляются в нашей модели в виде отображений, прообразами и образами которых являются сущности, связи и значения. Термин «семантически значимый» предполагает значимость с точки зрения семантики, изучающей семантические отношения, которые образуются между объектами и знаками, представляющими эти объекты в знаковой системе. Благодаря этому эпитету мы дистанцируемся от абстрактных (в частности математических) отображений и функций.
Каждый факт соответствия ф одному объекту одного другого объекта представляет экземпляр отображения ф (или экземпляр ф-отображения); все экземпляры одного и того же отображения ф, соответствующие одному объекту, будем называть отображением ф этого объекта (или ф-отображением объекта).
Рассмотрим объект х и отображение ф. Будем называть образом (image) объекта х при отображении ф (или, кратко, ф-образом объекта х) объект у, поставленный в соответствие объекту х одним из экземпляров отображения ф (краткая запись у = ф(х)).
Все отображение ф объекта х порождает совокупность образов, которую будем называть областью ф-образов объекта х (обозначение - {ф(х)}). В каждом конкретном случае эта совокупность:
- может быть пустой (отображение ф неприменимо к объекту х) или
- содержать один объект, или
- содержать много объектов.
Объект x в таком случае будем рассматривать как прообраз (preimage) объекта у при отображении ф (или, кратко, ф-прообразом объекта у).
ф-отображение объекта х характеризует кардинальное число (cardinal number) объекта х при отображении ф (обозначение - КЧф (х)) - мощность его области
образов при этом отображении.
Совокупность всех объектов, имеющих ненулевые кардинальные числа при отображении ф назовем реальной областью определения отображения (РООО) ф, а совокупность всех ф-образов этих объектов - реальной областью значений отображения (РОЗО) ф. Одним из самых главных отличий отображений объектов реального мира от функций в математике является динамичный характер экземпляров отображений. В течение времени эти экземпляры могут возникать и исчезать, у них могут меняться образы. В то время как функция у = х2 раз и навсегда фиксирует свои экземпляры.
Семантика же отображений стабильна и в любой момент времени отражает тот закон, который справедлив для всех возможных состояний их экземпляров. По этой причине наряду с динамичными РООО и РОЗО для отображений необходимо рассматривать «потенциальные» области определения и значений отображений. Область определения отображения ф (ООО) (domain) - это совокупность объектов, которые в силу смысла закона ф могли иметь в прошлом или имеют в настоящем, или смогут иметь в будущем хотя бы один ф-образ. Область значений отображения ф (ОЗО) (codomain) - это совокупность объектов, которые в силу смысла закона ф могли быть в прошлом или являются в настоящем, или смогут стать в будущем ф-образами некоторых объектов. Например, если отображению ДОЧЬ придать юридический смысл, то ООО ДОЧЬ - совокупность всех людей, а ОЗО ДОЧЬ - совокупность всех женщин (ДОЧЬ: ЧЕЛОВЕК ^ ЖЕНЩИНА).
6. Формальная система
ERM-модель позволяет по-новому взглянуть на идею семантического моделирования. Дейт, рассматривая его на примере ER-модели, справедливо отмечает, что «ER-модель не является формальной моделью» [1. С. 523].
«...семантическое моделирование не является такой же строгой и ясной дисциплиной, как методика дальнейшей нормализации. Суть в том, что проектирование БД все еще является весьма субъективным занятием. Оно и не может быть объективным, поскольку существует сравнительно мало действительно строгих принципов, которые могут использоваться для разрешения этой проблемы (немногие существующие на сегодняшний день принципы, в основном, являются принципами нормализации). Идеи семантического моделирования можно рас-
сматривать как чисто эмпирические рекомендации, которые действительно могут быть весьма полезны на практике» [1. С. 526 - 527].
Мы же стараемся найти эти «строгие принципы» еще в рамках близкого к человеку семантического моделирования, получить формальные правила трансформации их в «строгие реляционные принципы», позволяющие автоматизировать этот процесс с гарантией наилучшего качества. Формальному взгляду на семантическое моделирование способствуют предлагаемые для ERM-модели теория семантически значимых отображений [6] и формальная система для нее [7, 8]. Здесь будет представлен упрощенный вариант формальной системы, достаточный для понимания вводимых понятий. Ее более развитый вариант опубликован в [8]. Он включает дополнительные конструкции алфавита и расширенную операцию проекции.
Формальная система теории семантически значимых отображений строится на базе исчисления предикатов первого порядка.
Алфавит исчисления нашей формальной системы составляют следующие символы.
I. Предметные переменные, обозначающие объекты некоторых классов: х, у, 2.
II. Индивидные символы или константы, представляющие конкретные объекты классов: а, Ъ, с.
В отличие от переменных, обозначающих в каждый момент времени какой-то неопределенный объект класса, индивидные символы всегда ссылаются на один единственный конкретный объект и в каком-то смысле подобны константам.
III. Предикаты или атомы исчисления, ограниченные следующими видами:
- предикатом вида о1 = о2, где о1 и о2 - предметные переменные или константы (истинен тогда и только тогда, когда 01 и о2 указывают на один и тот же объект);
- предикатом вида о2 = ф (о1), где о1 и о2 - предметные переменные или константы (истинен тогда и только тогда, когда объект о2 является образом объекта о1 при отображении ф);
- предикатом вида оп), где оь...,о„ - предметные переменные или константы, являющийся традиционным сокращением предиката Истина = Л(оь...,о„);
- предикатом вида о =< оп > , где о, о1, ..., оп - предметные переменные или константы (истинен тогда и только тогда, когда объект о представляет собой кортеж объектов о1, ., оп).
Правильно построенные формулы, а также понятия связанных и свободных переменных определяются аналогично исчислению предикатов первого порядка.
Традиционны также правила вывода, основным из которых является правило «модус поненс»: из формул ф и ф ^ у выводится формула у.
Выражения формальной системы будут сопровождать дальнейшее изложение для более строгого определения вводимых понятий.
7. Ограничения целостности на отображения
Все отображение ф в целом количественно характеризуют минимальные и максимальные кардинальные числа.
Глобальное минимальное кардинальное число (ГМКЧ) отображения ф - это наименьшее из кардинальных чисел КЧф (х) объектов х, являющихся экземплярами ООО ф:
ГМКЧу = шт КЧф (х).
х=экземпляр(ООО($))
Реальное минимальное кардинальное число (РМКЧ) отображения ф - это наименьшее из кардинальных чисел КЧф (х) объектов х, которые реально имеют ф-
образы (являются экземплярами РООО ф):
РМКЧф = min КЧф (х).
х=экземтяр(РООО($))
Максимальное кардинальное число (МКЧ) отображения ф - это наибольшее из кардинальных чисел КЧф (х) объектов х, являющихся экземплярами ООО ф:
МКЧф = max КЧф (х).
х=экземтяр(ООО($))
Очевидно, что 0 <= ГМКЧф <= РМКЧф <= МКЧф .
Так, для отображения ДОЧЬ ГМКЧдОЧЬ = 0, РМКЧдОЧЬ = 1, МКЧдОЧЬ = да.
Используемый знак бесконечности («да») говорит о том, что у отображения ДОЧЬ нет ярко выраженной верхней границы количества образов одного объекта.
Введем более компактную форму записи характеристик отображения: <имя отображения> (<ГМКЧ>, <РМКЧ>, <МКЧ>). Например, ДОЧЬ (0,1,да).
Может показаться бессмысленным РМКЧ, ведь оно на первый взгляд всюду равно 1. Но, если предполагать традиционный физиологический смысл отображения ДОЧЬ, для обратного ему отображения имеем ДОЧЬ -1 (2,2,2), поскольку всегда есть два человека, считающие некоторый объект своей дочерью, - мать и отец.
Введенные количественные характеристики отображений позволяют выделить полезные типы отображений.
Отображение ф называется:
- неограниченным, если ГМКЧф = 0, РМКЧф = 1, МКЧф = да;
- полностью определенным, если ГМКЧф Ф 0 ;
- функциональным, если МКЧф = 1, в том числе:
- частичным функциональным, если ГМКЧф = 0, МКЧф = 1;
- полным функциональным, если ГМКЧф = 1, МКЧф = 1.
Отображение у полностью определено тогда и только тогда, когда
Vx(x = экземтяр(ООО(у)) ^ 3y(y = у(x))).
Отображение у функционально тогда и только тогда, когда VxVvVw(v = у(x) л w = у(x) ^ v = w).
Отображение у является следствием отображения ф, если для любого экземпляра отображения ф найдется экземпляр отображения у, такой, что их образы и прообразы совпадают. В таком случае VxVy(y = ф(x) ^ y = y(x)) истинно. Например, отображение РЕБЕНОК является следствием отображения ДОЧЬ.
Отображения ф и у эквивалентны тогда и только тогда, когда они являются следствием друг друга. В таком случае VxVy(у = ф(х) о y = y(x)) истинно. Например, отображение РЕБЕНОК эквивалентно объединению отображений ДОЧЬ и СЫН (операции над отображениями вводятся далее).
Бинарное отношение, определяющее пару взаимообратных отображений у и Y-l, также характеризуется кардинальными числами этих отображений. Говорят,
что отношение, определяющее пару функциональных отображений, есть отношение «один к одному» (1:1), отношение с одним функциональным, а другим нефункциональным отображениями есть отношение «один ко многим» (1:N) или «многие к одному» (N:1) и отношение, определяющее пару нефункциональных отображений, есть отношение «многие ко многим» (M:N). Понятно, что эта нотация не характеризует минимальные кардинальные числа и поэтому менее информативна. Поскольку, как мы уже отмечали, множества связей можно рассматривать как отношения, подобная терминология может применяться и к бинарным множествам связей.
8. Сложные отображения
До сих пор мы ограничивались рассмотрением простых отображений, у каждого экземпляра которых есть один объект-прообраз и один объект-образ.
Однако возникает необходимость в использовании сложных отображений, каждый экземпляр которых имеет более одного объекта-прообраза и/или объекта-образа. Классическим примером такой ситуации в моделировании данных является «поставка некоторым поставщиком детали для конкретного проекта». Каждый факт такой поставки представляет собой тернарную связь между конкретными поставщиком, деталью и проектом.
Перебирая варианты поляризации участвующих в этой связи множеств по двум полюсам «прообраз» - «образ», имеем три пары взаимообратных отображений:
ПОСТАВЩИК ^ ДЕТАЛЬ х ПРОЕКТ и ДЕТАЛЬ х ПРОЕКТ ^ ПОСТАВЩИК,
ДЕТАЛЬ ^ ПОСТАВЩИК х ПРОЕКТ и ПОСТАВЩИК х ПРОЕКТ ^ ДЕТАЛЬ,
ПРОЕКТ ^ ПОСТАВЩИК х ДЕТАЛЬ и ПОСТАВЩИК х ДЕТАЛЬ ^ ПРОЕКТ.
Многие проблемы моделирования данных связаны с недооценкой возможностей анализа сложных отображений. В таких случаях даже уважаемые издания отделываются фразами типа «понятия, относящиеся к отображениям, связанным с бинарными отношениями, могут быть распространены на n-арные отношения» [9. С. 58]. При этом приводимые иногда примеры анализа n-арных отношений говорят об ошибочности такого анализа и дают неадекватные результаты [9. С. 173]. С этим же связано сведение сложных отображений к простым на ранних этапах процесса проектирования схемы БД, чем грешат многие (если не все) методики. Это приводит к невосполнимой на последующих этапах потере семантической информации.
Если в случае простого отображения семантика экземпляра отображения определяется только именем отображения, то в случае сложного отображения необходимо уточнять роли объектов-прообразов и объектов-образов. В математике и программировании в таких случаях вводят упорядочивание входных и выходных параметров функций. Мы же будем применять следующую «неупорядочивающую» нотацию для экземпляра сложного отображения:
( out out л /( in in > \
{r1 : У1>-> rm ■ Ут } = Ф({г1 : x1>-> rk : xk }) ,
где r°ut - роли объектов-образов, у - объекты-образы, rj - роли объектов-прообразов, Xj - объекты-прообразы.
Например, для множества связей 6-й степени ЭЛЕМЕНТ РАСПИСАНИЯ ЗАНЯТИЙ имеем пару эквивалентных экземпляров сложных взаимообратных отображений:
{ГРУППА: 1411, ПРЕПОДАВАТЕЛЬ: Бабанов, ПРЕДМЕТ: Модели данных} = КТО_ЧТО ({ДЕНЬ: Понедельник, ВРЕМЯ: 14.45, АУДИТОРИЯ: 051}) и
{ДЕНЬ: Понедельник, ВРЕМЯ: 14.45, АУДИТОРИЯ: 051} = КОГДА_ГДЕ ({ГРУППА: 1411, ПРЕПОДАВАТЕЛЬ: Бабанов, ПРЕДМЕТ: Модели данных}).
В случае единичного прообраза и/или образа роль, как и ранее, будем опускать. Например: Маша = ПАПИНА_МАМИНА_ДОЧЬ ({ОТЕЦ: Миша, МАТЬ: Саша}) и, наоборот,: {ОТЕЦ: Миша, МАТЬ: Саша}= РОДИТЕЛИ (Маша).
Таким образом, каждый класс отображений определяется совокупностями ролей объектов-прообразов и объектов-образов; для каждой роли прообразов задается область определения роли, а для каждой роли образов - область значений роли. Каждый экземпляр отображения определяет по одному объекту для каждой роли прообразов и образов.
Обобщение определений теории строится по следующему принципу. Если раньше объекты-прообразы и объекты-образы были простыми объектами с единственной ролью, семантика которой однозначно определялась именем отображения, то теперь совокупность {г“ : г“ : хк} будем рассматривать как один
сложный объект-прообраз, а {г°“* :у1,...,г™* : ут}- как один сложный объект-образ. В таком случае имеем как бы простое отображение сложных объектов. Введение понятий сложных объектов-прообразов и объектов-образов позволяет распространить введенные определения на случай сложных отображений без особых их изменений.
Общее количество классов отображений, определяемых одним отношением степени п, равно
П СП+...+СП = X С = 2П. т=0
Из всех этих 2" отображений особую роль играют 2п отображений с простыми объектами-прообразами и объектами-образами: {г™* : у1,..., ги°“{ : уп-1} = ф(г1г” : х1) и г™*: у1 = у({г“ : х1,...,г^_1 : хп-1}). Отображения первого вида назовем отображениями, определяемыми ролью (в данном случае - г/"), а отображения второго вида назовем отображениями, определяющими роль (в данном случае - г1°“*).
9. Специализация отображений
Отображения, ООО которых представляют собой множества сущностей или множества связей, а ОЗО образуют простые или агрегированные множества значений, называются атрибутивными. Таким образом, возможны четыре вида атрибутивных отображений:
/. Е ^ V (например, ФАМИЛИЯ: ПАЦИЕНТ ^ СТРОКИ)
/. Я ^ V (например, НОМЕР КОЙКИ: РАЗМЕЩЕНИЕ ^ ЦПЧ)
/. Е ^ V! х ... х V" (например, АДРЕС: ПАЦИЕНТ ^ СТРОКИ х ЦПЧ)
/: Я ^ V! х ... х V" (например, СЕРИЯ_НОМЕР_СВИДЕТЕЛЬСТВА: БРАК ^ ЦПЧ х ЦПЧ),
здесь / - атрибут, Е - множество сущностей, Я - множество связей, V - множество значений, VI х ... х V" - Декартово произведение множеств значений, СТРОКИ -множество всевозможных строк символов, ЦПЧ - множество целых положительных чисел.
Реляционные отображения определяются множествами связей и в качестве ООО и ОЗО имеют одиночные множества сущностей или их декартовы произведения. Примеры таких отображений мы рассматривали, когда говорили о сложных отображениях.
Если выделять только эти частные случаи отображений, специализация получается неполной, так как можно рассматривать и другие отображения, ООО и ОЗО которых образуют совокупности произвольных по типу классов.
В качестве примера рассмотрим бинарное множество связей БРАК, определенное на множестве сущностей ЧЕЛОВЕК. Атрибутами этого множества связей являются ДАТА_РЕГИСТРАЦИИ_БРАКА и СЕРИЯ_НОМЕР_СВИДЕТЕЛЬ-СТВА. С одной стороны, можно говорить о соответствующих атрибутивных отображениях:
ДАТА_РЕГИСТРАЦИИ_БРАКА: БРАК ^ ДАТЫ и
СЕРИЯ_НОМЕР_СВИДЕТЕЛЬСТВА: БРАК ^ ЦПЧ х ЦПЧ.
С другой стороны, интерес представляют и обратные им отображения:
ДАТА_РЕГИСТРАЦИИ_БРАКА -1: ДАТЫ ^ БРАК и
СЕРИЯ_НОМЕР_СВИДЕТЕЛЬСТВА -1: ЦПЧ х ЦПЧ ^ БРАК).
Кстати, второе является функциональным отображением и может рассматриваться как идентифицирующее связи типа БРАК (а атрибут СЕРИЯ_НОМЕР_ СВИДЕТЕЛЬСТВА как ключевой).
Реляционными отображениями, определяемыми множеством связей БРАК, являются отображения МУЖ и ЖЕНА, которые с учетом истории не являются функциональными. Но с этим же множеством связей ассоциируются также и отображения, представленные следующими экземплярами:
Петрова = ЖЕНЩИНА_СТАВША Я_ЖЕНОЙ (МУЖ: Сидоров, ДАТА_РЕ-ГИСТРАЦИИ_БРАКА: 01.02.07) и
Сидоров = МУЖЧИНА_СТАВШИЙ_МУЖЕМ (ЖЕНА: Петрова, ДАТА_РЕ-ГИСТРАЦИИ_БРАКА: 01.02.07).
Они являются функциональными, а значит, связь типа БРАК может также быть идентифицирована по любой из сущностей, в ней участвующих, и значению атрибута ДАТА_РЕГИСТРАЦИИ_БРАКА.
Как видим, для определения закономерностей ПрО необходимы не только атрибутивные и реляционные отображения.
Дополнительные возможности для этого открываются с использованием операций над отображениями.
10. Алгебра отображений
Рассмотрим один экземпляр отображения ф. Он ставит объекту х в соответствие объект у, причем у - ф-образ х, а х - ф-прообраз у. С другой стороны, для обратного ф отображения ф-1: х - ф-1-образ у, а у - ф-1 -прообраз х. Образ объекта при отображении ф является прообразом этого же объекта при обратном отображении ф-1.
Каждая операция над отображениями ставит в соответствие одному или двум классам отображений один новый класс отображений. В целом набор таких операций сформирует алгебру отображений. Понятно, что первую такую операцию мы только что определили. Это операция инверсии отображений. Результатом этой операции, примененной к отображению ф, является обратное ему отображение ф-1, такое, что пара отображений ф,ф-1 удовлетворяет следующим условиям:
- для любого экземпляра отображения ф найдется экземпляр отображения ф-1, такой, что образ экземпляра ф совпадает с прообразом экземпляра ф-1, а прообраз экземпляра ф - с образом экземпляра ф-1;
- для любого экземпляра отображения ф-1 найдется экземпляр отображения ф, такой, что образ экземпляра ф совпадает с прообразом экземпляра ф-1, а прообраз экземпляра ф - с образом экземпляра ф-1.
Например, отображение РОДИТЕЛЬ есть инверсия отображения РЕБЕНОК: РОДИТЕЛЬ -о РЕБЕНОК -1.
По определению инверсии отображений формула
УхУу(у = ф(х) О х = ф-1 (у))
общезначима.
Объекты, являющиеся образами какого-то объекта х при отображении ф, могут, в свою очередь, участвовать в другом отображении у. В таком случае можно говорить о композиции этих отображений (аналоге композиции функций).
Композиция отображений ф и у есть отображение у(ф), такое, что для каждого экземпляра отображения у(ф) г = у(ф(х)) существуют:
- экземпляр отображения ф у = ф(х) с тем же самым прообразом и
- экземпляр отображения у г = у(у), у которого прообраз совпадает с образом экземпляра отображения ф, а образ совпадает с образом экземпляра отображения у(ф).
При этом для экземпляров должно быть справедливо и обратное утверждение.
Например, отображение ПРАРОДИТЕЛЬ есть композиция отображений РОДИТЕЛЬ и РОДИТЕЛЬ: ПРАРОДИТЕЛЬ о РОДИТЕЛЬ(РОДИТЕЛЬ).
По определению композиции отображений общезначимой будет следующая формула:
УхУг(г = у(ф(х)) О 3у(у = ф(х) л г = у (у))) .
Объединение отображений ф и у есть отображение (ф и у), такое, что для каждого экземпляра отображения (ф и у) у = (ф и у)(х) существует:
- либо экземпляр отображения ф у = ф(х) с теми же самыми образом и прообразом,
- либо экземпляр отображения у у = у(х) с теми же самыми образом и прообразом,
- либо оба таких экземпляра одновременно.
При этом для экземпляров должно быть справедливо и обратное утверждение.
Например, отображение РЕБЕНОК есть объединение отображений ДОЧЬ и СЫН: РЕБЕНОК о ДОЧЬ и СЫН.
Общезначимой будет следующая формула:
УхУу(у = (фиу)(х) о у = ф(х) Vу = у(х)).
Пересечение отображений ф и у есть отображение (ф п у), такое, что для каждого экземпляра отображения (ф п у) у = (ф п у)(х) существуют одновременно:
- и экземпляр отображения ф у = ф(х) с теми же самыми образом и прообразом,
- и экземпляр отображения у у = у(х) с теми же самыми образом и прообразом.
При этом для экземпляров должно быть справедливо и обратное утверждение.
Например, отображение ДОЧЬ_ЖИВУЩАЯ_ВМЕСТЕ_С_РОДИТЕЛЕМ есть
пересечение отображений ДОЧЬ и ЖИВЕТ_ВМЕСТЕ_С: ДОЧЬ_ЖИВУ-
ЩАЯ_ВМЕСТЕ_С_РОДИТЕЛЕМ о ДОЧЬ п ЖИВЕТ_ВМЕСТЕ_С.
Общезначимой будет следующая формула:
УхУу(у = (ф п у)(х) о у = ф(х) л у = у (х)).
Разность отображений ф и у есть отображение (ф-у), такое, что для каждого экземпляра отображения (ф-у) у = (ф-у)(х):
- существует экземпляр отображения ф у = ф(х) с теми же самыми образом и прообразом и
- не существует экземпляра отображения у у = у (х) с теми же самыми образом и прообразом.
При этом для экземпляров должно быть справедливо и обратное утверждение.
Например, отображение ОТЕЦ есть разность отображений РОДИТЕЛЬ и МАТЬ: ОТЕЦ о РОДИТЕЛЬ - МАТЬ.
Общезначимой будет следующая формула:
УхУу( у = (ф - у)(х) О у = ф( х) л—у = у (х)).
Для отображений со сложными объектами-образами уместна операция проекции. Рассмотрим тернарное множество связей, определенное на множествах сущностей X, У, 2 и отображение ф: X ^ Ух2. Проекция отображения ф на роль У есть отображение ф[У] : X ^ У, такое, что для каждого экземпляра отображения ф[У] У:у = ф[У](Х:х) найдется экземпляр отображения ф {У:у, 2:г}= ф(Х:х), такой, что у них совпадают объекты-прообразы и объекты-образы роли У, на которую осуществляется проецирование.
При этом для экземпляров должно быть справедливо и обратное утверждение.
Например, проекцией отображения РОДИТЕЛИ: РЕБЕНОК ^ МАТЬ х ОТЕЦ на роль МАТЬ будет отображение РОДИТЕЛИ [МАТЬ]: РЕБЕНОК ^ МАТЬ, эквивалентное отображению МАТЬ: РЕБЕНОК ^ МАТЬ.
По определению проекции отображения общезначимой будет следующая формула:
УхУу(у = ф[7](х) О Зг(< у, г >= ф(х))) .
Здесь для упрощения записи мы опустили имена ролей, и сложный объект-образ представили упорядоченным кортежем <у,г>.
Противоположной операции проекции является операция агрегации.
Рассмотрим два отображения, имеющие совпадающую область определения: ф: X ^ У и у: X ^ 2. Тогда агрегатом отображений ф и у будет отображение
(ф 0 у): X ^ Ух2, такое, что для каждого экземпляра отображения (ф 0 у) <у,
г > = (ф 0 у)(х) существует:
- экземпляр отображения ф у = ф(х) и
- экземпляр отображения у г = у(х).
При этом для экземпляров должно быть справедливо и обратное утверждение.
Например, агрегатом отображений МАТЬ: РЕБЕНОК ^ МАТЬ и ОТЕЦ: РЕБЕНОК ^ ОТЕЦ будет отображение РОДИТЕЛИ: РЕБЕНОК ^ МАТЬ х ОТЕЦ.
Отображение (ф 0 у) является агрегатом отображений ф и у тогда и только тогда, когда
VxVyVz(< у, z >= (фОу)(х) О у = ф(х) л z = у (х)).
Заключение
Семантическая модель данных «Сущность - Связь - Отображение» сочетает в себе естественность ее понятий для человека и полноту представления свойств данных. Большая детальность описания ПрО в этой модели неизбежно должна приводить к повышенной сложности ее использования. Трактовка новой модели как расширения ER-модели позволяет проектировщику ограничиться традиционными для последней понятиями, избегая при этом сложности описаний. Если же он в состоянии освоить новые возможности, это гарантирует ему полное определение семантики ПрО еще в рамках семантической модели и построение более эффективной реляционной схемы БД.
ЛИТЕРАТУРА
1. Дейт К. Введение в системы баз данных. 7-е изд.: Пер. с англ. М.: Вильямс, 2001. 1072 с.
2. 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.
3. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика: Пер. с англ. М.: Вильямс, 2000. 1120 с.
4. Войшвилло Е.К., Дегтярев М.Г. Логика как часть теории познания и научной методологии (фундаментальный курс): В 2-х кн. М.: Наука, 1994.
5. Бабанов А.М. Сравнительный анализ семантических моделей, применяемых для проектирования схем баз данных // Вестник ТГУ. 2006. № 290. С. 251 - 260.
6. Бабанов А.М. Теория семантически значимых отображений // Вестник ТГУ. 2003. № 280. С. 239 - 248.
7. Бабанов А.М. Формальная система теории семантически значимых отображений // Вестник ТГУ. 2006. № 290. С. 261 - 263.
8. Бабанов А.М. Развитие формальной системы теории семантически значимых отображений // Вестник ТГУ. 2006. № 293. С. 135 - 139.
9. Цикритзис Д., Лоховски Ф. Модели данных: Пер. с англ. М.: Финансы и статистика, 1985. - 344 с.
Статья представлена кафедрой программной инженерии факультета информатики Томского государственного университета, поступила в научную редакцию 2 июля 2007 г.