Хронологическая база данных

Хронологическая база данных

Хронологическая база данныхбаза данных, содержащая исторические (хронологические) данные, то есть данные, относящиеся к прошлым и, возможно, к будущим периодам времени. Обычная, нехронологическая база данных содержит только текущие данные.

Содержание

Типы данных и операторы

Хронологические данные представляют собой истинные высказывания с указанием интервалов времени. Интервалом времени является непустой отрезок временной шкалы, для его обозначения используется специальный интервальный тип данных INTERVAL_DATE. Значения этого типа записываются в виде [b:e], где b, e — выражения типа DATE, соответствующие начальной и конечной временной позиции интервала. Под временными позициями (позициями на временной шкале) понимают единицы времени, подходящие для определённой цели (миллисекунды, секунды, сутки) и считающиеся неделимыми.

Допустим i, i_1, i_2 — значения интервального типа, имеющие соответственно начальные позиции b, b_1, b_2 и конечные позиции e, e_1, e_2, p — произвольная временная позиция. Для обозначения предшествующей и последующей временной позиции используются выражения вида p-1 и p+1. Оператор \text{COUNT}(i) возвращает количество различных позиций p таких, что p \in i. Интервал i является единичным интервалом, если \text{COUNT}(i)=1.

Для проверки условий, связанных с интервалами, используются операторы Аллена:

  • интервалы равны: i_1=i_2\Leftrightarrow(b_1=b_2)\wedge(e_1=e_2);
  • i_1 включает i_2: i_1\supseteq i_2\Leftrightarrow(b_1\le b_2)\wedge(e_1\ge e_2)
  • i_1 строго включает i_2: i_1\supset i_2\Leftrightarrow(i_1\supseteq i_2)\wedge(i_1\ne i_2);
  • i_1 перед i_2: i_1 ~\text{BEFORE}~ i_2 \Leftrightarrow e_1 < b_2;
  • интервалы встречаются: i_1~\text{MEETS}~i_2 \Leftrightarrow (b_2 = e_1+1) \vee (b_1 = e_2+1);
  • интервалы перекрываются: i_1~\text{OVERLAPS}~i_2 \Leftrightarrow (b_1 \le e_2) \wedge (b_2 \le e_1);
  • интервалы сливаются: i_1~\text{MERGES}~i_2 \Leftrightarrow (i_1 ~\text{OVERLAPS}~ i_2) \vee (i_1 ~\text{MEETS}~ i_2).

Кроме того, имеются бинарные операторы над интервалами, которые возвращают интервалы:

  • оператор объединения i_1~\text{UNION}~i_2 возвращает [MIN(b1, b2):MAX(e1, e2)], если выражение i_1~\text{MERGES}~i_2 истинно, в противном случае результат не определён;
  • оператор пересечения i_1~\text{INTERSECT}~i_2 возвращает [MAX(b1, b2): MIN(e1, e2)] , если выражение i_1~\text{OVERLAPS}~i_2 истинно, в противном случае результат не определён;
  • оператор разности i_1~\text{MINUS}~i_2 возвращает [b1:MIN(b2-1,e1)], если b1 < b2 и e1 ≤ e2 и возвращает [MAX(e2+1,b1),e1], если b1 ≥ b2 и e1 > e2, в противном случае результат не определён.

Операторы EXPAND и COLLAPSE принимают в качестве операнда унарное отношение, кортежи которого содержат интервалы и возвращают отношение того же типа, являющееся соответственно развёрнутой и сжатой формой исходного отношения.

Пример использования операторов EXPAND и COLLAPSE:

R
D
[d06:d09]
[d04:d08]
[d05:d10]
[d01:d01]
Rx
D
[d01:d01]
[d04:d04]
[d05:d05]
[d06:d06]
[d07:d07]
[d08:d08]
[d09:d09]
[d10:d10]
Rc
D
[d01:d01]
[d04:d10]

Развёрнутой формой отношения R является отношение Rx, содержащее все кортежи с единичным интервалом [p:p], где p – позиция в некотором интервале некоторого кортежа отношения R. Сжатой формой отношения R является такое отношение Rc, что: отношения R и Rc имеют одну и ту же развёрнутую форму; никакие два разных кортежа в отношении Rc не содержат интервалы i1 и i2 такие, что i1 MERGES i2 является истиной.

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

Пример использования операторов PACK и UNPACK:

R
A D
A2 [d02:d04]
A2 [d03:d05]
A4 [d02:d05]
A4 [d04:d06]
A4 [d09:d10]
PACK R ON D
A D
A2 [d02:d05]
A4 [d02:d06]
A4 [d09:d10]
UNPACK R ON D
A D
A2 [d02:d02]
A2 [d03:d03]
A2 [d04:d04]
A2 [d05:d05]
A4 [d02:d02]
A4 [d03:d03]
A4 [d04:d04]
A4 [d05:d05]
A4 [d06:d06]
A4 [d09:d09]
A4 [d10:d10]

