Расширение реляционной модели для лучшего отражения

advertisement
Расширение реляционной модели для лучшего
отражения семантики
Э.
Перевод: М.Р. Когаловский
Ф.
Кодд
Источник: журнал Системы Управления Базами Данных # 5/1996, издательский дом
«Открытые
системы»
Новая редакция: Сергей Кузнецов, 2009 г.
Оригинал: E.F. Codd. Extending the Database Relational Model to Capture More Meaning.
ACM Transactions on Database Systems, Vol. 4, # 4, December 1979. Текст доступен здесь.
Содержание
1. ВВЕДЕНИЕ
2. РЕЛЯЦИОННАЯ МОДЕЛЬ
2.1. Структуры
2.2. Реляционная алгебра (без учета неопределенных значений)
2.3. Расширения алгебры, допускающие неопределенные значения
3. СВЯЗЬ С ЛОГИКОЙ ПРЕДИКАТОВ
4. ОБОЗНАЧЕНИЕ СУЩНОСТЕЙ
5. ТИПЫ СУЩНОСТЕЙ
6. КЛАССИФИКАЦИЯ СУЩНОСТЕЙ И АССОЦИАЦИЙ
7. СУЩНОСТИ И ИХ НЕПОСРЕДСТВЕННЫЕ СВОЙСТВА
8. МНОГОЗНАЧНЫЕ И КОСВЕННЫЕ СВОЙСТВА СУЩНОСТЕЙ
9. АССОЦИАЦИИ
9.1. Ассоциативные сущности
9.2. Несущностные ассоциации
9.3. Декомпозиция ассоциаций
10. ДЕКАРТОВА АГРЕГАЦИЯ
11. ОБОБЩЕНИЕ
11.1. Безусловное обобщение
11.2. Альтернативное обобщение
12. АГРЕГАЦИЯ ПОКРЫТИЯ
13. ПРЕДШЕСТВОВАНИЕ СОБЫТИЙ
14. КАТАЛОГ RM/T
15. ОПЕРАЦИИ RM/T
15.1. Операции над именами
15.2. Операции над множествами
15.3. Графовые операции
15.4. Примеры
16. СВОДКА ВОЗМОЖНОСТЕЙ RM/T
17. ЗАКЛЮЧЕНИЕ
БЛАГОДАРНОСТИ
ЛИТЕРАТУРА
В последние три-четыре года рядом исследователей изучались "семантические модели"
для форматированных баз данных. Цель заключалась в том, чтобы более или менее
формальным образом удерживать больше смысла данных. Благодаря этому
проектирование баз данных могло бы стать в большей мере семантическим, и сама
система базы данных могла бы вести себя более разумным образом. Двумя главными
идеями являются:
1. поиск смысловых единиц, являющихся настолько мелкими, насколько это
возможно – атомарная семантика;
2. поиск смысловых единиц, более крупных, чем обычные n-арные отношения –
молекулярная семантика.
В данной статье предлагаются расширения реляционной модели, позволяющие
поддерживать определенную атомарную и молекулярную семантику. Эти расширения
представляют собой синтез многих идей из опубликованных работ в области
семантического моделирования. Кроме того, вводятся новые правила вставки, обновления
и удаления, а также новые алгебраические операции.
1. ВВЕДЕНИЕ
Реляционная модель для форматированных баз данных [5] была задумана уже десять лет
назад, главным образом, как инструмент, призванный освободить пользователя от
потребности иметь дело с нагромождением деталей представления данных в среде
хранения. Такая независимость от реализации, сочетающаяся с мощью алгебраических
операций над n-арными отношениями, и открытые вопросы, касающиеся зависимостей
(функциональных, многозначных и соединения) внутри отношений и между ними,
стимулировали исследования в управлении базами данных (см. [30]). Реляционная модель
также обеспечила архитектурную основу для проектировании баз данных и некоторых
систем управления базами данных общего назначения, таких как MACAIMS [13], PRTV
[38], RDMS(GM) [41], MAGNUM [19], INGRES [37], QBE [46] и System R [2].
В течение нескольких последних лет работы многих исследователей были нацелены на
сохранение (достаточно формальным образом) большего смысла данных при сохранении
независимости от реализации. Эту деятельность иногда называют семантическим
моделированием данных (semantic data modeling). В действительности, задача сохранения
смысла данных является бесконечной. Поэтому ярлык "семантическое" не должен
интерпретироваться в каком-либо абсолютном смысле. Более того, разработанные ранее
модели баз данных (иногда подвергающиеся нападкам как "синтаксические") были не
лишены некоторых семантических возможностей (взять, например, домены, ключи и
функциональные зависимости). Поставленная цель является, тем не менее, чрезвычайно
важной, поскольку даже небольшой успех может привнести понимание и порядок в
область проектирования баз данных. Кроме того, сохраняемая в компьютере модель
данных, ориентированная на фиксацию смысла данных, должна позволить ему
реагировать на запросы и другие транзакции более осмысленным образом. Такая модель
могла бы послужить также более эффективным посредником между многочисленными
внешними представлениями, используемыми прикладными программами и конечными
пользователями, с одной стороны, и многочисленными внутренними хранимыми
представлениями, с другой стороны.
В последних статьях, посвященных семантическому моделированию данных, придается
особое значение структурным аспектам, иногда в ущерб аспектам манипулирования.
Структура без соответствующих операций или методов вывода похожа на анатомию без
физиологии. В некоторых исследованиях сохраняются явные связи с реляционной
моделью, и они выиграли от заимствования операций этой модели. Точно так же
реляционная модель сохранила ясные связи с логикой предикатов и, следовательно, может
перенимать ее методы логического вывода.
Что касается смысла, то, очевидно, возникают два дополнительных вопроса.
i.
ii.
Что представляет собой атомарный факт (атомарная семантика)?
Какие более крупные группы информации образуют осмысленные единицы
(молекулярная семантика)?
После обзора реляционной модели мы вводим классификационную схему для сущностей,
свойств и ассоциаций. Затем мы обсуждаем расширения реляционной модели, которые
отражают эту классификацию и поддерживают такие аспекты молекулярной семантики,
как абстракция путем обобщения и декартовой агрегации. Расширенная модель
предназначена, главным образом, для проектировщиков баз данных и искушенных
пользователей.
2. РЕЛЯЦИОННАЯ МОДЕЛЬ
Дадим теперь краткое определение реляционной модели, в котором мы подчеркиваем, что
алгебраические операции являются такой же важной частью этой модели, как и
структуры. Наличие операций позволяет, помимо прочего, на строгом уровне обсуждать
альтернативные схем (как базовых отношений, так и представлений) для конкретных
приложений реляционной модели. Отметим также тесную взаимосвязь, которая
существует между реляционной моделью и логикой предикатов первого порядка (хотя
было бы некорректно их отождествлять, как это делается в [43]).
Чтобы помочь отличать реляционные системы от нереляционных, мы предлагаем
следующие определения. Система базы данных является полностью реляционной (fully
relational), если она поддерживает:
i.
ii.
iii.
структурные аспекты реляционной модели;
правила вставки-обновления-удаления;
подъязык данных, который останется не менее мощным, чем реляционная алгебра, даже
если удалить из него все возможности, предназначенные для поддержки итеративных
циклов и рекурсии.
Система базы данных, которая поддерживает аспекты (i) и (ii), но не (iii), является
полуреляционной (semirelational). Заметим, что полностью реляционная система не обязана
поддерживать реляционную алгебру в буквальном смысле, но должна быть не менее
мощной. Реляционная алгебра не только является мерилом функциональных
возможностей; она призвана также быть точным интеллектуальным инструментом,
позволяющим иметь дело с такими вопросами, как проектирование модели, определение
представлений и реструктуризация.
2.1. Структуры
Домен (domain) – это множество однотипных значений: например, все возможные серийные
номера деталей в данной инвентарной ведомости или все возможные даты для класса
регистрируемых событий. Домен является простым (simple), если все его значения атомарны (не
декомпозируются системой управления базой данных).
Пусть имеется n (n > 0) не обязательно различных доменов D1, D2, ..., Dn. Декартово
произведение ×{Di: i = 1, 2, ..., n} – это множество всех n-кортежей <t1, t2, ..., tn> таких, что
ti Di для всех i. Отношение R определяется на этих n доменах, если оно является
подмножеством их декартового произведения. Говорят, что такое отношение имеет
степень n.
Вместо множества индексов (1, 2, ..., n) мы можем использовать любое неупорядоченное
множество , если мы ассоциируем с каждым компонентом кортежа не только его домен,
но также и отличающий его индекс, который мы будем впредь называть его атрибутом.
Соответственно, n различных атрибутов отношения степени n характеризуют n разных
применений доменов, на которых определено данное отношение (напомним, что число
различных доменов может быть меньшим, чем n). Тогда кортеж вместо
последовательности <v1, v2, ..., vn> становится множеством пар (A:v), где A – некоторый
атрибут, а v – значение, взятое из домена атрибута A.
Таким образом, отношение состоит из множества кортежей, и каждый кортеж имеет одно
и то же множество атрибутов. Если все домены являются простыми, то такое отношение
имеет табличное представление со следующими свойствами.
i.
ii.
iii.
iv.
Не существует дубликатов строк (кортежей).
Порядок строк является несущественным.
Порядок столбцов (атрибутов) является несущественным.
Все элементы таблицы являются атомарными значениями.
Обозначение R(A:a, B:b, C:c, ...) используется для представления изменяющегося во
времени отношения R, имеющего атрибут A, который принимает значения из домена a,
атрибут B, который принимает значения из домена b и т. д. Если в некотором контексте
рассуждений домены могут игнорироваться, то такое отношение будет представляться как
R(A, B, C, ...) или даже просто как R. Однако, что для корректной интерпретации
выражения (и в особенности оператора присваивания) порядок перечисления атрибутов
может быть существенным (см. THETA-JOIN ниже).
Реляционная база данных – это изменяющаяся во времени совокупность данных,
допускающая доступ к ним всем и их обновление таким образом, как если бы они были
организованы в виде совокупности изменяющихся во времени табличных (не
иерархических) отношений соответствующих степеней, определенных на заданном наборе
простых доменов. Базовые отношения (base relation) – это такие отношения, которые
определяются независимо от других отношений в базе данных в том смысле, что никакое
базовое отношение полностью не выводится (независимо от времени) из каких-либо
других базовых отношений. Выводимые отношения (derived relation) – это такие
отношения, которые могут полностью выводиться из базовых отношений. Это такой вид
отношений, которые обычно служат для обеспечения пользователей прикладных
программ их собственными представлениями (view) базы данных. Объявленные
отношения включают все базовые отношения, а также могут включать выводимые
отношения. Позднее, когда будут введены некоторые дополнительные понятия, мы
определим полувыводимые отношения (semiderived relation) – некоторый класс
отношений, включающий выводимые отношения.
Если U – некоторая совокупность атрибутов некоторого отношения, то Uкомпонентомкортежа t этого отношения назовем множество пар (A:v), полученных путем
удаления из t тех пар, которые содержат атрибуты, не принадлежащие U.
Между табличными отношениями не существует каких-либо структурных связей, таких
как указатели. Ассоциации между отношениями представляются исключительно с
помощью значений. Эти ассоциации используются операциями высокого уровня.
С каждым отношением ассоциируется множество возможных ключей. Cовокупность
атрибутов K отношения R называется возможным ключом (candidate key) R, если обладает
следующими независимыми от времени свойствами.
i.
ii.
Никакие две строки R не содержат один и тот же K-компонент.
Если какой-либо атрибут исключается из K, то свойство уникальности (i) утрачивается.
Для каждого базового отношения один из возможных ключей выбирается в качестве
первичного ключа (primary key). Для заданной базы данных те домены, на которых
определяются простые (т.е. состоящие из одного атрибута) первичные ключи, называются
первичными доменами (primary domain) этой базы данных. Заметим, что не все атрибуты
компонента составного (т.е. состоящего из нескольких атрибутов) первичного ключа
обязательно должны быть определены на первичных доменах. Первичные домены имеют
важное значение для поддержки некоторых транзакций, например "удалить из базы
данных поставщика 3". Мы хотим здесь удалять 3 всякий раз, когда это значение означает
порядковый номер поставщика, а не что-либо другое.
Все операции вставки, обновления и удаления, выполняемые над базовыми отношениями,
ограничиваются двумя следующими правилами:
Правило 1 (целостность сущностей): Не допускаются ситуации, когда первичный ключ
какого-либо базового отношения имеет неопределенное значение (null) или содержит хотя
бы один компонент с неопределенным значением.
Правило 2 (целостность по ссылкам): Допустим, что некоторый атрибут A составного (т.е.
состоящего из нескольких атрибутов) первичного ключа отношения R определяется на
первичном домене D. Тогда в любой момент времени для каждого значения v атрибута A в
отношении R должно существовать базовое отношение (скажем, S) с простым первичным
ключом (например, B) такое, что v является значением B в S.
Реляционная модель состоит из:
i.
ii.
iii.
совокупности изменяющихся во времени табличных отношений (с указанными выше
свойствами – особо отметим ключи и домены);
правил вставки-обновления-удаления (Правила 1 и 2, сформулированные выше);
реляционной алгебры, описываемой ниже в подразделах 2.2 и 2.3.
C реляционной моделью тесно связаны различные идеи декомпозиции, являющиеся
семантическими по своей природе (как основанные на инвариантных во времени
свойствах изменяющихся во времени отношений). Примерами таких идей являются
(естественные) соединения без потерь и функциональные зависимости [6], многозначные
зависимости [10, 44] и нормальные формы. Подробности можно найти в [3]; см. также
[39]1).
2.2. Реляционная алгебра (без учета неопределенных значений)
Поскольку отношения являются множествами, здесь применимы обычные теоретикомножественные операции, такие как UNION (объединение), INTERSECTION
(пересечение) и SET DIFFERENCE (вычисление разности множеств). Однако их
применение ограничивается только парами отношений, совместимых по объединению
(union-compatible), т.е. таких отношений, между атрибутами которых имеется взаимнооднозначное соответствие, причем соответствующие атрибуты определены на одном и
том же домене. Благодаря этому ограничению гарантируется, что результат является
отношением. Операция CARTESIAN PRODUCT (вычисление декартова произведение)
применима без какого-либо ограничения.
Определим теперь операции специально для манипулирования n-арными отношениями.
Далее R и S обозначают отношения; A, B1, B2 и C – совокупности атрибутов; c – кортеж
соответствующей степени и с соответствующими доменами.
Операция THETA-SELECT (иногда называемая RESTRICT (ограничение))
Пусть θ – какое-либо из бинарных отношений <, ≤, =, ≥, >, ≠, применимое к атрибуту(-ам) A и
кортежу c. Тогда R[A θ c] есть множество кортежей из R, A-компоненты каждого из которых
находятся в отношении θ с кортежем c. Вместо кортежа c может использоваться другой атрибут
или другая совокупность атрибутов B отношения R при условии, что A и B определены на общих
доменах. Тогда R[A θ c] – это множество кортежей из R, каждый из которых удовлетворяет тому
условию, что его A-компонент находится в отношении θ с его B-компонентом. Если θ представляет
собой равенство (очень распространенный случай), операция THETA-SELECT называется просто
SELECT (селекцией).
Примеры THETA-SELECT:
R ( A
p
p
q
r
r
B
1
2
1
2
2
C )
2
1
2
5
3
R[A ≠ r] ( A
p
p
q
B
1
2
1
C )
2
1
2
R[A = r] ( A B C )
r 2 5
r 2 3
R[B > C] ( A B C )
p 2 1
Операция PROJECTION (проекция)
R[A1, A2, ... An] – это отношение, получаемое путем удаления из R всех столбцов за исключением
тех, которые специфицируются атрибутами A1, A2, ... An, и последующего удаления избыточных
строк-дубликатов.
Примеры PROJECTION:
R ( A
p
p
q
r
r
B
1
2
1
2
2
C )
2
1
2
5
3
R[B] ( B )
1
2
R[A,B]
(A
p
p
q
r
R[B,C]
( B
1
2
2
2
B)
1
2
1
2
C )
2
1
5
3
Теперь мы можем определить третий класс отношений. Полувыводимые отношения – это
такие отношения, у которых некоторая проекция (по крайней мере, с одним атрибутом)
является выводимым отношением (см. о слабой избыточности в [5]). Если, например, R(A,
B) является базовым отношением, S(A, C) – это такое отношение, что S[A] = (R[B = b])[A],
и атрибут C определен на некотором домене, не используемом в каком-либо из базовых
отношений (следовательно, отношение S не является выводимым), то S является
полувыводимым отношением. Как мы увидим, существует много применений
полувыводимых отношений. Заметим, что требование обеспечения минимальной
избыточности при проектировании реляционных баз данных ничем не обусловлено, хотя
это один из возможных вариантов. Таким образом, объявленные отношения наряду с
базовыми отношениями могут включать полувыводимые и даже выводимые отношения.
Операция THETA-JOIN (тета-соединение)
Пусть заданы отношения R(A, B1) и S(B2, C) такие, что B1 и B2 определены на общем домене, и пусть
θ – какое-либо из бинарных отношений =, <, <, ≤, ≥, >, ≠, которое применимо к домену атрибутов
B1, B2. Тета-соединение R по B1 с S по B2 обозначается как R[B1 θ B2]S. Это – конкатенация строк
отношения R со строками отношения S, формируемая всякий раз, когда компонент B1 строки R
находится в отношении θ с компонентом B2 строки S. Если отношение θ является равенством,
операция THETA-JOIN называется EQUI-JOIN (эквисоединением). Из всех операций THETA-JOIN
только EQUI-JOIN дает результат, который обязательно содержит два идентичных столбца (один
продуцированный из B1, а другой – из B2). В общем случае допускается использование в качестве θ
произвольного бинарного отношения, которое применимо к домену атрибутов B1и B2.
Примеры THETA-JOIN:
R ( A
p
p
q
r
r
B
1
2
1
2
3
C )
2
1
2
5
3
S ( D
2
3
4
R[C = D]S ( A
p
q
r
B
1
1
3
C
2
2
3
D
2
2
3
E )
u
u
v
R[C > D]S ( A
r
r
r
r
B
3
2
2
2
C
3
5
5
5
D
2
2
3
4
E )
u
u
v
u
E )
u
v
u
Если отношения, к которым применяется оператор THETA-JOIN, имеют какие-либо
общие имена атрибутов, то должны быть заданы имена атрибутов результирующего
отношения. Например, если у обоих отношений R и S имеются атрибуты A, B, и все эти
четыре атрибута определяются на некотором общем домене, мы можем определить
несколько возможных θ-соединений R с S. Одно из таких определений:
T(D, E, F, G) = R(A, B)[B > B]S(A, B).
При использовании соглашения о порядке перечисления атрибутов это означает, что
источником значений для атрибута D отношения T является атрибут A отношения R.
Подобным же образом, источниками значений атрибутов E, F и G отношения T являются,
соответственно, атрибут B отношения R, а также атрибуты A и B отношения S.
Операция NATURAL JOIN (естественное соединение)
Такое соединение ничем не отличается от EQUI-JOIN за исключением того, что в этом случае
удаляются избыточные столбцы, сгенерированные при выполнении соединения. Естественное
соединение – это соединение, используемое при нормализации совокупности отношений.
Пример NATURAL JOIN: Пусть отношения R и S заданы приведенными выше таблицами.
Тогда:
R[C*D]S ( A
p
q
r
B
1
1
3
C
2
2
3
E )
u
u
v
Операция DIVIDE (деление)
Пусть заданы отношения R(A, B1) и S(B2, C) такие, что B1 и B2 определены на одном и том же
домене (доменах). Тогда R[B1÷B2]S – это максимальное подмножество R[A] такое, что его
декартово произведение с S[B2] включается в R. Этот оператор является алгебраическим
двойником квантора всеобщности.
Пример DIVIDE:
R ( A
p
p
p
q
r
r
B )
1
2
3
1
1
3
S ( C )
1
3
R[B÷C]S ( A )
p
r
2.3. Расширения алгебры, допускающие неопределенные значения
Смысл двух наиболее важных типов неопределенного значения заключается в том, что
"значение неизвестно в настоящее время" или "свойство неприменимо". Подход, при
котором допускаются оба типа неопределенных значений, описан в работе [40]. Попытка
достаточно общего решения проблемы оперирования неполной информацией описывается
в [22]. Здесь мы ограничимся только первым типом неопределенного значения –
"значение неизвестно в настоящее время" – и обозначим его ω (см. более подробное
обсуждение в [5]). Следующую трактовку следует рассматривать как предварительную и
нуждающуюся в дальнейшем исследовании.
В базисной реляционной модели наличие неопределенных значений не допускаются ни в
каком компоненте первичного ключа базового отношения. Не считая этого ограничения,
любое вхождение неопределенного значения типа "значение неизвестно" может
замещаться в операции обновления значением, не являющимся неопределенным, и
наоборот, если только не существует какого-либо явного ограничения целостности,
запрещающего такую возможность.
Первый возникающий вопрос заключается в том, каково истинностное значение
выражения x = y, если x или y, или то и другое является неопределенным значением?
Уместным результатом в каждом из этих случаев является неизвестное истинностное
значение, а не истина или ложь. В соответствии с этим, для использования при выборке
данных из баз данных, которые могут содержать неопределенные значения, мы выбираем
трехзначную логику. Будем использовать для обозначения неизвестного истинностного
значения тот же самый символ "ω", поскольку истинностные значения могут храниться в
базах данных, а мы хотели бы, чтобы интерпретация всех неизвестных и неопределенных
значений была однородной. Трехзначная логика базируется на следующих таблицах
истинности:
AND|
|
F |
ω |
T |
F
ω
T
F
F
F
F
ω
ω
F
ω
T
OR|
|
F |
ω |
T |
F
ω
T
F
ω
T
ω
ω
T
T
T
T
NOT(F) = T; NOT(ω) = ω; NOT(T) = F
Кванторы существования и всеобщности ведут себя подобно многократно применяемым OR и
AND соответственно.
Что касается принадлежности множеству и включения множеств , то мы будем
назначать истинностное значение ω выражениям: ω S и {ω} S всякий раз, когда S –
непустое унарное отношение (даже если S содержит какое-либо неопределенное
значение). На первый взгляд это кажется противоречащим здравому смыслу, но один из
способов добиться большей приемлемости неопределенных значений состоит в том,
чтобы считать каждое вхождение ω некоторым заполнителем, который можно заменить
каким-то настоящее значение. Более точно, выражение с истинностным значением
принимает значение ω, если и только если (после замены всех определенных переменных
определяющими их выражениями в терминах индивидуальных переменных) выполняются
следующие два условия.
i.
ii.
Каждое вхождение ω в выражении может быть замещено
отличным от неопределенного (возможно, разными значениями
таким образом, чтобы значением выражения становится T.
Каждое вхождение ω в выражении может быть замещено
отличным от неопределенного (возможно, разными значениями
таким образом, чтобы значением выражения становится F.
некоторым значением,
для разных вхождений)
некоторым значением,
для разных вхождений)
Будем называть это принципом подстановки неопределенного значения (null substitution
principle). Описанная выше трехзначная логика совместима с этим принципом.
Следующие примеры иллюстрируют применение этого принципа к принадлежности
множеству и к включению множеств. Пусть обозначает пустое множество, а R, S, T, U, V
– следующие отношения:
R
ω
1
S
ω
1
2
T
ω 1
y ω
U
x ω
ω 3
V
x ω
y 3
z 1
Следующие выражения имеют истинностное значение F:
ω
T S V U U R.
Следующие выражения имеют значение истинности ω:
R S S R T U U T T U U V.
Заметим, между прочим, что такая схема для неопределенных значений обладает
некоторыми свойствами, которые могут, на первый взгляд, показаться парадоксальными.
Возьмем, например, отношение EMP (служащие) c атрибутами NAME (фамилия) и AGE
(возраст). Выражение
(EMP[AGE≤50] ∪ EMP[AGE>50])[NAME]
не обязательно пропроизводит множество всех имен служащих. Однако, если мы
интерпретируем EMP[AGE≤50] как множество кортежей EMP, об AGE-компонентах
которых в базе данных известно, что они меньше чем или равны 50, а EMP[AGE>50] – как
множество кортежей, об AGE-компонентах которых известно, что они больше 50, то
впечатление парадоксальности исчезает. В такого рода интерпретации не требуется,
чтобы все тавтологии двузначной логики были сохранены в трехзначной логике (в
противоположность [40]).
Применяя принцип подстановки неопределенного значения для проверки неравенств, мы
можем избежать задания ω какого-либо места в числовом или лексикографическом
упорядочении. В соответствии с этим принципом, мы назначаем истинностное значение ω
выражениям вида x θ y, где θ – какое-либо из отношений <, ≤, ≥, >, всякий раз, когда x или
y является неопределенным значением.
Для каждого положительного целого n кортеж длины n, состоящий из неопределенных
значений (каждое из которых, конечно, сопровождается его атрибутом), является
допустимым кортежем. Но небазовое n-арное отношение может содержать не более
одного такого кортежа, а базовое отношение не может содержать таких кортежей вовсе.
Как обычно, никакое отношение не может содержать кортежей-дубликатов. При
применении этого правила отсутствия дубликатов (nonduplication rule) неопределенное
значение в одном кортеже считается таким же, как и неопределенное значение в другом
кортеже. Может показаться, что такое отождествление одного неопределенного значения
с другим противоречит нашему назначению истинностного значения сравнения ω = ω.
Однако отождествление кортежей для удаления дубликатов является операцией более
низкого уровня детализации, чем сравнение по равенству при вычислении условий
выборки. Поэтому здесь можно принять иное правило. Следствия для UNION,
INTERSECTION и DIFFERENCE иллюстрируются ниже.
R
ω
u
u
ω
S
ω ω
u ω
u 1
ω
ω
1
1
R ∪ S
ω ω
u ω
u 1
ω 1
R ∩ S
ω ω
u ω
u 1
R – S
ω 1
Рассмотрим теперь влияние этого типа неопределенного значения на остальные операции
реляционной алгебры. Операция CARTESIAN PRODUCT (декартово произведение) этому
влиянию не подвержена. Операция PROJECTION (проекция ) ведет себя, как и ожидалось,
если помнить, как применяется правило отсутствия дубликатов к кортежам с
компонентами,
имеющими
неопределенное
значение.
Следующие
примеры
иллюстрируют операцию проекции:
A
u
v
ω
x
R
B
ω
1
ω
1
C
ω
ω
1
ω
R[B, C]
B C
ω ω
1 ω
ω 1
R[C]
C
ω
1
y ω 1
Операция THETA-JOIN (тета-соединение) производит конкатенацию пар кортежей при
условии, что удовлетворяется некоторое заданное условие θ, налагаемое на некоторые
компоненты этих кортежей. При вычислении этого условие для любой возможной пары
кортежей вырабатывается истинностное значение F, ω или T. Мы оставляем лишь
операцию соединения, конкатенирующую только такие пары кортежей, для которых при
вычислении условия вырабатывается значение T и называем его TRUE THETA JOIN
(тета-соединение по "истине"). Кроме того, мы вводим операцию MAYBE THETA JOIN
(тета-соединение "может быть"), конкатенирующую только те пары кортежей, для
которых при вычислении заданного условия вырабатывается ω.
Версия MAYBE ("может быть") некоторой операции обозначается путем помещения
символа ω после тета-символа (например, =ω) или символа операции (например, ÷ω).
Следующие примеры иллюстрируют операторы TRUE EQUI-JOIN и MAYBE EQUI-JOIN,
а также TRUE LESS-THAN JOIN и MAYBE LESS-THAN JOIN.
R
A
u
ω
w
B
ω
2
1
S
C
ω
2
R[B=C]S
A B C
ω 2 2
R[B
A
u
u
ω
w
=ω
B
ω
ω
2
1
C]S
C
ω
2
ω
ω
R[B<C]S
A B C
ω 1 2
R[B <ω C]S
A B C
то же,
что и
R[B =ω C]S
Если нужно выбрать только те строки из R, компонент B которых содержит ω, мы можем
выполнить операцию MAYBE EQUI-JOIN над отношением R и отношением T,
единственным элементом которого является некоторое значение, отличное от
неопределенного (годится любое такое значение при условии, что оно выбрано из того же
самого домена, на котором определен атрибут B), а затем применить к результату
операцию проекции PROJECT на атрибуты A, B. Для приведенного выше случая читатель
может проверить, что окончательный результат представляет собой отношение,
единственным элементом которого является пара (A:u, B:w). Обработка неопределенных
значений операцией THETA-SELECT (тета-селекция) для версий TRUE и MAYBE следует
тому же принципу, что и в случае операций THETA-JOIN.
Подобным же образом выполняется операция деления (DIVISION). Исходная операция,
основанная на истинном включении (проверке включения, которая дает значение T),
сохраняется и называется TRUE DIVISION. Вводится также новая операция ÷ω,
основанная только на включении "может быть" (проверке включения, вырабатывающей
ω) и называемая MAYBE DIVISION. Следующие примеры иллюстрируют эти два вида
деления.
R
A
u
u
u
w
w
B
1
2
3
2
ω
S
C
2
3
T
C
2
ω
R[B ÷ C]S
A
u
R[B ÷ω C]S
A
w
R[B ÷ C]T
A
пусто
R[B ÷ω C]T
A
u
z 3
w
Следующая операция позволяет объединить два отношения, даже если они не являются
совместимыми по объединению. Тем не менее, результатом всегда является некоторое
отношение.
Операция OUTER UNION (внешнее объединение)
Пусть R, S – отношения, которые имеют в качестве общего(-их) атрибута(-ов) только B и
никаких других. Пусть A – оставшийся(-еся) атрибут(ы) (атрибуты) в R, а C – в S.
Наконец, пусть
R1(A, B, C) = R × (C:ω)
S1(A, B, C) = (A:ω) × S,
где × обозначает символ операции декартова произведения. Тогда внешнее объединение R
и S определяется как
S = R1 ∪ S1
R
Заметим, что в частном случае, когда R и S совместимы по объединению,
S=R∪S
R
Пример применения оператора OUTER UNION:
R(A
p
p
q
R
B
1
2
1
C)
2
1
2
S (A
p
p
q
ω
ω
S(B D)
2 u
3 v
B
1
2
1
2
3
C
2
1
2
ω
ω
D)
ω
ω
ω
u
v
Подобным же образом мы можем также определить OUTER версии операций
INTERSECTION и DIFFERENCE.
Как при естественном соединении, так и при эквисоединении, происходит потеря
информации, если соединяемые отношения не имеют равных проекций на атрибуты
соединения. Для того чтобы сохранить информацию независимо от равенства этих
проекций, нам требуется операция соединения, которая может генерировать
неопределенные значения всякий раз, когда это требуется. Такого рода операции были
независимо предложены в [16, 20, 23, 44].
Операция OUTER THETA-JOIN (внешнее тета-соединение)
Пусть заданы отношения R = R(A, B1) и S = S(B2,C) с атрибутами B1 и B2, определенными
на общем домене, и пусть:
T = R[B1 θ B2]S
R1 = R – T[A, B1]
S1 = S – T[B2, C].
Тогда внешнее тета-соединение определяется как
R[B1
B2]S = T ∪ (R1 × (B2:ω,C:ω)) ∪ ((A:ω,B1:ω) × S1),
где ∪ обозначает объединение, а × – декартово произведение.
Пример OUTER EQUI-JOIN (внешнего эквисоединения):
S ( S# SCITY )
s1 c4
s2 c2
s4 c1
s6 c1
s7 c3
J ( J# JCITY )
j1 c1
j2 c2
j3 c2
j4 c5
Пусть SJ = S[SCITY
JCITY]J. Тогда:
SJ ( S# SCITY JCITY J# )
s1 c4
ω
ω
s2 c2
c2
j2
s2 c2
c2
j3
s4 c1
c1
j1
s6 c1
c1
j1
s7 c3
ω
ω
ω
ω
c5
j4
Операция OUTER NATURAL JOIN (внешнее естественное соединение)
Пусть, как и ранее, заданы отношения R = R(A, B1) и S = S(B2, C), а также отношения T, R1
и S1, определенные так же, как выше, но с заменой "тета" на "=". Тогда внешнее
естественное соединение R по B1 с S по B2 определяется как
R[B1
B2]S = T[A,B1,C] ∪ (R1 × (C:ω)) ∪ ((A:ω) × S1).
Пример операции OUTER NATURAL JOIN.
Пусть T(S#,CITY,J#) = S[SCITY
JCITY]J, где отношения S и J представлены
приведенными выше таблицами. Тогда:
T ( S# CITY J# )
s1 c4 ω
s2 c2 j2
s2 c2 j3
s4 c1 j1
s6 c1 j1
s7 c3 ω
ω
c5 j4
При такой трактовке, если операция генерирует одно или более неопределенных
значений, то эти значения всегда имеют тип "значение неизвестно в настоящее время", что
согласуется с интерпретацией открытого мира (см. разд. 3). Если бы мы имели дело с
отношениями, имеющими интерпретацию замкнутого мира, более уместным был бы тип
неопределенного значения "свойство неприменимо".
3. СВЯЗЬ С ЛОГИКОЙ ПРЕДИКАТОВ
Опишем два различных способа, с помощью которых реляционная модель может быть
связана с логикой предикатов. Предположим, что мы рассматриваем первоначально базу
данных как некоторое множество формул логики предикатов первого порядка.
Предположим также, что каждая такая формула не имеет свободных переменных и
находится в максимально возможной атомарной форме (например в A & B были бы
замещены составляющие формулы A и B). Допустим теперь, что большинство формул
является простыми утверждениями вида Pab ... z (где P – предикат, а a, b, .., z –
константы), и что количество различных предикатов в базе данных мало по сравнению с
количеством простых утверждений. Такую базу данных называют обычно
форматированной, поскольку ее основная часть поддается вполне регулярной
структуризации. Один из очевидных способов состоит в том, чтобы факторизовать
предикат, общий для некоторого множества простых утверждений, и затем
интерпретировать это множество как экземпляр n-арного отношения, а предикат – как имя
этого отношения. Структурированная таким образом база данных будет далее состоять из
двух частей: регулярной части, состоящей из совокупности изменяющихся во времени
отношений соответствующей степени (которая иногда называется экстенсионалом
(extension)), и нерегулярной части, состоящей из формул логики предикатов, которые
являются относительно устойчивыми во времени (ее называют иногда интенсионалом
(intension), хотя это, возможно, и не то, что логики Рассел (Russell) и Уайтхед (Whitehead)
первоначально подразумевали под этим термином). Можно также рассматривать
интенсионал как множество ограничений целостности (т. е. условий, которые определяют
все допустимые экстенсионалы) и таким образом отделить эти понятия от изменчивости
во времени.
Возможны альтернативы при интерпретации отсутствия некоторого кортежа в базовом
отношении, которое может рассматриваться как утверждение о том, что истинностное
значение соответствующей атомарной формулы является (1) неизвестным или (2)
ложным. Если принимается альтернатива (1), мы имеем интерпретацию,
соответствующую гипотезе открытого мира. Если же принимается альтернатива (2), то
мы имеем интерпретацию, соответствующую гипотезе замкнутого мира (см. [28]). Хотя
интерпретация, соответствующая гипотезе замкнутого мира, обычно принимается для
коммерческих баз данных, существует случай, когда следует допустить, чтобы некоторые
отношения (например P-отношения из разд. 7) имели интерпретацию, соответствующую
гипотезе открытого мира, в то время как другие отношения (скажем E-отношения для
стержневых типов сущностей, обсуждаемых в разд. 5 и 6) имеют интерпретацию,
соответствующую гипотезе замкнутого мира.
Независимо от того, принимается ли интепретация открытого или замкнутого мира,
реляционная модель весьма близка к логике предикатов. Эта близость является причиной
существования большого числа реляционных подъязыков данных, основанных на логике
предикатов. Исследование и основательное сравнение таких языков можно найти в
работах [20, 27].
В результате неаккуратного применения логики предикатов при проектировании базы
данных можно получить непонятное и не поддающееся управлению множество
утверждений. Некоторые из проблем, которые возникают при попытках ввести в этой
сфере некоторую дисциплину, сводятся к следующему.
1. Можем ли мы более точно определить, из чего образуется простое утверждение?
2. Какие другие виды регулярности могут быть полезными в форматированной базе данных?
3. В какой степени эти дополнительные виды регулярности могут быть представлены в легко
анализируемых структурах данных, а не в процедурах?
Пытаясь дать ответы на эти вопросы, мы будем использовать для мотивации расширений
реляционной модели такие популярные неформальные термины, как "сущность",
"свойство" и "ассоциация". В конце концов, мы приходим к формальной системе,
названной RM/T (здесь T означает "Тасманию", где эти идеи впервые были представлены
[9]). Эта система может интерпретироваться многими различными способами. Некоторые
интерпретации должны удовлетворять так называемой школе двух концепций в
семантическом моделировании, в то время как другие должны удовлетворять школе трех
концепций (см. [25, стр. 27]).
4. ОБОЗНАЧЕНИЕ СУЩНОСТЕЙ
Очевидна потребность в уникальных и неизменных идентификаторов сущностей базы
данных, таких как служащие, поставщики, детали и т.п. Первоначально в реляционной
модели для этой цели предназначались определяемые и контролируемые пользователями
первичные ключи. Однако имеется три трудности при использовании контролируемых
пользователем ключей в качестве неизменных суррогатов (permanent surrogate)
сущностей.
i.
ii.
iii.
Фактические значения контролируемых пользователем ключей определяются
пользователями и, следовательно, должны подвергаться изменениям с их стороны
(если, например, сливаются две компании, то две базы данных служащих могут
быть объединены таким образом, что некоторые или все последовательные номера
служащих могут при этом измениться).
Два отношения могут иметь контролируемые пользователем ключи, определенные
на различных доменах (скажем, в одном из них используется код социального
страхования, в то время как в другом – последовательный номер служащего), и тем
не менее эти сущности обозначают одно и то же.
Может оказаться необходимой поддержка информации о сущности либо перед тем,
как ей был присвоено значение контролируемого пользователем ключа, либо после
того, как она прекратила его иметь (допустим, претендент на работу и
уволившийся).
Эти трудности имеют важное следствие – эквисоединение на общих значениях ключей
может не давать того же результата, что и соединение на общих сущностях. Решение этой
проблемы, предложенное частично в [4] и в более полном виде в [14], сводится к тому,
чтобы ввести домены сущностей, которые содержат назначаемые системой суррогаты.
Пользователи базы данных могут заставить систему сгенерировать или удалить
некоторый суррогат, но они не имеют контроля над значением суррогата, и это значение
им даже не демонстрируется.
Суррогаты ведут себя так, как будто у каждой сущности (независимо от типа) имеется
свой собственный неизменный суррогат, уникальный во всей базе данных. Фактически,
если взглянуть глубже, таким суррогатам, вероятно, придется изменяться (например,
когда две ранее независимых базы данных объединяются в одну), однако всегда
сохраняется следующее свойство: в реляционной модели два суррогата являются равными
тогда и только тогда, когда они обозначают одну и ту же сущность в воспринимаемом
мире сущностей. Заметим, что система создала бы для двух сущностей, вводимых
пользователями, различные суррогаты, что, по существу, предполагает различие этих
сущностей. Специальная объединяющая (coalescing) команда позволяет пользователю
сказать системе, что два объекта, которые ранее считались различными, на самом деле
являются одним и тем же объектом.
В любой базе данных, основанной на RM/T, один из основных доменов служит
источником всех суррогатов. Он называется E-доменом. Все атрибуты, определенные на
E-домене, называются E-атрибутами. Для того чтобы можно было легко распознавать
такие атрибуты, примем соглашение, что им даются имена заканчивающиеся
специальным символом " ".
С введением E-доменов, E-атрибутов и суррогатов не отменяются ключи,
контролируемые пользователем. У пользователей часто будет возникать потребность в
идентификаторах (таких как серийный номер детали), которые находятся полностью под
их контролем, хотя они больше не обязаны изобретать ключ, контролируемый
пользователем, если они того не желают.
Они должны будут, однако, помнить, что теперь имеется суррогат, который является
первичным ключом и действительно обеспечивает неизменную идентификацию каждой
сущности. Возможность выполнения эквисоединения на суррогатах предполагает, что
пользователи видят заголовки таких столбцов, но не конкретные значения в этих
столбцах.
5. ТИПЫ СУЩНОСТЕЙ
Конечно, у сущностей может иметься несколько типов (например, поставщик может
также быть покупателем). Когда информация, касающаяся некоторой сущности, впервые
вводится в базу данных, должен специфицироваться, по крайней мере, один тип для этой
сущности – не обязательно требуется указывать что-либо еще, если только оно не
относится к типу, используемому для описания некоторой другой сущности. В таком
случае эта иная сущность, описание которой пополняется, также должна
специфицироваться. В последующих разделах мы будем иметь дело с автоматическим
выводом других применимых типов, когда они выводимы из заданного типа (или типов).
В любой базе данных RM/T для каждого типа сущности имеется некоторое унарное
отношение (называемое E-отношением). Принято давать этому отношению такое же имя,
как и у типа сущности, который оно представляет, в то время как имя его единственного
атрибута образуется из имени отношения путем добавления к нему в конце символа " ".
Такому атрибуту даются также дополнительные имена (псевдонимы), если
соответствующий тип сущности является подтипом других типов сущности. В таком
случае имеется один псевдоним для каждого типа суперсущности, и этот псевдоним
состоит из имени отношения этого супертипа, за которым следует символ " ".
Основное назначение E-отношения состоит в регистрации суррогатов всех сущностей,
которые имеют этот тип и в настоящее время записаны в базу данных. Одна из причин
введения E-отношений явным образом заключается в том, что тип сущности может
изменяться динамически. Фирма, которая была и поставщиком, и покупателем, может
стать только поставщиком. Ниже мы увидим и другие причины.
Вероятность измененния типа или типов сущности означает, что мы должны различать
две цели удаления суррогата сущности из E-отношения:
i.
ii.
полное удаление сущности из базы данных, что означает удаление всех тех
кортежей, в которых ее суррогат появляется в роли уникального идентификатора
кортежа, и замещение всех других вхождений специальным суррогатом E-null,
который означает "сущность неизвестна" [26];
динамическая утрата одного типа для сущности, сопровождающаяся "выживанием"
некоторого другого типа для той же самой сущности, что означает:
a. удаление ее суррогата из E-отношения для этого типа и из E-отношений
некоторых других типов, подразумеваемых утрачиваемым типом, но не
подразумеваемых остающимися типами – это станет ясно позже;
b.
и, кроме того, удаление соответствующих кортежей и замена суррогатов,
как это указывалось в (1), за исключением тех, которые ассоциируются с
данной сущностью в оставшихся ее типах.
Правило 3 (целостность сущностей в RM/T): В соответствии с основными правилами для
суррогатов, для E-отношений допустимы вставки и удаления, но не обновления. Согласно
правилу 1 для базисной реляционной модели, в E-отношениях не допускаются
неопределенные значения.
6. КЛАССИФИКАЦИЯ СУЩНОСТЕЙ И АССОЦИАЦИЙ
Сущности и их типы2 могут классифицироваться следующим образом:
i.
ii.
iii.
сущности и типы, выполняющие вспомогательную роль в описании сущностей
некоторого другого типа; такие сущности и их типы называются
характеристическими (characteristic);;
сущности и типы, выполняющие вспомогательную роль в обеспечении
взаимосвязей сущностей других типов; такие сущности и их типы называются
ассоциативными (associative);
сущности и типы, не выполняющие никакой из указанных выше ролей; такие
сущности и их типы называются стержневыми (kernel).
Сущности и их типы могут связываться друг с другом по иным критериям, чем
упомянутые выше описание и ассоциация. Говорят, что тип сущностей e1 есть подтип
типа сущностей e2, если все сущности типа e1 являются по необходимости сущностями
типа e2. Например, в базе данных, имеющей дело со служащими вообще и с торговыми
агентами в частности, тип сущностей торговых агентов был бы подтипом типа сущностей
служащих. У любого типа сущностей (характеристический, стержневой или
ассоциативный) может иметься один или несколько подтипов, к которых, в свою очередь,
также могут иметься подтипы. Подтип характеристического типа сущностей также
является характеристическим; подтип стержневого типа сущностей также является
стержневым, а подтип ассоциативного типа сущностей – ассоциативным.
Стержневые типы сущностей, которые не являются подтипами какого-либо другого типа
сущностей, называются внутренними стержневыми (inner kernel). Каждый внутренний
стержневой тип сущностей определяется независимо от всех других типов сущностей. За
исключением
каких-либо
ограничений
целостности,
которые
являются
специализированными для конкретной базы данных (в отличие от ограничений
целостности, присущих самой модели данных и являющихся ее фундаментальной
частью), существование внутренней стержневой сущности не зависит от наличия какойлибо другой сущности какого-либо типа.
Объекты, которые служат для обеспечения взаимосвязей сущностей, но сами не имеют
статуса сущностей, будем называть несущностными ассоциациями (nonentity association).
Главное различие между ассоциативными сущностями и несущностными ассоциациями
заключается в следующем. Для ассоциативных сущностей, как и для стержневых,
допускается наличие характеристических сущностей, а также непосредственных свойств.
В то же время для несущностных ассоциаций допускается наличие только
непосредственных свойства. Это и другие различия, обсуждаемые ниже, происходят от
трудностей специфицирования перекрестной ссылки на конкретную ассоциацию, когда
она не имеет суррогата, уникально ее идентифицирующего. Несущностные ассоциации
включены в RM/T, главным образом, для того, чтобы продемонстрировать, насколько
слабыми являются эти ассоциации по сравнению с ассоциативными сущностями.
Рис. 1. Классификация типов сущностей
На рис. 1 в упрощенном виде представлена классификация типов сущностей (не показано,
что характеристические типы сущностей могут сами иметь подтипы). Заметим, что
термин внутренний ассоциативный тип сущностей (inner associative entity type) относится
к ассоциативному типу сущностей, который не является подтипом какого-либо иного типа
сущностей.
Такая классификационная схема в некоторой степени подобна, но, несомненно, не
идентична классификациям, введенным в [32, 42]. Шмид (Schmid) и Свенсон (Swenson)
включили в свою схему несущностные ассоциации, но не ассоциативные сущности – в
RM/T первые являются необязательными, в то время как вторые – необходимыми.
7. СУЩНОСТИ И ИХ НЕПОСРЕДСТВЕННЫЕ СВОЙСТВА
Мы уже видели, что E-отношение для заданного типа сущностей декларирует
существование таких сущностей, которые имеют этот тип. Непосредственные (имеющие
единичные значения) свойства некоторого типа сущностей представляются как различным
образом именованные атрибуты одного или нескольких определяющих свойства
отношений, которые называются P-отношениями. Первичным ключом каждого Pотношения является некоторый E-атрибут, основная функция которого состоит в
связывании свойств каждой сущности с декларацией ее существования в E-отношении.
Каждый суррогат, появляющийся в этом E-атрибуте, уникально идентифицирует
описываемую сущность. Более того, он уникально идентифицирует кортеж, частью
которого он является, поскольку свойства имеют единичные значения. Атрибуты Pотношений именуются в соответствии со следующим соглашением: для любого типа
сущностей e и любой пары P-отношений для e единственными общими атрибутами этих
отношений являются их первичные ключи.
Роль этого E-атрибута заключается в том, что он служит уникальным идентификатором
для отношения, в котором он появляется. Мы будем называть эту роль K-ролью.
Соответственно, у каждого P-отношения имеется в точности один E-атрибут, который
играет K-роль. Каждое отношение может иметь один или более других E-атрибутов, но их
роли являются чисто ссылочными, т.е. они играют роль внешнего, а не первичного ключа.
Вставки в P-отношения и удаления из E-отношений регулируются следующим правилом.
Правило 4 (целостность свойств): Кортеж t не может появиться в P-отношении, если в
соответствующем E-отношении не декларируется факт существования сущности, которую
описывает t. Иными словами, компонент кортежа t, содержащий значение суррогатного
первичного ключа, должен входить в соответствующее E-отношение.
Было много споров о том, следует ли представлять все непосредственные свойства данной
сущности в одном отношении, определяющем свойства, (одна крайность) или же лучше
разбить их на столько бинарных отношений, сколько имеется этих свойств (другая
крайность). Первое мнение согласуется с дисциплиной PJ/NF [11], в то время как второе
соответствует подходу минимальных (irreducible) отношений [12, 29]. Нормальные формы
(отличные от 1NF) не являются обязательными – они просто служат руководящим
принципом для проектирования базы данных. Как первоначальная реляционная модель
(RM), так и RM/T оставляют это решение на усмотрение пользователя модели. RM/T (и в
меньшей степени RM) предоставляет операции для преобразования одной формы в
другую.
Одно из преимуществ использования бинарных P-отношений при определении базы
данных заключается в том, что у каждого соответствующего такому отношению свойства
имеется имя отношения, имя атрибута и имя домена, и все они могут с успехом
использоваться для мнемонических целей. Второе (спорное) преимущество бинарных Pотношений состоит в том, что для добавления в базу данных нового типа свойств
достаточно просто добавить еще одно P-отношение. Однако в RM/T это преимущество
обеспечивается независимо от того, организованы ли свойства в исключительно в форме
бинарных отношений или как n-арные отношения соответствующих степеней.
Рис. 2. Отношения сущностей и свойств
Следует предостеречь читателя от поспешного вывода о том, что бинарные отношения в
чем-то превосходят n-арные отношения как примитив представления данных. Даже в
случае непосредственных свойств имеются сомнительные декомпозиции. На рис. 2
показана одна организация непосредственных свойств служащих. В этом и подобных ему
примерах у нас может возникнуть желание декомпозировать отношения свойств не более,
чем на минимальные смысловые единицы. Должны ли, например, компоненты даты – день
(Da), месяц (Mo) и год (Yr) представляться в отдельных P-отношениях? Должны ли
разделяться компоненты адреса – номер строения (No), название улицы (Street), город
(City) и штат (State)? Помимо использования понятия минимальной смысловой единицы
может возникнуть желание принять критерий исключения вхождений неопределенных
значений вида "свойство неприменимо". Эта цель часто может достигаться без бинарной
атомизации.
Если даже основная схема основывалась бы исключительно на бинарных отношениях (и
мы вернемся к этому вопросу в одном из следующих разделов), все равно существовала
бы потребность в применении n-арных соединений для получения отношений более
высокой степени для того, чтобы определять представления (view), исследовать
интеграцию представлений и выражать широкий класс запросов. В случае RM/T наша
позиция состоит в том, что минимальная смысловая единица одного человека не
обязательно является таковой для другого.
Заметим, что для определения представления, которое инкапсулирует некоторые или все
непосредственные свойства типа сущностей в едином n-арном отношении, подходит
внешнее естественное соединение (OUTER NATURAL JOIN) всех P-отношений для этого
типа по E-атрибутам с K-ролью (см. пример A в подразд. 15.4). Такое подходит для
данной цели независимо от того, насколько мелкой или крупной будет декомпозиция
свойств.
Чтобы пояснить, каким образом P-отношения для заданного типа сущностей связываются
с E-отношением для этого типа, мы будем использовать следующие объекты и свойства
RM/T. Relname – это представление имени отношения в форме символьной строки.
Relname отношения (предположительно, временного), которому еще не ничего присвоено,
является неопределенным. У каждого базового отношения имеется relname, отличное от
неопределенного. Кроме того, у каждого выводимого отношения, указываемого в левой
части какого-либо оператора присваивания, также имеется relname, отличное от
неопределенного. Домен relname (сокращенно, – RN-домен) – это домен всех relname в
базе данных.
Теперь мы введем графовое отношение свойств (property graph relation, или PGотношение), которое указывает, какие P-отношения представляют типы свойств,
ассоциированных с каждым E-отношением.
Оба атрибута PG-отношения определяются на RN-домене. Один из этих атрибутов имеет
имя SUB, указывающее его подчиненную роль, а другой – имя SUP, указывающее его
главенствующую роль. Если m, n являются именами P-отношения и E-отношения
соответственно, то пусть выражения p(m), e(n) обозначают тип свойств, представляемый
P-отношением, и тип сущностей, представляемый E-отношением соответственно. Пара
(SUB:m, SUP:n) принадлежит PG тогда и только тогда, когда p(m) есть тип свойств для
типа сущностей e(n).
Можно считать, что совокупность P-отношений для заданного E-отношения составляет
молекулярный тип свойств (property molecule type), который связывается воедино
кортежами в PG-отношении.
8. МНОГОЗНАЧНЫЕ И КОСВЕННЫЕ СВОЙСТВА СУЩНОСТЕЙ
Типы сущностей определяются таким образом, что каждое многозначное свойство
сущности p представляется в форме характеристической сущности q вместе с
непосредственными свойствами для q. Характеристическая сущность сама может иметь
одну или несколько подчиненных характеристических сущностей. Хорошо известный
пример – служащие (стержневой тип сущностей), имеющие послужной список
(характеристический тип сущностей, подчиненный типу служащих), непосредственными
свойствами которого являются дата занятия должности (Date) и название должности
(Jobname). Эта информация дополняется историей зарплаты (характеристический тип
сущностей, подчиненный послужному списку, см. рис. 3), непосредственные свойства
которой – дата изменения зарплаты (Date) и новая сумма зарплаты (Amount).
Рис. 3. Характеристические отношения
Потребность в описанном выше характеристическом типе сущностей возникает в связи со
строго многозначной зависимостью (т.е. многозначной зависимостью, которая не является
функциональной). Другая возможность возникновения характеристического типа
сущностей связана с транзитивной функциональной зависимостью [6]. В этом случае у
типа сущностей e имеется непосредственное свойство p, которое, в свою очередь, имеет
непосредственное свойство q (например участок скоростной магистрали имеет один из
нескольких типов материалов покрытия, которые, в свою очередь, имеют некоторую
пористость). Может быть введен тип сущностей, который является характеристическим
по отношению к участкам магистрали и представляет типы материалов покрытия на этих
участках. Тогда пористость становится непосредственным свойством этого типа
сущностей.
Характеристические типы сущностей, обеспечивающие описание заданного стержневого
типа
сущностей,
образуют
строгую
иерархию,
которую
мы
называем
характеристическим деревом (characteristic tree). В этом дереве тип сущности p является
родительским для типа сущности q, если q является непосредственной характеристикой p
(т.е. не является характеристикой какой-либо характеристики p). конечно, Конечно
стержневой тип сущностей может не иметь описывающих его характеристических типов
сущностей. В этом случае его характеристическое дерево состоит из единственного узла –
самого этого стержневого типа сущностей.
Для представления совокупности характеристических деревьев мы вводим
характеристическое графовое отношение (characteristic graph relation, или CGотношение) – бинарное отношение, оба атрибута которого определены на RN-домене.
Один из его атрибутов играет роль SUB, а другой – роль SUP (как и в PG-отношении). Это
отношение интерпретируется следующим образом. Пара (SUB:m, SUP:n) принадлежит
CG, если тип сущностей e(m) непосредственно подчинен типу сущностей e(n) в одной из
характеристических иерархий.
Вставка и удаление характеристических сущностей регулируются следующим правилом.
Правило 5 (характеристическая целостность): Характеристическая сущность не может
существовать в базе данных, если сущность, которую она описывает наиболее
непосредственным образом, также не находится в базе данных.
Совокупность характеристических отношений для заданного E-отношения можно
рассматривать как характеристический молекулярный тип (characteristic molecule type),
который связывается воедино кортежами в CG-отношении.
9. АССОЦИАЦИИ
9.1. Ассоциативные сущности
Ассоциативные сущности представляются в RM/T точно так же, как и стержневые. Следовательно,
для каждого ассоциативного типа сущностей имеется E-отношение и ноль или большее число Pотношений. На рис. 4 показан пример ассоциации назначения между служащими и проектами,
где каждое назначение интерпретируется как некоторая сущность, и для регистрации суррогатов
служащих и проектов, а также дат назначения используются P-отношения.
Рис. 4. Ассоциативная сущность
Если у заданного ассоциативного типа сущностей имеется подчиненный ему
характеристический тип сущностей, то в CG-отношении будут иметься соответствующие
кортежи, которые определяют дерево этих типов. Кроме того, для поддержки каждого из
этих характеристических типов сущностей будут иметься характеристические отношения.
Вставка, обновление и удаление ассоциативных сущностей регулируются следующим
правилом.
Правило 6 (целостность ассоциаций): Ассоциативная сущность может существовать в базе
данных (т.е. имеется соответствующий суррогат в соответствующем E-отношении), даже
если одна или более участвующих в этой ассоциации сущностей являются неизвестными
(если только не задано явное ограничение целостности, запрещающее таких
ассоциативных сущностей). В таком случае для указания того факта, что участвующие
сущности неизвестны, используется суррогат E-null.
Для принудительного автоматического удаления ассоциации при удалении сущности,
участвующей в этой ассоциации, можно легко добавить явное ограничение,
устанавливающее, что соответствующий атрибут в подходящем P-отношении не может
принимать неопределенного значения. Такое ограничение должно являться частью
приложения RM/T, а не составной частью самой RM/T.
Ассоциативный тип сущностей служит для поддержки взаимосвязей сущностей других
типов (стержневых, ассоциативных либо тех и других). Назовем эти другие типы
непосредственными участниками (immediate participant) заданного ассоциативного типа
сущностей. Для поддержки спецификаций, указывающих, какие типы сущностей
являются участниками и каких именно ассоциативных типов сущностей, мы вводим
ассоциативное графовое отношение (association graph relation, для краткости, AGотношение). Это точно такое же бинарное отношение, как и CG-отношение, за
исключением его интерпретации: (SUB:m, SUP:n) принадлежит AG-отношению, если тип
сущностей e(m) непосредственно принимает участие в определении ассоциативного типа
сущностей e(n). Заметим, что транзитивное замыкание AG-отношения является частично
упорядоченным, но не обязательно представляет собой дерево или совокупность деревьев.
Важно отметить, что, если участником одного типа ассоциаций является другой тип
ассоциаций, то использование надлежащим образом суррогатов в ассоциации верхнего
уровня для ссылок на конкретных участников более низких уровней может устранить
потенциальный источник двусмысленности (таким же образом, как надлежащее
использование контролируемых пользователем ключей может устранить такую
двусмысленность в базисной реляционной модели). Чтобы проиллюстрировать такую
двусмысленность, предположим, что имеется два отношения IS и CAN, причем каждое из
них имеет атрибуты S (суррогаты поставщика), P (суррогаты деталей) и C (суррогаты
городов):
IS ( S :e P :e C :e )
CAN ( S :e P :e C :e )
где (s:e, p:e, c:e) принадлежит IS, если поставщик s поставляет деталь p из города c; и (s:e, p:e, c:e)
принадлежит CAN, если поставщик s может поставлять деталь p из города c.
Предположим также, что имеется необходимость представлять ассоциацию более
высокого уровня, которая связывает каждую пару (s, p) из IS c проектом (проектами),
получающими детали с серийным номером p. Мы могли бы построить RM/T отношение
TO(S :e P :e J :e), где атрибут J определяется на суррогатах проектов. Из этого
определения неясно, однако, являются ли пары (s, p) в TO парами из IS, или парами из
CAN, или просто произвольными парами суррогатов поставщика и детали. Особое
ограничение целостности, имеющее форму:
TO[S :e, P :e] ⊆ IS[S :e, P :e]
помогает разрешить эту двусмысленность на уровне типов, но не на уровне экземпляров.
Это связано с тем, что в отношении IS может иметься два или более экземпляров пары (s,
p), например, (s, p, c1) и (s, p, c2), и в таком случае неясно, ссылается ли экземпляр (s, p) в
отношении TO на (s, p, c1) или на (s, p, c2).
Благодаря использованию ассоциативных сущностей в RM/T такая двусмысленность
может быть разрешена как на уровне типов, так и на уровне экземпляров. Мы имели бы
следующие отношения RM/T:
IS ( IS :e S :e P :e C :e ... )
CAN ( CAN :e S :e P :e C :e ... )
TO ( TO :e IS :e ... )
где атрибут IS :e в отношении TO ссылается на определенные сущности и, следовательно,
определенные кортежи в отношении IS.
Можно считать, что совокупность типов сущностей, принимающих участие
(непосредственным или иным образом) в заданном ассоциативном типе сущностей
образует ассоциативный молекулярный тип (associative molecule type), который
связывается воедино с помощью кортежей в AG-отношения.
9.2. Несущностные ассоциации
Для типа несущностных ассоциаций отсутствует E-отношение. Не существует и
суррогата, связанного с ассоциацией этого типа. Следовательно, не существует какоголибо надежного способа (т.е. способа, контролируемого системой) для ссылки на такую
ассоциацию в PG-отношении либо в AG-отношении. По таким же причинам она не может
принимать являться компонентом какой-либо другой ассоциации.
Рис. 5. Несущностная ассоциация
Тип несущностных ассоциаций представляется единственным n-арным отношением.
Атрибуты этого отношения включают E-атрибуты, которые идентифицируют типы
сущностей, участвующие в данной ассоциации, вместе с ее непосредственными
свойствами (если таковые имеются). На рис. 5 показано, каким образом назначение
служащих в проект может интерпретироваться как тип несущностных ассоциаций.
Поведение при вставке, обновлении и удалении регулируется правилом 2 базисной
реляционной модели. Таким образом, несущностная ассоциация не может существовать в
базе данных, если в ней не присутствуют сущности, взаимосвязь которых она
обеспечивает.
9.3. Декомпозиция ассоциаций
Размышления, в том числе, и имеющие отношение к описанию базы данных, не появляются сразу
четко декомпозированными на минимальные смысловые единицы.
Если задана ассоциация, состоящая из n (n > 2) участвующих в ней типов сущностей, то
проектировщик базы данных, имеющий в своем распоряжении для работы только
инструментарий бинарных отношений, весьма вероятно, сразу декомпозировал бы такую
ассоциацию на n связанных (anchored) бинарных отношений (каждое из них связывает
одного участника с доменом сущности самой ассоциации). Предположим теперь, что он
спроектировал ассоциацию в n-арной форме, исследовал ее возможные декомпозиции без
потерь и обнаружил, что она могла бы быть декомпозирована на две или более
независимых ассоциации более низкой степени, каждая из которых могла бы затем быть
декомпозирована отдельно (если это желательно) на бинарные отношения. Мы могли бы
тогда сказать, что первоначальная непосредственная декомпозиция на бинарные
отношения была преждевременной. Назовем эту ситуацию ловушкой преждевременной
бинарной декомпозиции (premature binary decomposition trap). Эта ловушка является
взаимнодополняющей по отношению к ловушке соединения [5].
Можно предположить, что в своих попытках достижения минимальных смысловых
единиц проектировщик был бы хорошо осведомлен о возможностях использования всей
теории n-арных отношений, которая была разработана за последнее десятилетие. Теперь
имеются такие концепции, как PJ/NF (иначе называемая 5NF – 5-я нормальная форма)
[11], минимальные отношения, атомарная декомпозиция [45], правильно определенные
отношения [33], независимые отношения [29] и примитивные отношения [26]. Все это
может использоваться как руководство по декомпозиции. Хотя все эти концепции имеют
дело, главным образом, с проекциями, которые инвертируются с помощью естественных
соединений без потерь, в последних двух из них во внимание принимаются также новые
ограничения целостности взаимосвязей, которые могли бы потребоваться, если бы
декомпозиция зашла слишком далеко или если бы был сделан плохой выбор из двух или
более доступных вариантов декомпозиции.
Заметим, что в общем случае несущностная ассоциация не может быть расщеплена (без
потерь информации) на связанные бинарные проекции таким же образом, как
ассоциативные сущности, поскольку не существует домена сущностей для
восстановительного соединения проекций. По этой и другим причинам RM/T может быть
применена к проектированию баз данных только при полном исключении концепции
несущностной ассоциации.
10. ДЕКАРТОВА АГРЕГАЦИЯ
Для формирования более крупных смысловых единиц важным измерением 3) является декартова
агрегация (Cartesian aggregation). Смит (Smith) и Смит (Smith) в [33] называют ее просто
агрегацией, но мы хотели бы отличать ее от других форм агрегации таких, как статистическая
агрегация и агрегация покрытия (обсуждаемая ниже). Согласно Смит и Смиту, декартова агрегация
– это абстракция, в которой связь между объектами рассматривается как объект более высокого
уровня.
В RM/T декартова агрегация подразделяется на три вида:
i.
ii.
агрегация простых свойств, которая образует некоторый тип сущностей
(характеристический, стержневой или ассоциативный);
агрегация характеристических сущностей, которая образует некоторый тип сущностей
(характеристический, стержневой или ассоциативный); агрегация любой комбинации
стержневых и ассоциативных типов сущностей, которая образует либо ассоциативный тип
сущностей, либо тип несущностных ассоциаций.
Рис. 6. Декартова агрегация
Первый вид декартовой агрегации поддерживается в RM/T с помощью P-отношений и PGотношений, второй вид – с помощью характеристических отношений и CG-отношений, а
третий вид – с помощью стержневых отношений, ассоциативных отношений и AGотношений. На рис. 6 приведен пример декартовой агрегации.
Хотя RM/T может применяться с ограничением Смит и Смита, требующим, чтобы
абстракция путем декартовой агрегации образовывала понятие, которое именуется
единственным существительным английского языка, сама модель не ограничивается
таким образом, поскольку это ограничение является слишком нечетким.
11. ОБОБЩЕНИЕ
11.1. Безусловное обобщение
Другим важным измерением для формирования более крупных смысловых единиц
является измерение обобщения. Оно привлекает большое внимание в контексте
семантических сетей [18, 31, 35]. Мы рассмотрим их здесь в контексте n-арных
отношений. Смит и Смит (Smith) определили обобщение (generalization) как абстракцию,
при которой множество схожих объектов рассматривается как родовой объект. Это
понятие имеет два аспекта: инстанциацию (instantiation) и подтипизацию. Оба они
являются некоторыми формами специализации (specialization), а их инверсии – формами
обобщения. Экстенсиональным двойником инстанциации является принадлежность
множеству, а подтипизации – включение множества. Как показывает рис. 7, чтобы
получить конкретных инженеров из родового объекта (или типа) инженер, следует
применить инстанциацию. Каждый из типов инженер, секретарь и водитель грузовика
являются подтипами типа служащий. Тип сущностей e вместе с его непосредственными
подтипами, их подтипами и т. д. образуют иерархию обобщения e. Эта иерархия является
еще одним молекулярным типом.
Рис. 7. Безусловное обобщение
Почему нам следует разделять членов иерархии обобщения на различные типы
сущностей? Мы делаем это только в том случае, если о разных членах иерархии должны
регистрироваться разные виды фактов. Если бы эти типы не были представлялись
раздельно, мы имели бы единое большое отношение с многими вхождениями
специального
неопределенного
значения,
интерпретируемого
как
"значение
неприменимо". С иерархией обобщения ассоциируется правило наследования свойств
(property inheritance rule): к любому подтипу e применимы все свойства его
родительского(-их) типа(-ов). Например, все свойства служащих вообще применимы к
служащим-продавцам в частности.
Введенные выше E-отношения поддерживают обобщение по членству. Для поддержки
обобщения по включению мы вводим отношение безусловного обобщения по включению
(unconditional gen inclusion relation, или UGI-отношение) – тернарное отношение,
представляющее помеченный граф. Два атрибута UGI-отношения определяются на RNдомене (один с ролью SUB, а другой – с ролью SUP), а третий – на домене меток
категорий, называемом PER. Триплет (SUB:m, SUP:n, PER:p) принадлежит UGIотношению, если сущность типа e(m) является непосредственным подтипом типа
сущности e(n) по категории p. Иными словами, E-отношение, имя которого
представляется символьной строкой m, принудительно включается (вследствие
обобщения по категории p) в E-отношение с именем, представленным символьной
строкой n. Заметим, что UGI-отношение поддерживает только ограничения
непосредственного безусловного включения, которые ассоциируются с семантическим
понятием обобщения. Таким образом, если (SUB:m, SUP:n, PER:p) и (SUB:n, SUP:k,
PER:p) принадлежат UGI, то (SUB:m, SUP:k, PER:p) ему не принадлежит.
Транзитивное замыкание UGI-отношения представляет собой отношение частичного
порядка на типах сущностей, но не обязательно совокупность деревьев, поскольку тип
сущностей может быть обобщен по включению в два или более типов сущностей.
Например, инженеры-женщины могут быть обобщены в инженеров, с одной стороны, и в
служащих-женщин – с другой.
Рассмотрим семейство типов сущностей в некоторой иерархии обобщения. Обычно
хорошим был бы проект базы данных, в котором общие свойства и характеристики этих
типов сущностей были бы представлены на возможно более высоком уровне такой
иерархии, что позволяло бы в полной мере получать преимущества правила наследования
свойств. Однако сама RM/T не налагает такого ограничения на иерархии обобщения –
этот подход считается всего лишь дисциплиной проектирования, которую пользователь
RM/T может по своему усмотрению принимать или отвергать.
Следующее правило регулирует вставки и удаления суррогатов.
Правило 7 (целостность подтипов): Если суррогат (например, s) принадлежит Eотношению для сущности типа e, то s должен также принадлежать E-отношению для
каждого типа сущностей, для которого e является подтипом.
11.2. Альтернативное обобщение
Мы можем теперь расширить обычное понятие иерархии обобщения, заметив, что тип
сущностей может быть обобщен в два или более альтернативных (alternative) типа.
Например, предположим, что в базе данных, относящейся к заказчикам (см. рис. 8),
заказчик (customer) может быть какой-либо компанией (company), товариществом
(partnership) или индивидуальным лицом (individual), и все они являются юридическими
лицами (legal unit). Предположим также, что для каждого из этих пяти типов сущностей
должны регистрироваться различные атрибуты. Поэтому помимо регистрации в UGIотношении безусловного включения заказчиков, компаний, товариществ и
индивидуальных лиц в юридические лица мы должны также где-то регистрировать
альтернативное или условное включение заказчиков в компании, товарищества или в
число индивидуальных лиц. Для поддержки такой возможности мы вводим отношение
альтернативного обобщения по включению (alternative gen inclusion relation, AGIотношение) – тернарное отношение, в точности похожее на UGI-отношение, за
исключением его интерпретации. В данном случае (SUB:m, SUP:n, PER:p) принадлежит
AGI-отношению, если E-отношение с именем m принуждается условно включаться в Eотношение n вследствие обобщения по категории p.
Рис. 8. Альтернативное обобщение
Допустим, что вставляется информация о новой сущности, и специфицируется только
один из ее нескольких типов. Тогда система может (и, в соответствии с правилом 7,
должна) автоматически вставить суррогат, сгенерированный для этой сущности, не только
в E-отношение, непосредственно представляющее объявленный тип, но также и в Eотношение для каждой сущности, которая, в соответствии с UGI и AGI, является
главенствующей по отношению к объявленной сущности. Должны учитываться оба
графовых отношения, поскольку A может быть альтернативно подчинено B и C, которые,
в свою очередь, являются безусловно подчиненными D. Следовательно, A безусловно
подчинено D, но не непосредственно.
Для иллюстраций операционных различий между UGI и AGI рассмотрим внесение нового
заказчика в базу данных, которая соответствует рис. 8. Учитывая UGI, система
устанавливает, что суррогат для этого заказчика должен быть введен в E-отношение для
юридических лиц, а также для заказчиков. Учитывая AGI, она устанавливает, что для
определения необходимости ввода суррогата в E-отношение для компаний, товариществ
или индивидуальных лиц требуется дополнительная расширенная информация. Пока не
появится эта информация, система не может определить, наследует ли заказчик,
упоминаемый в запросе, свойства от компании, товарищества или индивидуальных лиц.
Соответственно, AGI (в отличие от UGI) приводит систему в состояние, когда ей
требуется получить и учесть расширенную информацию, которой она могла бы
руководствоваться.
12. АГРЕГАЦИЯ ПОКРЫТИЯ
Конвой судов определенно является некоторым видом агрегации. Однако это не абстракция
путем декартовой агрегации, так же как и не абстракция путем обобщения (суда не являются ни
экземплярами, ни подтипами конвоев). Хаммер (Hammer) и Маклеод (McLeod) [15] включили этот
вид агрегации в свою модель, и мы используем их пример.
Рис. 9. Агрегация покрытия и обобщение
Рассмотрим базу данных, которая отслеживает свойства отдельных судов и конвоев.
Когда вставляется информация о новом судне, обычно не известно, в каких конвоях это
судно будет участвовать (и будет ли участвовать вообще). Рис. 9 должен прояснить
характерные аспекты этого вида агрегации. Тип покрытия (cover type) CONVOY означает,
что эта база данных отслеживает конвои вообще. CONVOY ALPHA – это конкретный
конвой, один из нескольких существующих в настоящее время. SAUCY SUE – название
судна, которому довелось быть в конвое CONVOY ALPHA. Имеется, кроме того,
некоторый подконвой конвоя ALPHA, которому SAUCY SUE также принадлежит.
Заметим, что включение SUBCONVOY в CONVOY ALPHA не является обобщением,
основанным на включении (SUBCONVOY является экстенсионально, а не
интенсионально определенным подмножеством ALPHA). Более того, принадлежность
SAUCY SUE конвою CONVOY ALPHA не является обобщением, основанным на
принадлежности множеству (SAUCY SUE – это не конкретный конвой или вид конвоя).
В примере конвоя оказывается, что судно обычно не может быть элементом двух конвоев
одновременно. Если мы считаем одиночные суда единичными конвоями, то понятие
CONVOY осуществляет разбиение класса судов. Непересекаемость конвоев не
переносится на все другие примеры агрегации покрытия. Так, рассмотрим вместо судов и
конвоев людей и клубы: люди могут принадлежать многим разным клубам одновременно.
Таким образом, этот тип агрегации, вообще говоря, образует покрытие, а не разбиение –
отсюда его название.
Типовый состав покрытия может быть или не быть однородным по типам. Например,
отряд особого назначения может состоять из судов, самолетов, танков и персонала.
Каждый тип агрегации покрытия интерпретируется RM/T как тип сущностей, имеющий
обычное E-отношение, а также, возможно, P-отношения и подчиненные
характеристические отношения. Например, в случае типа покрытия CONVOY в Eотношении регистрировались бы суррогаты для существующих конвоев, а в P-отношении
и характеристических отношениях – свойства каждого конвоя, рассматриваемого как
единичный родовой объект.
Хотя и можно интерпретировать каждый элемент покрытия как индивидуальный тип
сущностей, обычно это не является необходимым или желательным. Принадлежность
индивидуальных сущностей (судов) некоторому элементу покрытия (конкретному
конвою) представляется графовым отношением, определенным на E-домене очевидным
образом.
Чтобы дать системе возможность контролировать ввод элементов элементов покрытия,
мы вводим отношение принадлежности покрытию (couer membership relation, KGотношение) – графовое отношение на RN-домене, которое указывает для каждого типа
агрегации покрытия допустимые типы, которые могут стать элементами элементов
покрытия (например, только ли суда допускаются в составе конвоев или допускаются
также и самолеты?).
13. ПРЕДШЕСТВОВАНИЕ СОБЫТИЙ
Сущности типа событий – это такие сущности, частью описания которых является время
возникновения либо время начала и/или время окончания. Заметим, что не все сущности с
атрибутами времени являются событиями. Например, ассоциативная сущность, которая
указывает, что поставщик x может поставить деталь y со сроком доставки, равным трем месяцам,
сама по себе не является событием.
В некоторых базах данных важную роль играет упорядоченность событий во времени.
Обеспечение регистрации этого упорядочения на уровне типа представляет собой шаг в
направлении поддержки сценариев (script) (см. [17]).
Событие e1 следует за событием e2, если e1 возникло/началось является строго позже, чем
возникло/окончилось e2 (в соответствии с тем, воспринимаются ли эти события как
мгновенные или нет). За некоторыми типами событий безусловно следуют один или
несколько других типов событий. Такое следование обычно представляет собой
частичный порядок. Оно представляется в RM/T отношением безусловного следования
(unconditional successor relation, US-отношение) – графовым отношением на RN-домене.
(SUB:m, SUP:n) принадлежит этому отношению, если событие типа e(m) должно
следовать за событием типа e(n), и не существует какого-либо промежуточного типа
событий e такого, что e является безусловным преемником e(m), а e(n) – безусловным
преемником e.
Подобным же образом, некоторые типы событий являются альтернативными
преемниками других событий, и это альтернативное следование представляется
отношением альтернативного следования (alternative successor relation, AS-отношение)
таким же образом, как и безусловное следование.
Если событие e2 следует за событием e1, то это, очевидно, означает, что e1 является
предшественником e2, но это не означает, что e1 обязательно является единственным
предшественником e2, даже если e2 – единственный преемник e1. Следовательно, нам
необходимы два дополнительных графовых отношения для описания предшествования
между типами событий: UP – для безусловного предшествования и AP – для
альтернативного предшествования.
Для иллюстрации использования этих графовых отношений предположим, что имеется
база данных, которая включает записи заказов, помещаемые поставщиками, и записи
поставок, которые принимаются как входные данные для инвентарной ведомости
(соответствующие типы сущностей-событий будут называться заказами и поставками).
Предположим также, что мы запрещаем принятие записей поставок в инвентарную
ведомость, если не отсутствует какой-либо невыполненный заказ соответствующих
товаров. Тогда отношение UP должно содержать кортеж (SUB:orders, SUP:shipments),
наличие которого интерпретируется как утверждение, что каждому принятию записи
поставки должен безусловно предшествовать какой-либо заказ. Кроме того, отношение
AS должно включать некоторый кортеж, соответствующий утверждению, что одним из
возможных событий-преемников для помещения заказа является принятие записи
поставки (поставки могут, конечно, отвергаться). Такая интенсиональная информация
может использоваться системой базы данных для того, чтобы подвергать сомнению
допустимость принятия конкретных записей поставок, не охваченных соответствующими
заказами.
В более общем смысле, отношения US, AS, UP, AP обеспечивают средства задания
ограничений на вставку и обновление событийных отношений, поддерживающих
некоторый тип событий. В остальном их поведение при вставке, обновлении и удалении
определяется тем, являются ли они стержневыми или ассоциативными.
14. КАТАЛОГ RM/T
RM/T содержит свой собственный расширяемый каталог для облегчения трансформаций между
различными способами организации общей информации, которые могут встретиться в процессе
интеграции представлений (view). Cтруктуру этого каталога образуют cледующие отношения:
CATR (R RELNAME RELTYPE)
CATRA (RA R A )
CATA (A ATTNAME USERKEY)
CATAD (AD A D )
CATD (D DOMNAME VTYPE ORDERING)
CATC (C PERNAME)
CATRC (RC R C ),
где CATR, CATA и CATD описывают отношения, атрибуты и домены соответственно;
CATRA связывает атрибуты и их домены; CATRC связывает отношения и категории (см.
подробнее ниже). Кроме того, атрибуты R , A , D и C определяются на E-домене и
содержат суррогаты для сущностей типов отношений, атрибутов, доменов и меток
категории соответственно. Наконец, атрибуты RA , AD и RC также определяются на Eдомене и содержат суррогаты для ассоциативных сущностей типов отношение-атрибут,
атрибут-домен и отношение-категория-метка, соответственно. Остальные атрибуты
перечислены ниже с кратким пояснением:
RELNAME
–
имя
отношения
(атрибут
определен
на
RN-домене);
ATTNAME
–
имя
атрибута;
DOMNAME
–
имя
домена;
PERNAME
–
метка
категории
(атрибут
определен
на
домене
PER);
RELTYPE
–
тип
объекта,
представляемого
отношением;
USERKEY – указывает, принимает ли атрибут участие в определяемом пользователем
ключе
для
соответствующего
отношения;
VTYPE
–
семантический
тип
значения;
ORDERING – указывает, применима ли операция > для значений в соответствующем
домене.
Для заданной категории c, тип сущностей называется вершиной категории c (top per c),
если у него имеется, по крайней мере, один подчиненный тип сущностей в c, но сам он не
подчинен какому-либо типу в c. Отношение CATRC содержит, по крайней мере, один
кортеж для каждой категории. Для каждой категории в базе данных в нем регистрируются
отношения, которые представляют типы сущностей – вершины этой категории. Смысл
других отношений в каталоге модели RM/T должен быть очевиден.
Подходящие значения reltype специфицируются для отношения путем конкатенации
соответствующих букв из следующего списка:
A
–
отношение
ассоциативных
типов
C
–
отношение
характеристических
типов
E
–
G
–
графовое
I
–
отношение
внутренних
стержневых
типов
K
–
отношение
стержневых
типов
L
–
граф
с
помеченными
N
–
отношение
несущностных
P
–
отношение
T – отношение типов сущностей-событий.
сущностей;
сущностей;
E-отношение;
отношение;
сущностей;
сущностей;
ребрами;
ассоциаций;
свойств;
Например, для отношения, представляющего стержневой тип сущностей-событий,
значением reltype было бы TK; для отношения, которое представляет ориентированный
граф с помеченными ребрами, значением reltype было бы TK.
15. ОПЕРАЦИИ RM/T
Следующие операции предназначены для того, чтобы единым образом манипулировать и
информацией схемы, и экстенсионала базы данных.
15.1. Операции над именами
Операция NOTE
Пусть имеется отношение R. Тогда NOTE(R) – это relname отношения R (т.е. представление имени
relname в форме символьной строки), если такое имя было назначено отношению R
пользователем; в противном случае NOTE(R) имеет неопределенное значение. Для наших целей
сейчас нет необходимости распространять этот оператор на объекты, отличные от отношений.
Многие отношения, являющиеся промежуточными результатами, не будут иметь имен. Однако
каждому базовому отношению должно быть дано какое-либо relname.
Операция TAG
Пусть имеется отношение R. Тогда
TAG(R) = R × {NOTE(R)},
где × обозначает декартово произведение.
Операция DENOTE
Пусть r – это значение relname некоторого отношения. Тогда DENOTE(r) – это отношение,
обозначаемое r. При применении к отношениям, которые имеют имена, операции NOTE и DENOTE
являются обратными друг к другу.
Операция DENOTE может применяться также к унарному отношению, которое является
множеством значений relname. Пусть R – такое отношение. Тогда DENOTE(R)
представляет собой множество всех таких отношений, для которых значения relname
принадлежат R.
15.2. Операции над множествами
Операция COMPRESS
Пусть f – это некоторая ассоциативная и коммутативная операция, которая отображает пару
отношений в отношение (например, операция join). Пусть Z – это множество отношений такое, что
операция f может быть законным образом применена к каждой паре отношений в Z. Тогда
COMPRESS(f, Z) – это отношение, полученное путем многократного попарного применения f к
отношениям в Z. Альтернативной записью вызова COMPRESS(f,Z) является f/Z.
Операция APPLY
Пусть f – это унарная операция, которая отображает отношения в отношения, а Z – множество
отношений (не обязательно совместимых по объединению). Тогда результатом вызова APPLY(f, Z)
является множество всех отношений f(z), где z – элемент Z. Для удобства мы принимаем то
соглашение, что если некоторое множество отношений используется в одном или нескольких
местах алгебраического выражения, в которых синтаксически допускается употребление имени
отношения, то это выражение вычисляется для каждого элемента данного множества. Однако

это выражение должно быть заключено в скобки с предшествующим словом APPLY;

в области действия одного оператора APPLY может быть упомянуто не более одного
множества отношений (но может быть упомянуто любое число отдельных отношений).
Операция PARTITION BY ATTRIBUTE: PATT
Пусть R – отношение с атрибутом A (возможно, составным), причем R может иметь и другие
атрибуты. Тогда PATT(R, A) – это множество отношений, полученных разбиением R по всем
различным значением A. Для всех отношений, имеющих атрибут A:
R = UNION/PATT(R, A).
Операция PARTITION BY TUPLE: PTUPLE
Пусть R – некоторое отношение. Тогда PTUPLE(R) – это множество отношений, полученных путем
помещения каждого кортежа R в некоторое однокортежное отношение. Заметим, что R =
UNION/PTUPLE(R).
Операция PARTITION BY RELATION: PREL
Пусть R – некоторое отношение. Тогда PREL(R) – это множество отношений, у которых
единственным элементом является отношение R. Заметим, что R = UNION/PREL(R).
Операция SETREL
Эта операция принимает в качестве аргументов любое число явно указанных именованных
отношений и производит множество отношений. Соответствующее выражение:
SETREL(R1, R2, ..., Rn).
15.3. Графовые операции
Для удобства манипулирования ориентированными графовыми отношениями (PG, CG,
AG, UGI, AGI, US, AS, UP, AP, KG) в модель включаются специальные операции,
описываемые в данном подразделе. Отношение R называется отношением-диграфом
(digraph relation)4), если оно имеет степень не менее двух и обладает следующими
свойствами:
i.
ii.
iii.
два его атрибута определены на общем домене;
один из них исполняет роль SUB, а другой – роль SUP;
никакие другие атрибуты отношения не исполняют роли SUB или SUP.
Отношение R является отношением-диграфом с помеченными ребрами (edge-labeled
digraph relation), если:
i.
ii.
iii.
оно является отношением-диграфом степени не менее трех;
в точности один из его атрибутов исполняет роль PER (пометка);
для каждого набора m, n, p никакие два кортежа R не имеют общих триплетов (SUB:m,
SUP:n, PER:p).
Отношение-диграф, которое не является отношением с помеченными ребрами, называется
непомеченным (unlabeled).
Операция OPEN
Случай 1. Пусть R – непомеченное отношение-диграф (т. е. никакой его атрибут не исполняет роли
PER). Тогда OPEN(R) порождает копию R, в которой удалены все не непосредственные
подчинения. Иначе говоря, это максимальное подмножество R1 отношения R, обладающее
следующим свойством: если (SUB:m, SUP:n) принадлежит R1, то либо не существует какого-либо
k, для которого как (SUB:m, SUP:k), так и (SUB:k, SUP:n) принадлежат R1, либо, если такое k
существует, имеет место k = m или k = n.
Случай 2. Пусть R – отношение-диграф с помеченными ребрами. В таком случае OPEN(R)
порождает максимальное подмножество R1 отношения R, обладающее следующим
свойством: если (SUB:m, SUP:n, PER:p) принадлежит R1, то либо не существует какоголибо k, для которого как (SUB:m, SUP:k, PER:p), так и (SUB:k, SUP:n, PER:p) принадлежат
R11, либо, если такое k существует, имеет место k = m или k = n.
Операция CLOSE
Случай 1. Пусть R – непомеченное отношение-диграф. Тогда CLOSE(R) – это транзитивное
замыкание R, т.е. минимальное надмножество R такое, что если (SUB:m, SUP:k) и (SUB:k, SUP:n)
принадлежат R, то (SUB:m, SUP:n) также принадлежит CLOSE(R). Кортежи в CLOSE(R), которые не
принадлежат также и R, содержат неопределенные значения для тех атрибутов, которые отличны
от SUB и SUP.
Случай 2. Пусть R – отношение-диграф с помеченными ребрами. Тогда CLOSE(R) –
минимальное надмножество R такое, что если SUB:m, SUP:k, PER:p) и (SUB:k, SUP:n,
PER:p) принадлежат R, то (SUB:m, SUP:n, PER:p) также принадлежит CLOSE(R). Кортежи
в CLOSE(R), которые не принадлежат также и R, имеют неопределенные значения для тех
атрибутов, которые отличны от SUB, SUP и PER.
Заметим, что для всех отношений-диграфов R имеют место соотношения:
OPEN(OPEN(R))
OPEN(CLOSE(R))
CLOSE(CLOSE(R)) = CLOSE(R)
=
=
OPEN(R),
OPEN(R),
Для всех непомеченных отношений-диграфов R степени 2 и для всех отношений-диграфов
R степени 3 с помеченными ребрами действует также соотношение:
CLOSE(OPEN(R)) = CLOSE(R).
Для отношений-диграфов более высокой степени OPEN может утрачивать информацию
(содержащуюся в атрибутах, отличных от SUB, SUP и PER), которую CLOSE не может
восстановить.
Операция STEP
Случай 1. Пусть R – непомеченное отношение-диграф, которое не имеет атрибута SEP,
обозначающего отделение (separation). Пусть Z – это множество всех атрибутов R, отличных от SUB
и SUP. Тогда STEP(R) – это множество всех кортежей вида
(SUB:x, SUP:y, Z:z, SEP:n),
где (SUB:x, SUP:y, Z:z) принадлежит R, а n – наименьшее число ребер графа, которые
отделяют узел x от узла y.
Случай 2. Пусть R – отношение-диграф с помеченными ребрами, которое не имеет
атрибута SEP. Пусть Z – множество всех атрибутов R, отличных от SUB, SUP и PER.
Тогда STEP(R) – это множество всех кортежей вида
(SUB:x, SUP:y, PER:p, Z:z, SEP:n),
где (SUB:x, SUP:y, PER:p, Z:z) принадлежит R, а n – наименьшее число ребер графа с
меткой p, которые отделяют узел x от узла y.
15.4. Примеры
Пример A. Скомбинировать все P-отношения для типа сущностей служащие (emp) в единое
исчерпывающее P-отношение без потери информации, не опираясь на какие-либо
предположения о количестве таких отношений.
Получим сначала имена всех P-отношений для типа сущностей служащие:
R1 ← PG[SUP = emp] [SUB].
Вспомним, что PG – это графовое отношение свойств. Тогда мы получаем
соответствующее множество отношений:
R2 ← DENOTE(R1).
Наконец, многократно применяем внешнее естественное соединение
(общему для всех отношений в этом множестве):
R3 ← (
по атрибуту EMP
EMP )/R2,
где с последующим атрибутом или совокупностью атрибутов указывает, что внешнее
естественное соединение должно выполняться относительно этих атрибутов как
атрибутов соединения.
Cкомбинируем выражения для R1, R2, R3 в единое выражение и заменим emp на r, где r –
это relname для какого-либо типа сущностей. Пусть PROPERTY(r) обозначает результат.
Тогда получаем:
PROPERTY(r) = (
r, ' ')/DENOTE(PG[SUP = r] [SUB]).
Таким образом, PROPERTY отображает relname типа сущностей в соответствующее
исчерпывающее P-отношение.
Пример B. Получить имя служащего и должность для всех служащих с отличным
(excellent) рейтингом в предположении, что:
i.
ii.
iii.
iv.
имеются различные типы сущностей для каждого типа должности (например, секретарь,
водитель грузовика, инженер и т.д.), и категория типа должности (jobtype) производит
разбиение множества служащих;
непосредственным обобщением этих типов может быть тип сущностей служащие (emp);
имя и должность служащего записываются в одно или более P-отношений,
ассоциированных с типом сущностей служащие;
рейтинг записывается отдельно в некоторое P-отношение для каждого типа должности.
Тогда:
R1 ← UGI[SUP = emp, PER = jobtype][SUB].
Вспомним, что UGI – это отношение безусловного обобщения по включению.
Следовательно, R1 – это унарное отношение, в котором содержатся все имена всех Eотношений, которые являются непосредственно безусловно подчиненными отношению
служащие.
R2 ← APPLY(PROPERTY, R1).
Здесь R2 – это множество P-отношений, каждое из которых является исчерпывающим Pотношением для одного из relname в R1.
R3 ← APPLY(R2[RATING = excelent]).
R3 – это множество отношений, в точности похожее на R2, за исключением того, что
каждое отношение в R3 является ограничением его двойника в R2.
R4 ← APPLY(R3[EMP ]).
R4 – это множество отношений, полученных проекцией каждого отношения из R3 на
атрибут EMP .
R5 ← (PROPERTY(emp))[EMP , NAME, JOBTYPE]
Здесь исчерпывающее P-отношение для типа сущностей служащие проецируется на его
атрибуты – суррогат, имя и должность.
R6 ← UNION/APPLY(R4[EMP = EMP ]R5).
Каждое отношение из множества R4 соединяется по сущности служащий с отношением
R5. Результат компрессируется путем многократного применения операции объединения
для получения R6 – требуемого результата.
Окончательное выражение является примером соединения по сущности, в отличие от
соединения по свойству.
Пример C. Пусть некоторая база данных содержит информацию о служащих. Свойства и
характеристики, относящиеся ко всем служащим, связываются через посредство PG и CG
с типом сущностей служащие. Кроме того, служащие категоризируются по:
i.
ii.
должности – инженер, секретарь, техник и т.д.
служебному статусу – постоянный и временный.
В базу данных записывается различные множества свойств и характеристик для всех этих
разных специализаций. Граф обобщения UGI показывает типы сущностей инженер,
секретарь, техник и т.д. как подчиненные типу сущностей служащие по категории
должность, а типы сущностей постоянный и временный – как подчиненные типу
сущностей служащие по категории статус.
Требуется получить тернарное отношение R такое, что (E-домен:x, RN-домен:y, PERдомен:z) принадлежит R тогда и только тогда, когда x является суррогатом некоторого
служащего, y – типом сущности x в категории z. Фактически, мы конвертируем
информацию категории в новый атрибут отношения на родительском уровне.
R1 ← UGI[SUP = emp] [SUB, PER].
В отношении R1 содержатся имена всех отношений, которые непосредственно подчинены
отношению служащие в графе обобщения.
R2 ← DENOTE(R1[SUB]).
R2 – это соответствующее множество отношений.
R3 ← APPLY(TAG, R2).
Для получения множества R3 берется каждое отношение в R2, и к нему добавляется
столбец, который содержит столько экземпляров relname для данного отношения, сколько
имеется кортежей в этом отношении.
R4 ← UNION/APPLY(R3[RN * SUB]R1).
Естественное соединение с отношением R1 применяется к каждому отношению из R3 с
использованием атрибутов rename. Для получения желаемого отношения результирующее
множество отношений компрессируется путем многократного применения объединения.
Пример D. Скомбинировать всю информацию из графовых отношений RM/T в одном
отношении R, имеющем атрибуты SUB, SUP, PER и RN, где (SUB:m, SUP:n, PER:p, RN:q)
принадлежит R тогда и только тогда, когда
i.
ii.
q является значением relnamr для помеченного графового отношения, и (SUB:m, SUP:n,
PER:p) принадлежит отношению с именем q; или
q является значением relnamr для непомеченного графового отношения, p –
неопределенное значение, и (SUB:m, SUP:n) принадлежит отношению с именем q.
Предположим, что тип графового отношения есть G. Не будем делать каких-либо
предположений о числе графовых отношений в RM/T или об их именах.
Тогда:
R1 ← DENOTE(CATR[RELTYPE = G] [RN]),
R2 ← APPLY(TAG, R2),
R2 ←
/R2.
В последнем выражении требуется внешнее объединение, поскольку не все графовые
отношения в RM/T имеют одну и ту же степень.
16. СВОДКА ВОЗМОЖНОСТЕЙ RM/T
Систематическое использование доменов сущностей (если при этом избегать
несущностных ассоциаций) позволяет RM/T поддерживать широкий диапазон точек
зрения на атомарную семантику, от крайней позиции, выражающейся в том, что
минимальной смысловой единицей всегда является бинарное отношение, до более
умеренных позиций. RM/T поддерживает четыре измерения (четырехмерное
пространство) молекулярной семантики &ndash декартову агрегацию, обобщение,
агрегацию покрытия и предшествование событий (см. рис. 10).
Рис. 10. Четыре измерения RM/T
Приведем теперь краткую сводку специальных объектов и операций, которые мы ввели в
расширенной реляционной модели. В Таблице I перечислены все объекты, а в Таблице II –
алгебраические операции.
Таблица I
Объект RM/T
Назначение
Суррогат
Контролируемый системой представитель сущности
relname
Строковое представление имени отношения базы данных
reltype
Строковое представление типа отношения
E-null
* Суррогат, обозначающий "сущность неизвестна"
E-домен
* Домен активных суррогатов
PER-домен
* Домен меток категорий
RN-домен
* Домен relname
E-атрибут
Атрибут, определенный на E-домене
RN-атрибут
Атрибут, определенный на RN-домене
PER-атрибут
Метка в графовом отношении
SEP-атрибут
Отделение одного узла от другого
SUB-атрибут
Подчиненный в графовом отношении
SUP-атрибут
Главенствующий в графовом отношении
CATR-отношение
%* Список всех имен_отношений и соответствующих
типов_отношений
CATRA-
%* Отношения и их атрибуты
отношение
CATA-отношение %* Список всех атрибутов
CATADотношение
%* Атрибуты и их домены
CATD-отношение %* Список всех доменов
CATC-отношение %* Список всех категорий
CATRCотношение
%* Категории и их типы сущностей-вершины
E-отношение
Список суррогатов для всех заданных типов сущностей
P-отношение
Непосредственные свойства типа сущностей
PG-отношение
* Граф свойств
CG-отношение
* Граф характеристик
AG-отношение
* Граф ассоциаций
UGI-отношение
* Граф безусловного обобщения по включению
AGI-отношение
* Граф альтернативного обобщения по включению
US-отношение
* Граф безусловных преемников
AS-отношение
* Граф альтернативных преемников
UP-отношение
* Граф безусловных предшественников
AP-отношение
* Граф альтернативных предшественников
KG-отношение
* Принадлежность типам агрегатов покрытия
Примечание: Для каждого типа, помеченного звездочкой, в любой базе данных RM/T
имеется только один объект. Для отношений, помеченных символом "%", имеются
двойники – E-отношений, не перечисленные здесь явно.
Таблица II
Операция
Область определения аргументов Область значений результата
NOTE
Отношение
Relname
TAG
Отношение
Отношение
DENOTE
Relname
Отношение
Множество relname
Множество отношений
COMPRESS Множество отношений
Отношение
APPLY
Множество отношений
Множество отношений
PATT
Отношение
Множество отношений
PTUPLE
Отношение
Множество отношений
PREL
Отношение
Множество отношений
SETREL
Отношение (Отношения)
Множество отношений
OPEN
Графовое отношение
Графовое отношение
CLOSE
Графовое отношение
Графовое отношение
STEP
Графовое отношение
Графовое отношение
Множества n-арных отношений были введены как дополнительный тип объектов для
алгебраических манипуляций. К этим множествам более высокого порядка применимы
традиционные теоретико-множественные операторы UNION, INTERSECTION и SET
DIFFERENCE. К ним могут быть применены также различные другие операторы
(например OUTER UNION). Чтобы создавать эти множества отношений, манипулировать
ими и манипулировать графовыми отношениями, были введены дополнительные
операции (см. Таблицу II).
17. ЗАКЛЮЧЕНИЕ
Мы попытаемся определить расширенную реляционную модель, которая позволяет
удерживать больше смысла данных. Смысловые единицы информации, более крупные,
чем отдельные n-арные отношения, были введены таким образом, что, по-видимому, все
конкурирующие семантические подходы, где-либо описанные, могут быть представлены
здесь или транслированы в эту среду. Результат представляет собой модель с более
богатым многообразием объектов, чем первоначальная реляционная модель, с
дополнительными правилами вставки-удаления-обновления, а также с некоторыми
дополнительными операциями, которые делают эту алгебру более мощной (и, к
сожалению, более сложной). Мы повторяем, что включение в модель более крупных
смысловых единиц – это задача, которая никогда не будет завершена, и, следовательно,
эта модель является лишь несколько более семантичной, чем предыдущая.
Модель данных, которая может использоваться как:


концептуальный каркас для определения широкого класса форматированных баз
данных;
посредник между хранимыми представлениями и "взглядами" пользователей;
должна, вероятно, обладать, по крайней мере, четырьмя группами возможностей:
табличными возможностями (например, расширениями отношений реляционной модели);
теоретико-множественными возможностями (например, реляционной алгеброй);
возможностями дедуктивных цепочек формул (например, логикой предикатов в
современной нотации); теоретико-графовыми возможностями (например, возможностью
использовать помеченные ориентированные гиперграфы для отношений). Табличная
форма требуется для показа и/или модификации экстенсиональных данных (особенно для
тех пользователей, которых необходимо оградить от подробностей организации знаний,
содержащих экстенсиональные данные). Теоретико-множественные возможности
требуются для поддержки поиска без навигации. Возможности логики предикатов
позволяют использовать выражение интенсиональных знаний в форме цепочек формул и
применять общие методы вывода. Графические возможности позволяют рисовать
психологически привлекательные изображения для специального класса пользователей,
которые проектируют базу данных, обеспечивают поддержку знаний или разрабатывают
специализированные методы вывода.
Заметим, что в данной работе представлены только табличные и теоретикомножественные аспекты RM/T. Ясно, что имеется несколько видов графов, которые могут
быть ассоциированы с RM/T. Помимо возможности представления n-арных отношений
гиперграфами, для каждого графового отношения имеется непосредственное
представление в виде ориентированного графа (в некоторых случаях – с помеченными
ребрами).
Исследуются также другие расширения реляционной модели, например, дополнительная
поддержка для временного измерения и исторических данных. Есть надежда, что RM/T
может быть развита в универсальную реструктурирующую алгебру для баз данных.
Следует, однако, напомнить, что расширения в RM/T предназначены, главным образом,
для не слишком широкого круга, состоящего из проектировщиков баз данных и
изощренных пользователей. Большинство же пользователей, вероятно, предпочтет
простоту базисной реляционной модели.
БЛАГОДАРНОСТИ
Автор в значительной мере заимствовал идеи, опубликованные Смит (Smith) и Смитом
(Smith); Лакруа (LaCroix) и Пироттом (Pirotte); Холлом (Hall), Оулеттом (Owlett) и Тоддом
(Todd); Шмидом (Schmid) и Свенсоном (Swenson); Хаммером (Hammer) и Маклеодом
(McLeod). Написать эту статью побудили многочисленные высказывания о полезности
такой работы, которые содержатся в Трудах конференций IFIP TC-2, состоявшихся в 1976
и 1977 годах [24, 25]. Автор благодарен Вильяму Армстронгу (William Armstrong),
Дональду Камерону (Donald Cameron), Кристоферу Дейту (Christopher Date), Рональду
Фейгину (Ronald Fagin), Джону Сова (John Sowa), Стефану Тодду (Stephen Todd) и
рецензентам за полезные замечания по первоначальному варианту этой статьи.
ЛИТЕРАТУРА
Замечание: Источники [1, 7, 21, 36] не цитируются в тексте статьи.
1. Aho, A.H., Beeri, C., and Ullman, J. The theory of joins in relational databases. Proc. 19th
IEEE Symp. on Foundation of Computer Sci., 1977.
2. Astrahan, M.M., et al. System R: Relational approach to database management. ACM Trans.
Database Syst. 1, 2 (June 1976), 97-137.
3. Beeri, C., Bernstein, P., and Goodman, N. A sofisticate"s introduction to database
normalization theory. Proc.Int. Conf. on Very Large Data Bases, Berlin, Sept. 1978, pp. 113124.
4. Cadiou, J.M. On semantic issues in the relational model of date. Proc. 5th Symp. on Math.
Foundation of Computer Sci., 1976, Gdansk, Poland, Lecture Notes in Computer Science 45,
Springer-Verlag, pp. 23-38.
5. Codd, E.F. A relational model of data for large shared data banks. Comm. ACM 13,6 (June
1970), 377-387. Есть русск. пер.: Е.Ф.Кодд. Реляционная модель данных для больших
совместно используемых банков данных. СУБД, # 1, 1995. – с. 145-160.
6. Codd, E.F. Further normalization of the database relational model. In Database Systems,
Courant Computer Science Symposia 6, R.Rustin, Ed., Prentice-Hall, Englewood Cliffs, N.Y.,
1971, pp. 65-98.
7. Codd, E.F. Recent investigations in relational database systems. Information Processing 74,
North-Holland Pub.Co., Amsterdam, 1974, pp. 1017-1021.
8. Codd, E.F. Understanding relations (Unstalment # .7). FDT (Bulletin of ACM SIGMOD) 7, 34 (Dec. 1975), 23-28.
9. Codd, E.F. Extending the database relational model. Invited talk presented at the Australian
Computer Sci. Conf., Hobart, Tasmania, Feb.1-2, 1979.
10. Fagin, R. Multivalued dependencies and a new normal form for relational databases. ACM
Trans. Database Syst., 2, 3 (Sept.1977), 262-278.
11. Fagin, R. Normal forms and relational database operators. Proc. ACM SIGMOD Conf.,
Boston, Mass., May 30 – June 1, 1979.
12. Falkenberg, E., Concepts for modelling information. In Modelling in Data Base Management
Systems, G.M.Nijssen, Ed., North-Holland Pub. Co., Amsterdam, 1976.
13. Goldstein, R.C., and Strnad, A.L. The MACAIMS data management system. Proc. 1970 ACM
SIGFIDET Workshop on data Description and Access, Houston, Tex., Nov. 15-16, 1970.
14. Hall, P., Owlett, J., and Todd, S. Relations and Entities. In Modelling in Data Base
Management Systems, G.M.Nijssen, Ed., North-Holland Pub. Co., Amsterdam, 1976.
15. Hammer, M.M. and McLeod, D.J. The semantic data model: A modelling mechanism for
database applications. Proc. ACM SIGMOD Conf., Austin, Tex., May 31 – June 2, 1978.
16. Heath, I.J. Private communication, April 1971.
17. Hemphill, L.G., and Rhyne, J.R. A model for knowledge representation in natural language
query systems. IBM Res. Rep. RJ2304, IBM Res. Lab., San Jose, Calif., Sept. 1978.
18. Hendrix, G.G. Encoding knowledge in partitioned networks. Tech. Note 164, SRI
International, Menlo Park, Calif., June 1978.
19. Jordan, D.E. Implementing production systems with relational data bases. Proc. ACM
Pacific Conf., San Francisco, Calif., April 1975.
20. LaCroix, M., and Pirotte, A. Generalized joins. SIGMOD Record (ACM) 8, 3 (Sept. 1976),
14-15.
21. LaCroix, M., and Pirotte, A. Example queries in relational languages. Tech. Note # 107,
Manufacture Belge de Lampes et de Materiel Electronique, Brussels, Belgium, Jan. 1976,
revised Sept. 1977.
22. Lipski, Jr., W. On semantic issues connected with incomplete information databases. ACM
Trans. Database Syst. 4, 3 (Sept. 1979), 268-296.
23. Merrett, T.H. Relations as programming language elements. Inform. Processing Lett., 6, 1
(Feb. 1977), 29-33.
24. Nijssen, G.M., Ed., Modelling in Database Management Systems. North-Holland Pub. Co.,
Amsterdam, 1976.
25. Nijssen, G.M., Ed., Architecture and Models in Database Management Systems. NorthHolland Pub. Co., Amsterdam, 1977.
26. Pirotte, A. The entity-property-association model: An information-oriented database model.
Rep. R343, Manufacture Belge de Lampes et de Materiel Electronique, Brussels, Belgium,
March 1977.
27. Pirotte, A. Linguistic aspects of high-level relational languages. Rep. R367, Manufacture
Belge de Lampes et de Materiel Electronique, Brussels, Belgium, Jan. 1978.
28. Reiter, R. On closed world data bases. In Logic and Data Bases. H. Gallaire and J. Minker,
Eds., Plenum Press, new York, 1978.
29. Rissanen, J. Independent components of relations. ACM Trans. Database Syst. 2, 4 (Dec.
1977), 317-325.
30. Rissanen, J. Theory of relations for databases – a tutorial survey. proc. Symp. on Math.
Foundations of Computer Sci., 1978, Zacopane, Poland, Lecture Notes in Computer Science,
Springer-Verlag, pp. 536-551.
31. Roussopoulos, N., and Mylopoulos, J. Using semantic networks for database management.
Proc. Int. Conf. on Very Large Databases, Sept. 1975.
32. Schmid, H.A., and Swenson, J.R. On the semantics of the relational data model. Proc. ACM
SIGMOD Conf. on Management of data, San Jose, Calif., May 1975, pp.211-223.
33. Smith, J.M., and Smith, D.C.P. Database abstractions: Aggregation. Comm. ACM 20, 6
(June 1977), 405-413.
34. Smith, J.M., and Smith, D.C.P. Database abstractions: Aggregation and Generalization.
ACM Trans. Database Syst. 2, 2 (June 1977), 105-133. Есть русск. перевод: Д.М.Смит и
Д.К.Смит. Абстракции баз данных: Агрегация и обобщение. СУБД, # 2, 1996. – с. 141-160.
35. Sowa, J.F. Conceptual structures for a database interface. IBM J. Res. Develop. 20, 4 (July
1976), 336-357.
36. Sowa, J.F. Definitional mechanisms for conceptual graphs. Proc. Int. Workshop on Graph
Grammars, Bad Honnef, west Germany, Nov. 1978.
37. Stonebraker, M., Wong, E., Kreps, P., and Held, G. The design and implementation of
INGRES. ACM Trans. Database Syst. 1, 3 (Sept. 1976), 189-222.
38. Todd, S.J.P. The Peterlee relational test vehicle. IBM Syst. J. 15, 4 (1976), 285-308.
39. Ullman, J.D. Theory of Relational Databases. To appear.
40. Vassiliou, Y. Null values in data base management: A denotational semantics approach.
Proc. ACM SIGMOD 1979 Int. Conf. on Management of Data, Boston, Mass., May 30-June 1,
1979.
41. Whitney, V.K.M. RDMS: A relational data management system. Proc. Fourth Int. Symp. on
Computer and Inform. Sci., Miami Beach, Fla., Dec. 14-16, 1972, Plenum Press, New York.
42. Wiederhold, G., Database Design. McGraw-Hill, New York, 1977.
43. Wong, H.K.T., and Mylopoulos, J. Two views of data semantics: A survey of data models in
artificial intelligence and database management. Informatics 15, 3 (Oct. 1977), 344-383.
44. Zaniolo, C. Analysis and design of relation schemata for database systems. Tech. Rep.
UCLA-ENG-7669, Ph.D. Th., Universitet of California at Los Angeles, Los Angeles, Calif., July
1976.
45. Zaniolo, C., and Melkanoff, M.A. A formal approach to the definition and design of
conceptual schemas for database systems. To appear in ACM Trans. Database Syst.
46. Zloof, M.M. Query-by-example: A data base language. IBM Syst. J. 16, 4 (1977), 324-343.
Есть русск. перевод.: М.М. Злуф. Query-by_example: язык баз данных. СУБД # 3, 1996. – с.
149-160.
Э.Кодд, вероятно, имел в виду подготавливаемую в то время к печати и вышедшую в
1980 г. монографию Jeffrey D. Ullman: Principles of Database Systems. Stanford University.
Computer Science Press. Есть русск. пер.: Дж. Ульман. Основы систем баз данных. – М.:
Финансы и статистика, 1983. - Прим. пер.
1)
Заметим, что автор, таким образом, отождествляет далее термины
"характеристический (ассоциативный, стержневой) тип сущностей" и "тип
характеристических (ассоциативных, стержневых) сущностей". Поэтому мы будем
использовать обе эти группы терминов. – Прим. пер.
2)
Имеются в виду измерения многомерного
поддерживаемого RM/T. – Прим. пер.
3)
4)
информационного
пространства,
Здесь диграф – ориентированный граф (от англ. digraph=directed graph). – Прим. пер.
Download