Научная статья на тему 'Операторы темпорального расширения реляционной модели данных'

Операторы темпорального расширения реляционной модели данных Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Полухин А. Л.

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

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

Operators of relational data model temporal extension

Special extension of relational data model, intended for temporal data support, is considered. Extension is based on a time dimension concept and a time label concept which is included, as pair (т, ц) where r an integer (time value), and /z time dimension. Time labels of various dimensions are various data types. Further concepts of time intervals, calendars and temporal relations are introduced. In the basic part, the model is supplemented with operators in view of the given approach.

Текст научной работы на тему «Операторы темпорального расширения реляционной модели данных»

УДК 519.68:004.652 А. Л. Полу хин

Вестник СПбГУ. Сер. 10, 2006, вып. 1

ОПЕРАТОРЫ ТЕМПОРАЛЬНОГО РАСШИРЕНИЯ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ

1. Введение. В настоящее время среди созданных баз данных (БД) доминируют БД, построенные на реляционной модели. Эта модель наиболее распространена и универсальна. Однако во многих прикладных'областях, когда требуется учитывать специфику хранимых данных, требуется другая модель, являющаяся альтернативой или расширением реляционной. Предлагаемая нами модель базируется на реляционной, дополненной операторами для работы с упорядоченными данными [1]. Кроме того, поддержка темпоральных данных введена, согласно подходу, выбранному в [2].

Вводим два новых семейства типов данных: для описания меток времени и интервалов времени. Понятие метки времени было введено как пара (г, /х), где т - целое число (значение времени), р, - размерность времени. Метки времени различных размерностей образуют разные типы данных, т. е. к каждому типу данных относятся метки времени строго одной и той же размерности. Например, возможны типы данных «метки времени размерности секунды», «метки времени размерности кварталы» и т. д. Интервалом времени ([тн,тк] где тн ^тк, а (т#,/х) и (тк,р) - метки времени, будем называть множество меток времени {(г, р) : г# ^ г ^ тк}\ темпоральным отношением - отношение, в котором имеется хотя бы один атрибут одного из типов меток времени или интервалов времени. Множество меток времени одной размерности назовем календарем.

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

2. Операторы задания элементов темпорального расширения. 2.1. Операторы для задания размерностей времени. Введем операторы для задания новых размерностей времени, дополняющие набор операторов работы [3].

Отношение «является частью» при определении новых размерностей времени

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

надлежащему такому подмножеству, ставит в соответствие значение времени размерности р, которое является номером этого подмножества.

В данном случае полностью обуславливается такими свойствами:

• набором подмножеств множества значений времени размерности г/;

• нумерацией этих подмножеств.

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

* © А. Л. Полухин, 2006

Оператор группировки. Он имеет следующий вид:

group (tv, Тц, Г},Р!, р2,..., Рп) ■

Множество значений времени Т (rj) разбивается на непересекающиеся интервалы Pi, такие, что один из них содержит р\ последовательных элементов множества Т (г]), следующий - р2 элементов, следующий - элементов и т. д. После интервала, состоящего из рп элементов, снова идет интервал, включающий рг элементов, и т. д. Причем интервал с номером начинается со значения тп. Строго говоря,

ТПП~\-Ти

т„ +m^2pj, rv + m J^pj + pi - 1

з=i

j=i

mn+Tu+1 —

tv +m1^2pj +pi, tv + m^pj +pi +p2 - 1

j=i j=i

um+T.+n-1

n

tv + m pj + pi + ... + pn-i=i

Tr, + m Y^PJ + Pi + ■ • -Рп ~ 1

j=i

ГК

где m - произвольное целое число. При этом требуется Pi ф 0, т. е. пустые множества в разбиение множества Т (г/) не включаются.

Такой набор пронумерованных подмножеств множества Т (rj) определяет отношение «является частью» Результатом оператора group (rv, т^, г), pi, Р2, ■ ■., рп) является

размерность ц = (Fv^^ (Т (г/)), т/, F

Пример 1. Часы = group (1,1, минуты, 60).

Оператор выборки по шаблону. Пусть задана размерность г] и шкала pi : ¡12 '• ••• : Цп- Пусть также ¡лп <! V «агрегируется в» или ¡хп -< rj «точнее чем» [[4]]. В данном случае, если запись (ri : тг : ... : тп, Т]) является представлением некоторой метки времени размерности г], то она однозначно определяет эту метку времени.