Упаковать отношение R по нескольким атрибутам D1, D2, …, Dn можно распаковав R по всем указанным атрибутам, а затем упаковать полученный результат по атрибуту D1, результат упаковки упаковать по атрибуту D2, …, результат упаковки упаковать по атрибуту Dn.

Для всех обычных реляционных операторов определены аналогичные им U_операторы, которые распаковывают отношение по указанным атрибутам, выполняют соответствующую операцию и упаковывают полученный результат. Например, операторы U_MINUS, U_INTERSECT, U_UNION, U_JOIN соответствуют операторам MINUS, INTERSECT, UNION, JOIN. U_OPERATOR определяется как:

PACK ((UNPACK R1 ON D) OPERATOR (UNPACK R2 ON D)) ON D

Операция распаковки при использовании длинных интервалов с большой степенью детализации может потребовать слишком большого объёма памяти для своего выполнения. Использование U_операторов позволяет оптимизатору выбрать реализацию, которая требует минимального количества промежуточных результатов.

Пример использования оператора U_MINUS:

R1
D
[d02:d05]
R2
D
[d03:d03]
результат
D
[d02:d02]
[d04:d05]

Декомпозиция

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

Предположим, переменная отношения R имеет атрибут интервального типа D и атрибуты других типов A1, A2, …, An. При изменении атрибутов A1, A2, …, An независимо друг от друга во времени в переменную отношения необходимо вносить сложный ряд обновлений, для представления информации о значении атрибута в течение определённого интервала времени может потребоваться более одного кортежа. Поэтому целесообразно распределить информацию по переменным отношения R1, R2, …, Rn, которые будут иметь атрибуты D и A1, D и A2, …, D и An соответственно.

Пример вертикальной декомпозиции
R
A1 A2 D
10 BB+ [d01:d03]
15 BB+ [d04:d05]
15 AA- [d06:d08]
R1
A1 D
10 [d01:d03]
15 [d04:d08]
R2
A2 D
BB+ [d01:d05]
AA- [d06:d08]

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

Ограничения целостности

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

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

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

Литература


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Хронологическая база данных" в других словарях:

  • Хронология Петербургского метрополитена — Содержание 1 XIX век 1.1 1889 1.2 1893 1.3 1895 1.4 …   Википедия

  • ЕВАНГЕЛИЕ. ЧАСТЬ II — Язык Евангелий Проблема новозаветного греческого Дошедшие до нас оригинальные тексты НЗ написаны на древнегреч. языке (см. ст. Греческий язык); существующие версии на др. языках это переводы с греческого (или с др. переводов; о переводах… …   Православная энциклопедия

  • Канзас-Сити (Миссури) — У этого термина существуют и другие значения, см. Канзас Сити. Город Канзас Сити Kansas City Флаг …   Википедия

  • Вильям Шекспир — Уильям Шекспир William Shakespeare Единственное достоверное известное изображение Уильяма Шекспира гравюра из посмертного «Первого Фолио» (1623) работы голландского художника Друшаута Имя при рождении: Уильям Шакспер (англ. William Shakspere)… …   Википедия

  • Канзас-сити — Город Канзас Сити Kansas City Страна СШАСША …   Википедия

  • У. Шекспир — Уильям Шекспир William Shakespeare Единственное достоверное известное изображение Уильяма Шекспира гравюра из посмертного «Первого Фолио» (1623) работы голландского художника Друшаута Имя при рождении: Уильям Шакспер (англ. William Shakspere)… …   Википедия

  • Уильям Шекспир — William Shakespeare Единственное достоверное известное изображение Уильяма Шекспира гравюра из посмертного «Первого Фолио» (1623) работы голландского художника Друшаута Имя при рождении: Уильям Шакспер (англ. William Shakspere) Псевдонимы …   Википедия

  • Шейкспир, Уильям — Уильям Шекспир William Shakespeare Единственное достоверное известное изображение Уильяма Шекспира гравюра из посмертного «Первого Фолио» (1623) работы голландского художника Друшаута Имя при рождении: Уильям Шакспер (англ. William Shakspere)… …   Википедия

  • Шейкспир, Уиллиэм — Уильям Шекспир William Shakespeare Единственное достоверное известное изображение Уильяма Шекспира гравюра из посмертного «Первого Фолио» (1623) работы голландского художника Друшаута Имя при рождении: Уильям Шакспер (англ. William Shakspere)… …   Википедия

  • Шекспир, Вильям — Уильям Шекспир William Shakespeare Единственное достоверное известное изображение Уильяма Шекспира гравюра из посмертного «Первого Фолио» (1623) работы голландского художника Друшаута Имя при рождении: Уильям Шакспер (англ. William Shakspere)… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»