Введение в системы БД (542480), страница 95
Текст из файла (страница 95)
БТК)Р— это сокращение полного названия процессора БгапГогд Кеа!м[ше !пГоппаг)оп Ргосеззог. Данный процессор использует "правила", т.е., по сути, триггерные процедуры (см., например, [8.22)), лля обновления моментальных снимков [здесь они называются производными данными) при каждом изменении исходных данных в базе. Проблема использования такой системы заключается в том, что если данные в базе изменяются достаточно часто, то дополнительная нагрузка на систему в связи с выполнением установленных правил оказывается чрезмерной. В статье описываются методы ЯТК!Р, позволяющие уменьшить эту нагрузку. АгйЬа М, Репнег! Ке!аг[опз: А 1)и[бед МесЬапйгп Тог Ч[езнз, БпарзЬощ, апд 01згпЬшед Рага д Ргос. 1пс.
Сопй Оп Чету Еагйе Рага Вазез. — Саппез, Ргапсе., БергешЬег, 1981. См, также более раннюю версию; АсйЬа М.Е., 1.шг)зау В.О. РагаЬазе Ьпарьйогв д 1ВМ Кезеагсй Керогг К)2772. — Магсй, 1980. В работе впервые представлена концепция моментальных снимков, а также предложены соответствующая семантика и принципы реализации. Относительно реализации следует заметить, что внутри системы можно использовать различные типы "дифференциальных обновлений" или инкреиеннгнае сопровождение, т.е. системе не всегда потребуется при обновлении снимка повторно выполнять исходный запрос в полном объеме. Абгажа) Р., Е! АЬЬагй А., Япйй А,, апс! Уцге1с Т.
Ейю)епг Ч[еж Машгепапсе оГ Рага 'ьЧагеЬоцзез й' Ргос. АСМ ЫОМОР 1пг. Сопй оп Мапайешепг ор Рага.— Тцсзоп, Апх., Мау, 1997. Вспомним из главы 1, что хранилииге данных — это база данных, в которой содержатся данные для поддержки принятия решений, т.е., по сути, моментальные снимки, если использовать терминологию настоящей главы (и термин "представление" [н)езг) в заголовке этой статьи на самом деле относится не к представлениям, а к моментальным снимкам). Как указывалось в аннотации к [9.2), моментальные снимки можно сопровождать инкрементно и такое сопровождение весьма желательно с точки зрения производительности системы. Однако инкрементное сопровождение может привести к затруднениям, если моментальные снимки создаются с нескольких отдельных баз данных, которые в это же время подвергаются обновлению.
В настоящей статье предлагается решение данной проблемы. Вцй Н.Ф. 'ьЧЬу СойГз Кц!е №6 Мцы Ве Кебогпш!агед д АСМ 8!ОМОР.— РезешЬег, 1988. — 17, № 4. В 1985 году Кодл [Сог!г!) опубликовал набор из двенадцати правил, предназначенных для использования в качестве "части теста для определения, является ли продукт, объявленный как полностью реляционный, на самом деле таковым" [9.5[. Правило Кодда № б требует, чтобы все представления, теоретически обновляемые, были обновляемы и в данной конкретной системе. В этой короткой заметке Буфф [Вцй) утверждает, что общая проблема обновляемости представлений неразрешима, т.е. не существует общего алгоритма определения обновляемости (в смысле 9.10.
Рауа1 1)., Вегпме!и Р.А. Оп гЬе Соггес! Тгапз!айоп оГ1)рдаге Орегабопз оп Ке!айопа! 387 Глава 9. Представления 9.5. 9.6. 9.7. 9.8. 9.9. определения Ковда) или ее отсутствия для произвольного представления. Тем не менее следует заметить, что определение обновляемости, использованное в этой главе, несколько отличается от определения, введенного Коддом. Различие состоит в том, что использованное в данной главе определение обновляемости сформулировано в терминах предикатов переменных-отношений.
СогЫ Е.Г. В Уоцг РВМ8 Кеайу Ке!агюпа1? апд Роек Уоцг ОВМС Кцп Ьу гйе Кц1ез? Сошрцгег мог!д. — ОсгоЬег, 1985. — № 14, № 21. Со!Ьу Е.б. Вцррогйпй Мцйр1е Ч!еж Ма!пгепапсе Ро11с!ез П Ргос. АСМ 8!ОМОР 1пг. Сопб оп Мапайешепг об Рэга. — Тцсзоп, Аг!г., Мау, 1997. "Представлениями" в этой статье именуются не представления, а моментальные снимки. Существует три широко распространенных подхода к поддержке актуальности моментальных снимков. 1.
Непосредственный. При каждом обновлении любых исходных переменных- отношений немедленно запускается соответствующая процедура обновления моментального снимка. 2. Отложенный. Моментальный снимок обновляется только по требованию пользователя. 3. Периодический. Моментальный снимок обновляется через указанные интервалы времени (например, каждый день). В сущности, моментальные снимки предназначены для повышения производительности выполнения запросов за счет расходов на обновление, и три упомянутые выше стратегии представляют различные компромиссы между повышением производительности и потерями в связи с этим.
В статье изучаются вопросы, связанные с применением различных стратегий для различных моментальных снимков в одной и той же системе в одно и то же время. СЬашЬег!ш 0.0., Огау 1М, Тга!8ег !.Е. Ч!ечгз, Ацгйог1гаг!оп, апд Еоск!п8 ш а Ке1айопа! Оа!а Вазе Бумеш П Ргос. Ь!СС 44.
— Са1!Г'. Мои!ха!е, Х.З.: АР)РЯ Ргезз, Мау, 1975. Содержит краткое логическое обоснование подхода, выбранного для организации обновления представлений в прототипе системы Яузгещ К !и, следовательно, в системах 801л'Рэ и РВ2, в стандарте ЯОЕ и т.п.). См, также 19.15), где можно найти аначогичное обоснование для прототипа системы 1Ь!ОКЕ8. Рагзнеп П. Ч!г!!йонг СЬесй Оргюп. Ке1абопа! РагаЬазе )нг!11пйз 1989 — 1991.— Кеасйпб, Мазал АсЫ!зоп-'1Чез1еу, 1992.
Разе С.1., МсОонегап Р. !Зрдаг|пй 1)пюп, 1пгегзесбоп, апд 011Тегепсе Ч!елгз. апд 1)рдаг!п8 )о!пз апд Огйег Ч!езчз, Ке1агюпа1 ОагаЬазе Юг!1!пйз 1989 — 1991. — Кеад!п8, Маваг АгЫ!зоп-'зЧез1еу, 1995. Замечание. Формальные версии этих статей на время написания настоящей книги находились в процессе подготовки. Ч!езкз П АСМ Т008. — 8ергещЬег, 1982. — 7, № 3. Это первое действительно формальное изложение правил обновления представлений (только для представлений, описанных с помощью операции выборки, проекций и соединения).
Однако предикаты переменных-отношений здесь не рассматриваются. 9.1! 9.12. 9.13. 9.14. РцПабо А.Ь„Сазапоча М.А. ЬСрсСас!п8 ссе!аС!опа! Чсесчз // снегу Ргосезсйпб !и ОагаЬазе Бусдешз, — ЬСечг Уог)с, ЬС,У.; Ерг!пйег Чег!а8, 1985. Здесь описаны два достаточно общих подхода к решению проблемы обновления представлений. Один из иих (в книге детально изложен только один подход) является попыткой разработки общего механизма, работающего независимо от сложности структуры базы ланных.
В этом подходе используется исключительно определение иссле- дуемого представления. Другой подход, менее амбициозный, требует, чтобы админист- ратор базы данных явно указал для каждого представления, какие обновления для него допустимы и какова семантика соответствующих операций. Это выполняется посредст- вом создания процедурного кода, реализующего обновления представлений в контексте исходных базовых переменных-отношений. Работа включает обзор показателей эффективности каждого из подходов (по состоянию на 1985 год).
Кроме того, в книге прел- ставлен обширный список литературы, изданной до 1985 года. Ооойпал Х. Ч!есч 1.1рс(асе В Ргасссса! //! пбоОВ. — 1990. — 5, № 2. Весьма неформальный прагматический обзор проблемы обновляемости представлений. Вот цитата из введения (несколько перефразированная): "Дайал (Оауа!) и Бернштейн (Вегпзсесп) [9.10) доказали, что, по существу, все интересные представления не являются обновляемыми. Буфф (Вцс() [9.4] доказал, что не существует алгоритма определения обновляемости произвольного представления. Но, кажется, есть небольшая надежда. [Однако] ничто не может быть дальше от истины.
Обновления представлений возможны и реальны". И далее в статье приводится ряд методов обновления представлений. Однако ключевое понятие предсскатов персненлых-отношений не рассматривается. Кес!ег А.М. А18опсЬспз сог Тгапзсайпб Ч!есч 13рс!асез со ОасаЬазе (/рс[асез Тог Ч!еччз 1пчо1ч!п8 Зе1ессюпз, Рго!есс!опз, апс( !о!пз О Ргос. 41Ь АСМ 8!ОАСТ-8!ОМОО Буспросйшп оп Рппс!р1ез ос ОасаЬазе Зузсеспз. — Реп!апс(, Оге., МагсЬ, ! 985. Предложен набор из пяти критериев, которым должен удовлетворять алгоритм об- новления представлений: отсутствие побочных эффектов, только одноэтапные изменения, отсутствие ненужных изменений, отсутствие возможности более простых замен н отсутствие пар операций ВЕЬЕТЕ-11(ВЕЕТ вместо операции ВРВ/сТЕ. В этой работе также представлены алгоритмы, которые удовлетворяют изложенным критериям.
Кроме всего прочего, приведенные в книге алгоритмы позволяют реализовать обновления одного типа с помощью операций другого типа. Например, операция ВЕЬЕТЕ для представления может быть реализована посредством операции ВРВ!СТЕ в исходной базовой переменной-отношении (например, поставщик может быть удален из представления, описывающего лондонских поставщиков, посредством замены значения атрибута города С1Т1 значением 'Раг1в').
Другой пример (не вошедший в работу Келлера (Ке!!ег)); операция ВЕЬЕТЕ в представлении Ч (где Ч опрелелено посредством операции вычитания /С 818(СЯ В) может быть реализована как вставка кортежа в переменную-отношение В, а не как удаление кортежа нз переменной-отношения а. Заметьте, что в данной главе мы отбросили полобные способы реализации операций обновления на основании описанных в ней принципов. ()цазз О.
апс! сЧ!ссосп 1. Оп-1лпе ФагеЬоцзе Ч!есч Ма!псепапсе 0 Ргос. АСМ 8!ОМОВ !пс. СопГ. оп Мапайеспепс ос Овса. — Тцсзоп, Аг!х., Мау, 1997. 388 Часть П. Реляционная модель Под представлениями (ч|езч), упомянутыми в заголовке этой статьи, понимаются не представления, а моментальные снимки.
В ней приведен алгоритм поддержки моментальных снимков. Он позволяет одновременно выполнять транзакции сопровождения моментальных снимков и запросы к их данным. 9.15. БгопеЬга!сег М.К, !шр!еглепсаг!оп оХ Ч(евз апп' !пгеЕПгу Сопзггашгз Ьу Онегу Моййсаг(оп й Ргос. АСМ Б!ОМОП !пгегп. Сопб оп МапаЕещепг об Оага.— Бап Хозе, СаИ., Мау, 1975. См, комментарии к [9.7). 9.16. УЛшЕе У., Оагс!а-МоИпа Н., Напнпег Ю. апй '1ЧЫош А Ч(ечг Ма!псепапсе |п а '1Чагейонз!пЕ Епч!гопшепг // Ргос. АСМ Я!ОМОВ !пг. Сопб оп МапаЕешепг оХ Оага. — Яап 1озе, Сай[., Мау, 1995. Представлениями в этой статье именуются не представления, а моментальные снимки. После обновления некоторых исходных данных со стороны хранилища данных может потребоваться выдать запрос к базе данных прежде, чем будет выполнено необходимое сохранение снимка, и время задержки между таким запросом и обновлением исходной базы данных может привести к аномалиям.
В статье представлен алгоритм для обработки подобных аномалий. Ответы к некоторым упражнениям 9.1. Приведенные ниже ответы пронумерованы как 9д,п, где н — номер примера в разделе 9.1. Здесь используются наши обычные допущения относительно переменных диапазона. 9.1.1. ЧАР, НЕОРАНТ Ч1ЕИ ( РХ Р)г РХ РИАМЕс РХ ИЕ16НТ АБ ИТг РХ С1ТХ ) ИНЕЕЕ РХ.СОЬОК = СОЬОЕ ( 'Евг)' ) ! 9.1.2. ЧАН РО Ч1ЕИ ( РХ.Р(), БОМ ( ЯРХ ИНЕНЕ ЯРХ.Р() = РХ.Р(), ОТХ ) АЯ ТОРАХ 9.1.3. ЧАН СПХ РА1Н Ч1ЕИ ( ЯХ.ОХАХ АЯ ЯСХТХ, РХ.С1ТХ АБ РСХТХ ) ИНЕНЕ ЕХ1ЯТБ БРХ ( БРХ.Я() = ЯХ.Я() АНО ЯРХ.Р() = РХ.Р() ) 9.1.4. ЧАН НЕРЧХ НЕОРАНХ Ч1ЕИ НРХ ИЙЕЕЕ НРХ.ИТ > ИЕ16НТ ( 12.0 ) Здесь НРХ вЂ” это переменная диапазона, которая изменяется на представлении НЕОРАЕТ.