Научная статья на тему 'Расширение реляционной алгебры рекурсивными структурами'

Расширение реляционной алгебры рекурсивными структурами Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1760
236
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
реляционная модель данных / база данных / домен / кортеж / рекурсивное отношение / relational data model / database / domain / tuple / recursive relation

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Соколова Вероника Валерьевна, Замятина Оксана Михайловна, Новосельцев Виталий Борисович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Classical relation algebra extension required for providing the possibility of reflecting compound (hierarchical) data sets for wide range of subject fields has been stated. The main notions of Codd algebra, are predetermined for achieving this goal. The relation theory positions significant for further statement are singled out and extended algebra closure is proved.

Текст научной работы на тему «Расширение реляционной алгебры рекурсивными структурами»

УДК 004.89

РАСШИРЕНИЕ РЕЛЯЦИОННОЙ АЛГЕБРЫ РЕКУРСИВНЫМИ СТРУКТУРАМИ

В.В. Соколова, О.М. Замятина, В.Б. Новосельцев

Томский политехнический университет E-mail: [email protected]

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

Ключевые слова:

Реляционная модель данных, база данных, домен, кортеж, рекурсивное отношение.

Key words:

Relational data model, database, domain, tuple, recursive relation.

В настоящее время большинство систем управления базами данных (СУБД) поддерживают реляционный подход, который позволяет отобразить информационную модель предметной области в реляционные отношения [1]. Актуальной темой исследований является отображение предметных областей, содержащих иерархические данные, такие как компании, состоящие из дочерних филиалов, детали, из которых собираются узлы механизмов, в реляционные отношения и их обработка [2]. Для решения данных задач предлагаются различные способы: ввод рекурсивного ключа или дополнительных атрибутов в реляционное отношение [3], обработка иерархий с помощью дополнительных конструкций языка [4]. Каждый из данных способов имеет ограничения в применении. Например, для вывода древовидной структуры с использованием «списка смежных вершин» необходимо точно знать количество уровней вложенности в иерархии. При использовании «метода подмножеств» целостность данных поддерживается триггерами, которые каждый раз перезаписывают список и уровни «предков» узла при его изменении. Метод «вложенного множества» Джо Селко [3] не гарантирует целостность дерева при редактировании его элементов и требует выполнения нескольких запросов для пересчета его левых и правых значений, при этом теряются преимущества «вложенных множеств» для быстрой генерации дерева.

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

Базовые определения и постановка задачи

Зафиксируем сигнатуру: E=<A,D,F>, где А -множество имен сущностей, D - множество имен доменов, F - множество имен функциональных связей над атрибутами. Все множества сигнатуры являются не более чем счетными. Во множестве D зафиксировано непустое конечное подмножество T<^D - имен первичных доменов (предопределенных типов). Отметим, что ряд понятий и терминов прямо заимствованы из теории реляционных баз данных и не обсуждаются детально.

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

Домен характеризуется следующими свойствами:

• имеет уникальное имя (в пределах модели данных);

• определен на некотором простом типе данных или на других доменах;

• может иметь некоторые логические свойства, позволяющие специфицировать его (домена) подмножества;

• имеет конкретную смысловую нагрузку.

При задании конкретной интерпретации I именам доменов (в том числе базовым) сопоставляются конкретизированные типы (множества). Предполагается, что именам базовых доменов при этом сопоставляются традиционные для программирования типы (например, integer, real, char, Boolean и т. д.). Непервичными доменами могут выступать именованные подмножества базовых (например, Namecstring), либо подмножества декартовых произведений ранее определенных доменов (Person-cNamexAgex.Address).

Суммируя сказанное, уточним определение домена следующим образом. Пусть задана интерпретация I, PeT, ReD\T, тогда:

• P|I - домен;

• если R|IcP|I, то R|I - домен;

• если Ri|I (i=1,..., n) - домены, то R0|IcR1|Ix...xRjI -домен.

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

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

