Введение в системы БД (542480), страница 235
Текст из файла (страница 235)
Докажите или опровергните следующие утверждения. а) (Н 081000 П) 081000 12 = (Н 081000 12) 081000 П б) (Н СОльЕЯСЕ П) СОаьЕЯСЕ 12 ж (Н СОльЕБСЕ 12) СОйЕЕБСЕ П 22.9. Можете лн вы привести пример переменной-отношения с интервальным атрибутом, которую было бы нежелательно поддерживать в свернутой форме? 22.10.Исследуйте возможности расширения понятия "хронологического внешнего ключа" для включения ссылочных действий, таких как каскадное удаление.
Список литературы Вместо того чтобы приводить здесь список работ, который может оказаться слишком объемным, мы просто обратим ваше внимание на то, что в (22.2] содержится обширный список литературы по теме данной главы. 22.1. А!!еп ).Р. Ма!пза!и!п8 Кпотг!ебйе аЬоп! Тешрога! !п1егча1з 0 САСМ.
— )чочешЬег, 1983. — ! б, № 11. 22.2. Е(к!оп О., )а]осйа Б., Ег!Раба 8. (ебз.) Тешрога! РагаЬазез; Неазегсй апб Ргасйсе.— )чеч т'огй, )ч."т'.: Ярг!пйег Нег!а8, 1998. Антология, представляющая состояние исследований данной темы на !997 год, а также превосходная первая работа для дальнейшего изучения. Четвертая часть, Рагг 4: Сеиега( Яерегеисе, включает обширную библиографию и версию словаря терминов, ТЬе Саилеилил б!аллагу аТ Тетрага! РагаЬале Саисерм, по состоянию на февраль 1998 года.
Вторая часть, Раж 2: Тетрага! Диегу Ьаи8иа8ел, включает статью "Ча)Ы Типе апг) Тгапзасйоп Т!ше Ргорозай: 1.апйца8е Репййп Азрес!з", в которой автор оригинального текста настоящей главы Хью Дарвен (Нпйй Рагв еп) приводит доводы против подхода, принимающего язык ТЯ'.)) 2, н настаивает на том, что в определениях языка ТЯО).2 (22.4] имеются существенные недостатки. Также во вторую часть входит статья Дэвида Томэна (Рахн) Тощал) "Ро!и1-Вазед Тешрога! Ех!епзюпз о(Я;Н апб ТЬе1г ЕВ)с!еп! !щр)ешеп!а!!оп", в которой предлагается расширение языка Я Н., основанное на точках, а не интервалах. Эта идея поднимает некоторые интересные вопросы, касающиеся реализации.
Ответы на них могли быть применимы и для подхода, основанного на интервалах, поскольку "единичные интервалы'*, которые получаются в развернутой форме (081000), "фактически" представляют точки (на самом деле они действительно являются точками в языке )ХБ( й;, см. аннотацию к [22.3]). 893 Глава 22. Хронологические базы данных 22.3. Е,огепсхоз ЬС.А., Мйаороц!оз 'т'.сэ. Б(.Н. Ехсепз!оп Сог 1псегча! Паса 7 1ЕЕЕ Тгапзасйопз оп Кпосч!едйе апс1 ОаСа Епй!пеег!пЕ, — Мау/)цпе, 1997.
— 9, № 3. Многие идеи, которые обсуждались в настоящей главе, основаны на результатах исследований, описанных в данной статье. Как и предыдущая работа, эта статья содержит множество полезных ссылок. Прежде чем представить собственное расширение языка БОЬ, авторы определили реляционную алгебру, дополненную интервалами (!пгегча!-ЕхСепс)ес[ йе!айопа! А!ЯеЬга).
Предлагаемое расширение языка ЯОЬ называется 1ХЯ( Н [иногда произносят, как "девять НОГ') и не предназначено исключительно для хронологических интервалов. Поскольку ключевые слова 1МТЕЕЦАЬ и СОАЬЕЯСЕ уже используются в языке ЯС)Ь для других целей, авторы предлагают вместо них ключевые слова РЕЕ100 [даже для не хронологических интервалов) и МОНМАЬТЯЕ [обратите внимание на написание). Как указывалось в аннотации к [22.2), оператор ОМРОЬО в языке !ХБС)Ь отличается от нашего тем, что в результате его выполнения получаются точки, а не единичные интервалы.
Поэтому авторы предлагают обратный оператор РОЬО, который преобразует точки в интервалы, а затем свертывает их. Эти операторы предлагаются не как отдельные операторы, а как дополнительные предложения обычной конструкции ЯЕЬЕСТ-ГНОМ-МНЕЕЕ. Интересно, что вновь введенное предложение МОННйЬТЯЕ ОМ не только записывается последним, но и выполняется последним (что является отклонением от правил языка БОЬ; см, приложение Б). Иными словами, вывод предложения ЯЕЬЕСТ является вводом для предложения МОЕМАЬТЯЕ ОМ (по веским причинам).
22.4. Бподйгаьз К.Т. ТЬе Тещрога! Оцегу Ьапйнайе ТАЯН.2. — Оогсгесйй )СесЬег!апдз: К!цччег Асас1епцс РцЬ., 1995. Язык ТЯОЬ2 — это множество предложенных расширений для языка ЯС сЬ. Комитет языка ТБС.СЬ2 в значительной степени отверг общий подход к использованию скалярных и реляционных операторов для интервалов в пользу того, что больше подходит в особых случаях. Вместо простой поддержки генератора интервального типа и связанных с ним операторов были предложены различные специального вида таблицы; таблицы снимков, таблицы допустимого времени состояния, таблицы дапустимога вре.мени собыпсия, таблицы времени транзакций, таблицы двухранолагическаго состояния и таблицы двухронологических событий.
° Таблица снимков — это таблица в обычном стиле языка Я Н., возможно, включающая столбцы данных типа РЕН100 [как и в языке 1ХЯОЬ [22.3), это ключевое слово используется вместо ключевого слова 1МТЕМЦАЬ, которое уже употребляется в языке ЯОЬ для других целей). ° Все остальные виды таблиц имеют хронологическую поддержку. Хронологическая поддержка означает существование для каждой строки одного или двух хронологических элементов. Хронологический элемент — это множество временных отметок, причем каждая временная отметка представляет собой или значение типа РЕЕ100, или значение некоторого типа даты-времени. (Обратите внимание, что термин "временная отметка" здесь используется не в его привычном, принятом в языке Яф./92 смысле.) 894 Часть )'.
Дополнительные аспекты Хронологические элементы, содержащие значения типа РЕИ10й, определякпся как свернутые'4. Хронологические элементы не выступают в роли обычных столбцов; вместо этого доступ к ним осуществляется с помощью операторов специального назначения. Ниже приведен краткий обзор различного вида таблиц "с хронологической поддержкой", ° В таблицах допустилгага времени состояния и таблицах времени транзакций каждая временная отметка — это значение типа РЕН10й. ° В таблицах дапустимага вреиени события каждая временная отметка — это значение некоторого типа даты-времени. ° Двухрагголагическая таблица представляет собой одновременно таблицу времени транзакций и либо таблицу допустимого времени состояния, либо таблицу допустимого времени события. Каждая строка в двухронологической таблице имеет лва хронологических элемента: один — для времени транзакщли, другой — для допустимого времени.
Поэтому двухронологическая таблица может обрабатываться как таблица времени транзакций или как таблица допустимого времени. В языке ТБЯ4.2 строго соблюдается так называемая хронологическая прямая совместимость. Ее суть заключается в том, чтобы можно было добавить "хронологическую поддержку' к существующей базовой таблице путем преобразования базовой таблицы из таблицы снимка в некоторого вида хронологическую таблицу. С этого момента все обычные 5(.гг.-операции над такой базовой таблицей интерпретируются как операции над текущей версией моментального снимка этой таблицыгз, но теперь они могут иметь новый побочный эффект.
В частности, операции обновления и удаления для текущей версии моментального снимка сохраняют старые версии строк как строк с хронологическими элементами. Выбранный в языке ТБЯг.2 подход приобретает большое преимущество благодаря так называемым последовательным операциям. Последовательная операция выражается как операция над моментальным снимком базы данных (обычно — над текущим снимком), но выполняется так, как если бы это был каэюдый моментальный снимок.
Результат выполнения последовательного запроса для таблиц допустимого времени, например, является таблицей допустимого времени. Сам запрос выражается так, как будто это запрос текущего снимка базы данных с добавлением отдельного ключевого слова, чтобы можно было указать, что это последовательный запрос.
В прикладных программах, в которых выдаются такие запросы, должно быть создано специальное обеспечение для доступа к временной отметке в результирующих строках. гл Версия языки ТБЦь2, катаран была предложена органиэацией 150 (на не была прггггнггга) для включении в слгандарт в )99б году, атличаелгсн от версии, описанной в (22.4), где таблицы с хралалагическай поддержкой всегда были "не вгаженными" (те. каждый элемеюл лредгтавллт собой отдельную временную олинетку, а не множества отметок). Также нв указывалас~, свериулга таблица или нгт. гл На салгам деле есгль другое аиыичие между языкам Т5012, как он олредглен в (224), и версией, предлолгеннай!50.
В (22.4) требуется ключевое слово БН24РБНОР после слава БЕйЕСх означающее, чта некоторый запрос зависит ат лгвкущега состояния каждой из таблиц, на калюрые ои ссылается. В версии, лредлагаелгай г50, это не требуется. 895 Глава 22. Хронологические базы данных Операции, которые не могут быть выражены как последовательные операции, иногда требуют использования скрытого синтаксиса. Поскольку язык Я( Н не подлерживает таблиц, которые не имеют столбцов, язык ТЯ.)Ь2 имеет ограничение, согласно которому таблица с хронологической поддержкой должна иметь по крайней мере один обычный столбец, кроме дополнительных хронологических элементов.
Поэтому такие запросы, как "Показать периоды, в течение которых по крайней мере один поставщик из Парижа имел договор на поставку", не могут быть выражены в последовательной форме. Ответы к некоторым упражнениям 22.1. а) Вероятно, нет (хотя мог бы и быть). б) Символьная строка, непосредственно предшествующая символу 'г) ', зависит от того, какой именно символ является последним в используемой сопоставимой последовательности (см. (4.19), где рассматриваются сопоставимые последовательности языка Я(;>ь).
Если последним является символ 'Е', то ответ будет таким:('р', 'рЕХ'). Замечание. Напомним, что, строго говоря, элемент "(3)" в описании чйКСНАК(3) лучше считать не частью типа как такового, а ограничением цеяостноскпи. 22.2. Во-первых, выражение В1 1 ОН10М В2 ОН А равносильно следующему выражению. ( К1 ОН10Н К2 ) СОАЬЕЯСЕ А Обратите внимание, что нет необходимости в развертывании переменных- отношений И и В2 по атрибуту А до выполнения операции свертывания (почему?). Вовторых, выражениеИ 1 1НТЕКЯЕСТ В2 ОН Аравносильно следующемувыражению. ( ( ЕХТЕКО ( ( К1 КЕНАМЕ А АЯ А1 ) 301Н ( К2 КЕКАМЕ А йЯ А2 ) АОО ( А1 1МТЕКЯЕСТ А2 АБ й ) ( йЬЬ ВОТ й1, й2 ) ) И вновь нет необходимости в развертывании переменных-отношений И и В2 по атрибу|у А Более того, если переменные-отношения И и В2 фактически свернуты по атрибуту А, нет необходимости и в заключительном этапе свертывания (почему?).