С помощью записи вида (т\ : 72 : ... :Tn,rj), где Тп С N, будем задавать множество всевозможных меток времени, имеющих по шкале jUi : ^2 цп представление (п : 7*2 : ... : тп, rj) такое, что тп € Тп. Например, при использовании шкалы годъг.месяцы запись (1998 : {1,3,5}, месяцы) задает три метки времени, соответствующие январю, марту и маю 1998 г.

С помощью записи следующего вида (которую будем называть шаблоном): № : Т2 : ... : (ТЯ1,ТПя,..., ТПк), г)), где Г< С N и Tnj С N (t = 1,... ,п - 1, j = 1,..., к), зададим набор множеств меток времени. Каждое из множеств меток времени данного набора определяется такой записью: (тх : тг : ... : Tnj ,r]), г, е Tj, г = 1,..., п — 1; 1 ^ j ^ к. Так, при использовании шкалы годы:месяцы:сутки запись ({1998} : {1,2} : ({1,2,3,4, 5} , {6,7}), сутки) задает четыре множества меток времени, объединяющие первые пять и шестой с седьмым дни января и февраля 1998 г.

Будем использовать следующие способы задания множеств Tf.

• прямое перечисление входящих в них элементов и интервалов (например, {1,3, [5, 14], 17}); при этом могут применяться арифметические выражения с использованием обозначения last;

• символ «*» введем для обозначения множества всевозможных натуральных чисел.

Аналогичные обозначения используются и для множеств Tnj. Так, для шкалы годы: месяцы: сутки шаблон (* : {3} : ({last —1}), сутки) задает набор множеств меток времени, каждое из которых состоит из одного элемента - предпоследнего дня марта каждого года.

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

pattern (pi : р2 : ... : рп,П : т2 : ... : тп, С).

Шаблон С задает набор непересекающихся множеств меток времени размерности г/. Эти множества последовательно нумеруются, причем первый индекс получает множество, содержащее метку времени (ri : т2 : ... : rn,rj). Такой набор пронумерованных множеств определяет отношение «является частью» F.Результатом оператора является размерность р = (Fv(Т (т?))

Пример 2. Размерность времени вторники легко получается на базе размерности сутки с помощью оператора pattern следующим образом:

вторники = pattern (недели : сутки, 1 : 2, * : ({2}), сутки).

Первый вторник соответствует в данном примере второму дню первой недели. При использовании оператора pattern важно контролировать соблюдение следующих условий:

• шаблон С должен задавать набор непересекающихся множеств меток времени, потому надо проверять, что множества ТП1,ТП2,... ,ТПк попарно не пересекаются;

• представление любой метки времени размерности rj по шкале pi : р2 : ... : рп однозначно определяет данную метку времени; для этого достаточно выполнения условия pn<rj или Г).

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

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

Определение 1. Пусть размерность времени р задана через размерность г} с помощью отношения «является частью» F'п->ц. Будем говорить, что р периодична относительно rj, если выполнено следующее условие:

ЗР^Рг, е N : (*■„_>„ (п) = т2) & ((п +п-РТ1)еТ (ту)) Fv->n (т1+п-Рг>)=т2 + п- Р„,

где n - произвольное целое число. Числа Р^ и Рп называются в данном случае периодами.

В большинстве научных работ, посвященных темпоральным БД, полным считается такой набор операторов задания размерностей времени, с помощью которого можно определить любые периодические размерности времени (см., например, [3], [4]).

Нетрудно видеть, что операторы group и pattern вместе образуют полный набор. Действительно, если размерность ц периодична относительно г/ с периодами и Р^, то ее можно задать так:

в = group (TrjjT^jrijPri); ц = pattern (в \ г),тх : т2,* : (ТП1,ТП2,..., ТПк) ,rj),

т. е. сначала с использованием оператора group создается промежуточная размерность в, каждая метка времени которой соответствует периоду т], а затем с помощью оператора pattern простым перечислением задается соответствие меток времени размерности г) меткам времени размерности ц внутри одного периода Pv (это можно сделать ввиду конечности периода).

Также нетрудно видеть, что введенный оператор pattern обеспечивает функциональность операторов combine, select-down и select-up работы [3].

Набор операторов group, pattern является полным, однако задание некоторых реальных размерностей времени с их помощью представляется весьма громоздким в связи со слишком большой для полного перечисления величиной периода. Так, для размерностей месяцы и сутки периоды составляют примерно 4800 и 146 ООО соответственно (с учетом високосных лет). Поэтому для удобства задания размерностей времени ниже вводятся дополнительные операторы.