Отношением является некоторое подмножество декартова произведения одного или более доменов: Я А А2,..., Ап).

Отношение обладает двумя важными свойствами:

• не содержит совпадающих кортежей;

• порядок кортежей несущественен.

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

Физическим представлением (нерекурсивного) отношения является «плоская» таблица, заголовок которой определяется упорядоченным списком атрибутов, а строки - кортежи - соответствующим образом упорядоченных значений, при этом атрибуты именуют столбцы таблицы. Поэтому иногда говорят «столбец таблицы», имея в виду «интерпретированный атрибут отношения». Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД [4].

Схема домена - это именованное множество пар (имя атрибута, имя домена) вида D(r)=r.(Dl(al),...,Dn(an)), где D, D;eD(/=1,...,n) -имена доменов, г, а,еЛ(г'=1,..., п) - имена атрибутов. В правой части определения г может «проноситься» в скобки на любую глубину, так что r.(Dl(al),-,)^(r.Dl(al),-,)^(Dl(r.al),-,).

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

Кортеж-тип для схемы D из предыдущего определения представляется формой С=<а^ьа^ъ...,а^п> с аналогичными функциями принадлежности. Степень или арность схемы отношения определяется количеством атрибутов п схемы.

Реляционная алгебра представляет собой набор операций, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор / выглядит как функция типа «отношения» с отношениями в качестве аргументов: Я=/(гьг2,...,гп):г0. Реляционная алгебра является замкнутой, поэтому в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу: Я=//1(гп/12,-/1п), /2(г21,Г22,.,Г2п),.). Таким образом, в реляционных выражениях можно использовать вложенные подвыражения сколь угодной глубины.

Согласно [1], набор операций алгебры определяется восемью дефинициями, которые делятся на два класса: теоретико-множественные и специальные реляционные операции. Приведем опре-

деление операции объединения (остальные операции алгебры формулируются аналогично).

Пусть даны два непервичных домена T1cD1 и T2cD2, где D1=D2 синтаксически равны, тогда результатом операции объединения двух отношений является отношение, включающее все кортежи, входящие хотя бы в одно из отношений-операндов. Таким образом, результат объединения это отношение 71i=T1|iUT2|i, где (ад^М^^)). Считается, что совпадающие кортежи элиминируются.

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

Рекурсивным называется объект, частично определяемый с помощью самого себя. Ниже в статье допускается только явная рекурсия в смысле следующего определения: отношение R=(a1:D1,a2:D2,...,a„:D„) является допустимым, если синтаксическое равенство D,=R, определяющее рекурсию, выполняется не более, чем для n-1 доменов. Заметим, что кортеж не может ссылаться на самого себя ни непосредственно, ни опосредованно - это семантическое условие проверяется (и поддерживается) всеми операциями модификации отношений.

Введем определение частного случая реляционного отношения за счет использования рекурсии. Прежде всего, введем понятие основного кортежа (или основы): кортеж-тип C=<a1:D1,a2:D2,...,an:Dn>, где все атрибуты ai попарно различны и специфицированы первичными типами будем называть основным кортежем-типом или основой.

Обобщенным отношением основного отношения R будем называть конечную совокупность регулярных кортежей-значений Cr, определяемых основным кортежем-типом С таблицы R, если:

• кортежи-значения Cr попарно различны;

• каждый кортеж С^ есть m-кратно (m>1) повторенный набор атрибутов-значений <an,a12,...,a1„,<a21,a22,...,a2„,...,<am1,am2,.,am„.>>>, таких что, akeDk (1<k<n) основного кортежа С и никакие два подкортежа <a;1,a;2,...,a;„> и <aj1,aj2,...,ajn> не совпадают при tij;

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

Для обобщенной таблицы R стандартным образом определены ключевой набор К и индексный набор I:

