Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2009 г.

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

Э. Ф. Кодд
Перевод: М.Р. Когаловский

Назад Содержание Вперёд

4. ОБОЗНАЧЕНИЕ СУЩНОСТЕЙ

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

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

Эти трудности имеют важное следствие – эквисоединение на общих значениях ключей может не давать того же результата, что и соединение на общих сущностях. Решение этой проблемы, предложенное частично в [4] и в более полном виде в [14], сводится к тому, чтобы ввести домены сущностей, которые содержат назначаемые системой суррогаты. Пользователи базы данных могут заставить систему сгенерировать или удалить некоторый суррогат, но они не имеют контроля над значением суррогата, и это значение им даже не демонстрируется.

Суррогаты ведут себя так, как будто у каждой сущности (независимо от типа) имеется свой собственный неизменный суррогат, уникальный во всей базе данных. Фактически, если взглянуть глубже, таким суррогатам, вероятно, придется изменяться (например, когда две ранее независимых базы данных объединяются в одну), однако всегда сохраняется следующее свойство: в реляционной модели два суррогата являются равными тогда и только тогда, когда они обозначают одну и ту же сущность в воспринимаемом мире сущностей. Заметим, что система создала бы для двух сущностей, вводимых пользователями, различные суррогаты, что, по существу, предполагает различие этих сущностей. Специальная объединяющая (coalescing) команда позволяет пользователю сказать системе, что два объекта, которые ранее считались различными, на самом деле являются одним и тем же объектом.

В любой базе данных, основанной на RM/T, один из основных доменов служит источником всех суррогатов. Он называется E-доменом. Все атрибуты, определенные на E-домене, называются E-атрибутами. Для того чтобы можно было легко распознавать такие атрибуты, примем соглашение, что им даются имена заканчивающиеся специальным символом "".

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

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

5. ТИПЫ СУЩНОСТЕЙ

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

В любой базе данных RM/T для каждого типа сущности имеется некоторое унарное отношение (называемое E-отношением). Принято давать этому отношению такое же имя, как и у типа сущности, который оно представляет, в то время как имя его единственного атрибута образуется из имени отношения путем добавления к нему в конце символа "". Такому атрибуту даются также дополнительные имена (псевдонимы), если соответствующий тип сущности является подтипом других типов сущности. В таком случае имеется один псевдоним для каждого типа суперсущности, и этот псевдоним состоит из имени отношения этого супертипа, за которым следует символ "".

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

Вероятность измененния типа или типов сущности означает, что мы должны различать две цели удаления суррогата сущности из E-отношения:

  1. полное удаление сущности из базы данных, что означает удаление всех тех кортежей, в которых ее суррогат появляется в роли уникального идентификатора кортежа, и замещение всех других вхождений специальным суррогатом E-null, который означает "сущность неизвестна" [26];
  2. динамическая утрата одного типа для сущности, сопровождающаяся "выживанием" некоторого другого типа для той же самой сущности, что означает:
    1. удаление ее суррогата из E-отношения для этого типа и из E-отношений некоторых других типов, подразумеваемых утрачиваемым типом, но не подразумеваемых остающимися типами – это станет ясно позже;
    2. и, кроме того, удаление соответствующих кортежей и замена суррогатов, как это указывалось в (1), за исключением тех, которые ассоциируются с данной сущностью в оставшихся ее типах.

Правило 3 (целостность сущностей в RM/T): В соответствии с основными правилами для суррогатов, для E-отношений допустимы вставки и удаления, но не обновления. Согласно правилу 1 для базисной реляционной модели, в E-отношениях не допускаются неопределенные значения.

6. КЛАССИФИКАЦИЯ СУЩНОСТЕЙ И АССОЦИАЦИЙ

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

  1. сущности и типы, выполняющие вспомогательную роль в описании сущностей некоторого другого типа; такие сущности и их типы называются характеристическими (characteristic);;
  2. сущности и типы, выполняющие вспомогательную роль в обеспечении взаимосвязей сущностей других типов; такие сущности и их типы называются ассоциативными (associative);
  3. сущности и типы, не выполняющие никакой из указанных выше ролей; такие сущности и их типы называются стержневыми (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-отношении.

Назад Содержание Вперёд

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...