Оператор группировки с исключениями. Описание исключений при группировке размерностей времени возможно при помощи оператора alter работы [3]. Однако он позволяет описывать лишь периодически встречающиеся исключения, а потому данным оператором пользоваться неудобно. Например, для задания размерности сутки через размерность часы с учетом перехода на летнее/зимнее время получаем, что каждый день состоит из 24 ч, с двумя исключениями в году - при переходе на летнее время день состоит из 23 ч, а при переходе на зимнее - из 25. При этом за счет переменного числа дней в году такие исключения сложно описать с помощью явного указания периода их возникновения. Потому для их описания мы предлагаем использовать оператор group-ex следующего вида:

где Сj, j — 1,... - календари, содержащие метки времени размерности г]. Результат данного оператора строится так же, как и для оператора group (гч, r],pi,р2,. ■ ■ ,рп), однако к набору интервалов

group-ex (rv, тм, rj,pi,... ,рп, ex (Ci, cfa'/i) ,...,ех (Cm,difm)),

п

п

п

п

рщп+ти+1 = tr, + m^pj + pi, tv + m^tpj + pi + p2 - 1 ,

3=1

п

rn +m^2Pj +Pi + -..+Рп-1,

n

тп +pi + . ,.pn - 1

i=i

применяются исключения: каждый из интервалов, содержащий одну из меток времени календаря Cj, расширяется или сужается (в зависимости от знака difj) на \difj\ элементов с правой стороны. Все последующие интервалы сдвигаются на соответствующее число элементов. После этого для каждого интервала берется его пересечение с Г (ту).

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

сутки-летпн = group.ex (1,1, часы, 24, ex {pattern (годы : месяцы : воскресенья : часы, * : {4} : {last} : {3}, часы), — 1), ex (pattern (годы : месяцы : воскресенья : часы, * : {10} : {last} : {3}, часы), +1)) •

Размерность сутпки-летн получается при помощи группировки размерности часы по 24 и применением исключений - каждая группа, содержащая третий час ночи в последнее воскресенье апреля, уменьшается на 1 ч, а группа, содержащая третий час ночи в последнее воскресенье октября, увеличивается на 1 ч.

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

group-cal {тп,т^,С),

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

Данный набор пронумерованных подмножеств множества Т (ту) определяет отношение «является частью»: F^^. Результатом оператора group-cal (тг/. rít, С) является размерность р = (i^^^ (Т (ту)), ту, F

Пример 4. Пусть отчетный месяц начинается 3-го числа каждого календарного месяца и заканчивается 2-го числа следующего месяца. Тогда размерность отчет-ные-мес можно задать так:

отчетные^мес = = group -cal (1,1, сутки, pattern (месяцы : сутки, * : {3} , сутки)).

2.2. Операторы для задания календарей. Оператор для создания циклических календарей имеет вид cycle (т0,period, ту), где то - целое число, period -натуральное число, ту - размерность времени. Результатом оператора является календарь, состоящий из меток времени размерности ту, имеющих вид (т0 + п • period, ту), где п - произвольное целое число. Если period — 1, то результат оператора cycle будет содержать все метки времени размерности ту. Обозначим такой календарь следующим образом: all (ту).

Ртп+Тр+п— 1 —

Оператор ограничения имеет вид bound(C,tx,t2), где С - некоторый календарь, a ii, ¿2 ~ метки времени той же размерности, что и метки времени календаря С. Результатом оператора является календарь, состоящий из меток времени t € С, удовлетворяющих условию t\ ^ t ^ t2.

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

Сх Р|С2 = {t 6 ¿7i : 3t' € C2,t С t'}.

Другим вариантом оператора пересечения (будем называть его нестрогим) является следующий:

CiP|*C2 = {i € Сх : 31' € C2>if|i' ф 0}.

Различие операторов Р| и можно проиллюстрировать таким образом: календарь all (недели) П {(2003, годы)} содержит все недели, полностью содержащиеся в 2003 г.. а календарь all (недели) f)* {(2003, годы)} - все недели, хотя бы частично содержащиеся в 2003 г. Очевидно, что если Сх и С2 содержат метки времени одной и той же размерности, то Сх f] С2 = Сх П* С2, и оператор пересечения сводится к обычному пересечению множеств.

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

Пусть задана размерность ту и шкала /¿i : ;и2 : ... : и пусть цп < т) или рп г]. Результатом оператора pattern (цх : ... : i : ... :Tn,rj), где Tj С N (г = 1,..., п), является календарь, состоящий из всех меток времени размерности г/ таких, что каждая из них по шкале цх \ ц2 цп имеет представление (тх :... : rn,rj) такое, что т, €