• D(KcD(I) - домен ключей совпадает с доменом индексов;

• KnI=0 - никакой ключ не является индексом, что позволяет избежать бесконечной рекурсии;

• определено отображение M.I^K, причем неподвижной точкой такого транзитивного замыкания M* является пустое значение nil.

Тогда рекурсивным эквисоединением отношения R по отношению R называется операция, результатом которой выступает обобщенное отношение RR, такое что, для каждого её кортежа-значения С^, со-

стоящего более чем из двух кортежей основной таблицы <c1,c2,.,cm>:

• I+(cm)=nil - ссылочный элемент последнего кортежа является пустым;

• I+(ck-1)=K(ck), где k<m - ссылка на непосредственно следующий кортеж определяется функциональной связью.

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

Теорема о замкнутости расширенной алгебры

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

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

Теорема. Рассмотрим рекурсивные отношения R1 и R2. Пусть G=R1uR2 - отношение, полученное в результате объединения. Докажем, что результирующее отношение G удовлетворяет определению рекурсивного отношения, введенному выше. Доказательство.

1. Поскольку R1 и R2 - рекурсивные отношения, то каждая из них состоит из попарно различных кортежей C'r(1<r<n) и C"(1<r<m) соответственно. Тогда по определению операции объединения отношение G будет также состоять из попарно различных кортежей Сг (1<r<k, k<m+n - повторяющиеся кортежи исключаются).

2. Аналогично, в отношении G каждый кортеж есть m-кратно повторенный набор атрибутов-значений <an,a12,...,a1„,<a21,a22,...,a2„,.,<am1,a

m2,...,amk>>>,

таких, что aseDs (1<s<n) основного кортежа С и никакие два подкортежа <a;1,a;2,...,a,k>

и <aj1,aj2,..., ajk> не совпадают при tej.

3. R1 - отношение в смысле нового определения. Следовательно, хотя бы один из атрибутов первого подкортежа имеет значение nil. R2 - также рекурсивное отношение, поэтому, хотя бы один из атрибутов её первого подкортежа имеет значение nil. Тогда отношение G будет также содержать хотя бы один такой подкортеж (по действию операции объединения).

4. R1 - рекурсивное отношение, следовательно, оно содержит ключевой набор К' и индексный набор I, такие что D(K)=D(I) и K'nI'=0. R2 -

СПИСОК ЛИТЕРАТУРЫ

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

2. Дейт К.Дж., Дарвен Х. Основы будущих систем баз данных. Третий манифест, 2-е изд. - Пер. с англ. - М.: Янус-К, 2004. -656 с.

3. Celko J. Trees in SQL. Some answers to some common questions about SQL trees and hierarchies // Intelligent enterprise magazine.

также переопределённое отношение, поэтому также содержит ключевой набор К» и индексный набор I", такие что D(K')=D(I') и K"nI"=0. Из требования совместимости отношений R1 и R2 по объединению и действию операции объединения вытекает, что D(K)=D(I) и KnI=0, где К=К'иК" I=I'uI".

5. R1 - отношение в смысле нового определения,

следовательно, существует отображение M'.I'^K', причем неподвижной точкой такого транзитивного замыкания M'* является значение nil. R2 - рекурсивное отношение, следовательно, существует отображение M":I"^K", причем неподвижной точкой такого транзитивного замыкания M"* является значение nil. В отношении G можно определить отображение M.I^K, которое действует по правилу

M(i)=M'(i) при ieI'и M (i)=M"(i) при ieI" Транзитивное замыкание M* будет иметь неподвижные точки, значение которых nil.

6. Для каждого кортежа-значения Q отношения G, состоящего более чем из двух кортежей основной таблицы <c1,c2,.,cm> будут выполняться условия I+(cm)=nil и I+(ck-1)=K(ck), k<m.

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

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

Заключение

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

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

2010. URL: http://www.intelligententerprise.com/001020/cel-ko.jhtml?_requestid=1266295 (дата обращения: 01.10.2010).

4. Кайт Т. Oracle для профессионалов. Кн. 1. Архитектура и основные особенности. - Пер. с англ. - М.: DiaSoft, 2003. -1427 с.

Поступила 07.10.2010 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.