Tj, г — 1,..., п. При этом для задания множеств Tj (г = 1,... ,п) используются те же обозначения, что и в операторе pattern для задания размерностей времени.

Пример 5. Оператор pattern позволяет легко описывать календари, встречающиеся в реальной жизни. Например, календарь «последняя пятница каждого месяца* размерности сутки задается таким образом:

pattern (месяцы : пятницы, * : {last} , сутки).

Календарь, содержащий все 31-е числа месяцев, можно задать так: pattern (месяцы : сутки, * : {31} ,сутки).

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

Оператор расширения имеет вид extend (С, ±п), где С - календарь, п - натуральное число. Результатом оператора является календарь С", определяемый следующие образом:

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

С' — {(т', /i) : 3 (г, /i) Е С,т' Е [т — п; г]} ,

t

если п указано со знаком «минус», или

С' = {(т',р):3(т,р)еС,т' е[т-,т + п}},

если п дано со знаком «плюс».

Пример 6. Пусть календарь С содержит дни, в которые происходили аварии на некотором производственном предприятии. Если мы хотим получить показания датчиков за трехдневный период перед каждой аварией, то необходимо построить календарь, содержащий интересующие нас дни. Это можно сделать с помощью оператора расширения: extend (С,— 3).

3. Операторы работы с темпоральным расширением. Для темпоральных отношений вводятся операторы PACK и UNPACK (ниже используются обозначения заголовков отношений и кортежей из [5]). Для темпорального отношения R, с заголовком (Т, Xi,... , Хп), где атрибут Т - интервал времени, результатом оператора UNPACK (R,T) является темпоральное отношение с заголовком (Т, Х\,..., Хп), в котором атрибут Т - метка времени той же размерности, что и интервал Т исходного отношения. Результирующее отношение для каждого кортежа (Г : г, Xi : х\,..., Хп : хп) исходного отношения содержит всевозможные кортежи (Г : р, Xi : xi,..., Хп : хп), такие, что р G г. Для отношения R результат оператора UNPACK (R,T) будем называть развернутой формой. Если же в исходном отношении R атрибут Т - метка времени, то будем считать, что UNPACK (R, Т) = R.

Для темпорального отношения R с заголовком (Т, Xi,... ,Хп), в котором атрибут Т - метка или интервал времени, результатом оператора PACK (R, Т) является темпоральное отношение с заголовком (Т, Xi,... ,Хп), где атрибут Т - интервал времени той же размерности, что и атрибут Т исходного отношения. Результирующим отношением становится минимальное (в смысле мощности отношения) из таких отношений R', что UNPACK (R',T) = UNPACK (R,T). Для отношения R результат оператора PACK (R, Т) будем называть свернутой формой.

Определение 2. Пусть R - темпоральное отношение и R! — UNPACK (R,T). Если значение «.трибута Т в отношении R! уникально (т. е. в отношении R' не может быть двух различных кортежей с совпадающими значениями данного атрибута), то R называется хронологической последовательностью. При этом атрибут Т отношения R будем называть календарным, а множество значений, которые принимает атрибут Т в отношении R', - календарем хронологической последовательности.

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

Календарь хронологической последовательности является множеством меток времени одной и той же размерности, а значит, является календарем. В силу этого, к операторам задания календарей, введенным в п. 2.2, можно добавить еще один - оператор задания календаря на основе хронологической последовательности. Пусть R -хронологическая последовательность, Т - календарный атрибут. Результатом оператора calendar (R) является календарь, состоящий из всех меток времени - значений атрибута Т в отношении UNPACK (R, Т).

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

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

1) требуется иметь возможность в критерии выборки задавать метки времени, отсут-

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

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

Пусть R - хронологическая последовательность с заголовком (Т : Tq,X\ : Ti,..., Хп : Тп), где Т - ее календарный атрибут размерности /л, и пусть С - некоторый календарь размерности ц. Оператор выборки по времени (а1) имеет такой вид: а1 (R, С).

Результатом оператора является хронологическая последовательность R1 с таким же заголовком, как у последовательности UNPACK (R,T), содержащая все кортежи (Т : t, Х\ : xi,..., Хп : хп) отношения UNPACK (R, Т), такие, что t Е С, а также, если указана функция интерполяции, все кортежи (Т : t,Xi : х\,..., Хп : хп), такие, что t Е С, t <£ calendar (Я, Т) и F (R,t) = (xi,..., хп).

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

Пусть R - хронологическая последовательность с заголовком (Т :ТЦ,Хi : Т\,..., Хп : Тп), где Т - ее календарный атрибут размерности /л, и пусть С - некоторый календарь размерности г/, в котором г] отлична от ц. Оператор темпорального агрегирования (7г) имеет следующий вид:

У (R,C,Farр),

здесь Farp - агрегатная функция, для любой подпоследовательности кортежей последовательности UNPACK (R,T) возвращающая единственное значение из множества Т\ х Т2 х ... х Тп. Результатом данного оператора является хронологическая последовательность с заголовком (Т : T^Xi : Т\,... ,Хп : Тп), где Tv - тип меток времени размерности г/. Результирующая хронологическая последовательность состоит из всех кортежей вида (Т :t,X 1 : xi,..., Хп : хп), таких, что t Е С, а (х\, х2, ■ ■., хп) есть результат применения функции Farp к подпоследовательности кортежей последовательности UNPACK (R,T), метки времени которых входят в метку времени t.

Соединение по времени. Для его выполнения используются отношения сравнения меток времени.

Пусть R\ - хронологическая последовательность с календарным атрибутом Т\ размерности ц, i?2 ~ хронологическая последовательность с календарным атрибутом Т2 размерности т], причем ц и rj могут не совпадать. Оператор соединения по времени имеет следующий вид:

Rl IX tR1T1®R2T2R2,

в котором <g> - одно из отношений между метками времени: «раньше», «позже», «входит в», «пересекается с», «равно». Причем равенство допускается, только если размерности /л и т] совпадают.

Этот оператор есть суперпозиция оператора UNPACK и реляционных операторов декартового произведения и выборки:

Ri tRlTl<g)R2T2R2 = aniTl®R2Tъ (UNPACK (Ry,Ту) х UNPACK (R2,T2)).

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

Пусть Ri и R2 - хронологические последовательности, Ту и Т2 - их календарные атрибуты, имеющие тип меток времени одной и той же размерности, 0 - условие соединения, использующее невременные атрибуты последовательностей Ry и R2. Тогда оператор соединения по невременным атрибутам (схе) вводится следующим образом:

tx]e (Ry,R2) = PACK (ttTi (Ry схз(д1Г1®д2т2)&в Ri) ,Ty).

4. Заключение. На основании вышеизложенных данных можно прийти к таким выводам:

1) средств реляционной модели данных не хватает для БД в промышленных ИС. Существующие разработки в области темпоральных БД также не позволяют решить все проблемы;

2) предложен новый математический аппарат для описания размерностей времени, шкал и календарей;

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

Summary

Polukhin A. L. Operators of relational data model temporal extension.

Special extension of relational data model, intended for temporal data support, is considered. Extension is based on a time dimension concept and a time label concept which is included, as pair (r,¡jl) where r - an integer (time value), and ц - time dimension. Time labels of various dimensions are various data types. Further concepts of time intervals, calendars and temporal relations are introduced. In the basic part, the model is supplemented with operators in view of the given approach.

Литература

1. Ramakrishnan R., Donjerkovic D., Ranganathan A. et al. SRQL: Sorted Relational Query Language // Proc. of the 10th Intern, conference on scientific and statistical database management. 1998. P. 84-95.

2. Date C. J., Darwen H., Lorentzos N. Temporal data & the relational model. 1st ed. San Mateo: Morgan Kaufmann, 2002. 480 p.

3. Ning P., Wang X. S., Jajodia S. An algebraic representation of calendars // Annals of Mathematics and Artificial Intelligence. 2002. Vol. 36, N 1-2. P. 5-38.

4. Bettini C., De Sibi R. Symbolic representation of user-defined time granularities // Ann. of Mathematics and Artificial Intelligence. 2000. Vol. 30, N 1-4. P. 53-92.

5. Дейт К. Дж. Введение в системы баз данных. 7-е изд. / Пер. с англ.; Под ред. А. В. Слепцова. М.: Изд. дом «Вильяме», 2002. 1072 с.

Статья поступила в редакцию 24 ноября 2005 г.

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