Информатика, вычислительная техника и управление УДК 004.652 DOI: 10.14529/cinsel60108
СРАВНЕНИЕ ОБЛАСТЕЙ ИСТИННОСТИ ЗАПРОСОВ К РЕЛЯЦИОННОЙ БАЗЕ ДАННЫХ
C.B. Мосин
В данной статье предлагается описание подходов аналитического сравнения пользовательских 'запросов к реляционной базе данных. Такое сравнение имеет целью установление возможности частичного или полного использования закодированных на компьютере пользователя запросов к СУБД и основано на применении аппарата логики предикатов, где в качестве формул выступают логические ограничения SQL, а предикатами служат элементарные операции SQL. В случае, если результат выполнении пользовательского запроса полностью содержится в кэше, то данные можно взять оттуда, минуя запрос к удаленному серверу. Описанные подходы выраженье в алгоритме использования дотированных данных. Предложенный алгоритм также может быть использован для определения недостающих в кэше данных и последующего запроса только на эти данные. Для этого также используются аналитические вычисления, что экономит сетевой трафик и время на выполнение запросов и является принципиальным отличием данной технологии от существующих аналогов.
Ключевые слова: реляционная база данных, кэш, область истинности.
ОБРАЗЕЦ ЦИТИРОВАНИЯ
Мосин C.B. Сравнение областей истинности запросов к реляционной базе данных // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 201G. Т. 5, № 1. С. 85-99. DOI: 10.14529/cmselG0108.
Введение
В данной работе рассматривается проблема использования результатов выполнения запросов, закэшированных на компьютере пользователя. Такие данные будем называть представлениями (иначе сохраненные представления, промежуточные представления). Мы предполагаем наличие централизованного сервера и множество удаленных клиентов с расположенной па сервере реляционной базой данных. В кэше сохраняются результаты выполнения запросов для того, чтобы обеспечить максимальное использование сохраненных данных при выполнении последующих запросов.
Поставленная проблема связана с областью оптимизации запросов, поскольку нацелена на сокращение объема передаваемых данных с сервера базы данных. Зарезервированные данные активно используется в системах управления базами данных (СУБД). Но в большинстве случаев это касается повторного использования данных, записанных в кэш, без предварительного анализа содержимого на предмет возможности частичного или комбинированного использования. Работа СУБД ограничивается тем, что при выполнении очередного запроса блоки данных не запрашиваются с внешних устройств, если они есть в кэше;, т.е. анализируются номера блоков, а не их содержимое.
Целью данной работы является разработка методов аналитического сравнения логических ограничений запросов, а также построение алгоритма использования кэшированных данных. Проблема актуализации данных не затрагивается в данной статье.
Раздел 1 посвящен обзору публикаций па схожие темы: использование кэша при работе с различными видами баз и хранилищ данных, логика предикатов и ее применение в сфере баз данных. В разделе 2 описывается формализованная постановка задачи. Раздел 3 представляет подходы к аналитическому сравнению простейших операций языка
SQL, из которых строятся все логические формулы. В следующем разделе, 4, выводятся основные эквивалентности, используемые при определении возможности использования кэша. Заключительный раздел 5 объединяет полученные результаты в виде схемы алгоритма использования кэша в ходе исполнения запросов к реляционной базе данных. В заключении сделано обобщение полученных результатов и приведены дальнейшие направления исследований.
1. Обзор существующих работ
В области теоретических исследований ситуация складывается следующим образом. Огромное число публикаций посвящено проблеме построения оптимального плана запроса на основе формальных правил, в которых не используются области определения предикатов в SQL-операторах (логическая оптимизация) либо эти области учитываются при вычислении статистических оценок для оптимизации физического доступа к базе данных. Близкими по методам решения являются задачи выполнения запросов па потоках данных [5, 13], однако различные, по сравнению с настоящей работой, цели приводят к различным результатам.
Наиболее близка к рассматриваемой проблеме работа [1]. В пей рассматриваются конъюнктивные запросы над доменами данных с предикатами в виде арифметических сравнений, и представлены алгоритмы вычисления запросов с использованием представлений. В настоящей работе рассматривается специальный вид универсального реляционного запроса над отношениями базы данных, а не над отдельными доменами. Хотя цели в обеих работах совпадают, результаты различны по указанной причине. В частности, в настоящей работе нет необходимости разрабатывать алгоритмы выборки данных из промежуточных представлений, так как их замещает реляционная алгебра.
Существует ряд работ, в которых рассматривается проблема оптимизации запросов к многомерным хранилищам данных с использованием сохраненных представлений. При этом существуют два основных подхода для резервирования результатов запросов: статический [2, 6, 7| и динамический |9, 14-16]. Первый базируется на использовании набора фиксированных запросов, во втором же предполагается динамический выбор результатов запросов для резервирования на основе статистики появления а также вычислительной стоимости выполнения запросов. В качестве источника данных используются хранилища данных, либо реляционная база данных, преобразованная к иерархическому виду. При этом, рассматриваются специальные запросы манипулирования многомерными данными. В данной статье рассматривается технология раздельного формирования размерностей представления данных. Поэтому интерес представляют стандартные SQL запросы к базе данных и промежуточным представлениям. Результирующее представление может быть затем обработано специальными запросами манипулирования многомерными данными.
В работе [10] решается задача анализа содержимого кэша, при этом промежуточным представлениям в кэше ставятся в соответствие предикаты. Проблема использования представлений решается за счет выводимости предикатов. В данной работе проблему использования промежуточных представлений предлагается решать посредством вычисления их областей истинности. Это позволяет, во-первых, аналитически определить возможность использования кэша, а во-вторых, сформировать SQL команды, которые позволят загрузить недостающие данные с сервера базы данных.
Данная работа основывается на теоретических результатах, описанных в статье [12|, где предлагается технология, в основе которой лежит понятие области истинности логического ограничения, накладываемого на пользовательский запрос к базе данных. Фактически, данная статья является логическим продолжением указанной работы, определяя аналитические операции над областями истинности пользовательских запросов.
Основным инструментом работы с логическими формулами в статье является аппарат математической логики первого порядка, или логики предикатов [3, 8, 11J. Данная работа не ставит целью получение новых результатов в области математической логики, а лишь использует имеющиеся результаты в применении к логическим ограничениям языка SQL, расширяя таким образом возможности анализа пользовательских запросов по сравнению с классическими подходами СУБД, где нет возможности частичного или комбинированного использования закэшированных запросов.
В книге |4] подробно описано то, как логика предикатов используется в языке SQL в виде реляционного исчисления (relational calculus), а также приведены основные эквивалентности логических предикатов, используемые в данной статье.
2. Постановка задачи
Будем рассматривать реляционную базу данных со схемой R — {i?i. R2> ■■■, Rn}-
Определение 1. Универсальным реляционным запросом называется запрос следующего вида:
р = 7Tx(<7F(i2i м ■ ■ ■ и Rm)),m € [1,.. -, N]
Логические формулы, по которым проводится селекция, будем рассматривать в дизъюнктивной нормальной форме. В общем случае формула F имеет вид
F = KlV K2V •■■V Ки (1)
Kii=T1kT2...kTa)i = l...../, (2)
где Tj, j — 1,... ,s — предикаты, в которых явным образом специфицированы расширенные имена атрибутов R.,.Aj (атрибут Aj в отношении ii,): Возможные значения Tj\
• операция сравнения Ехрг1 в Ехрг2 , 0 - операция сравнения (в £ {=!^,>,<, <>>}), Expri - согласованные по типам допустимые выражения, определенные па множестве расширенных имен атрибутов и констант;
■ операция Ехрт\ [NOT] BETWEEN Expr2 AND Expr? (содержимое в прямоугольных скобках [*] для предиката не является обязательным при написании);
• операция Expr [iVOT] IN S, где S - список значений либо подзапрос, результатом которого является столбец атрибута Aj в отношении Вг;
• операция Str\ [NOT] LIKE Str2, где Strt - строки;
• операция Expr в ALL/ANY S.
Обозначение. Множество атрибутов, входящих в формулу, выражает размерность формулы и обозначается (F).
(F) = { Д(' ,А\,..., R^-A* }, к--количество атрибутов, входящих в формулу (3)
Перечисленные варианты операций используют не все возможности языка SQL. Например, предикат EXISTS не используется, поскольку в нем явно не специфицированы расширенные имена атрибутов, предикат NULL используется в данной работе для другой цели.
В статье |Г2| приведен алгоритм преобразования логических формул, который позволяет избежать получения значения UNKNOWN в результате вычисления значений формул. Далее будем предполагать, что все формулы F являются преобразованными.
Введем в рассмотрение множество Л — {(ai,... ,аь) \ Щ € Dom(Ai), г — !,...,£}, где Dom(Ai) - множество всех допустимых значений атрибута А,. Декартово произведение Dorn(Ai) х DorniA-j) х ■- - х Dorn(Ai) - L-мерное пространство значений всех атрибутов базы данных.
Определение 2. Областью истинности логической формулы F, заданной (1), (2), (3), является множество, определяемое по следующему правилу: M(F) — {а € А \ F(a) — TRUE}.
Данное определение изначально введено в статье [12].
В соответствии с данными определениями легко понять, как будут устроены операции над областями истинности. M(F) для некоторой формулы F. заданной своей дизъюнктивной нормальной формой, является объединением областей истинности, представленных отдельными конъюнктами формулы. Область истинности каждого конъюнкта определяется как пересечение областей истинности предикатов, входящих в пего.
Далее введем определения, касающиеся модификации вхождения атрибутов в логические формулы.
Определение 3. Проекцией логической формулы F, заданной (1), (2), (3), на множество атрибутов X называется логическая формула F[A'], {F[-X"]) — X, в которой все термы, содержащие атрибуты Rf.Af ф X, заменены на тривиальный терм TRUE.
Основные теоретические результаты, позволяющие судить о возможности использования кэша при выполнении запросов:
п
Теорема!. Р* С jrjp(erF.[iX](J\ N ■ ■ ■ М Pn))t где X = (J если:
а)га
б) JJ№• #!(„)} - (я;,....Я'А С {R*,....л;}
в) M(F*) С M(Fv),v = 1,...
Предложенные в теореме условия гарантируют, что данные, необходимые для формирования целевого запроса Р*, содержатся в промежуточном представлении Pv. Однако в нем могут быть лишние кортежи, которые дают значение TRUE при подстановке в формулу F*. Дело в том, что эти кортежи будут удалены при выполнении операции естественного соединения с отношениями, которых не хватает в множестве Щ X iiij X! ■ ■ • X j для совпадения с множеством Л* ixi Щ N • ■ • ixi Л*.
Следующая теорема соответствует частному случаю, где проблема лишних кортежей не возникает.
п
Теорема 2. Р* = тгх- (<7F- (Л М ... ¡XI Рп))7 где X = (J Xv если:
u=i
а) С1Д.2 («£> Щ) П ( (J Rj'}), v = l
W—1
ъзфъ
б) UW • ••, = Щ.....К} = № ■ ■Д?}
в) M(F*) С M(Fy), и = 1,..., п
г) (F*) СХ.
Доказательства теорем приведены в статье [12].
Для проверки условий в) обеих теорем, очевидно, требуется уметь аналитически сравнивать области истинности логических формул. Этому будет посвящен следующий раздел. Далее на основе полученных результатов будет построен алгоритм, позволяющий для данного набора закэшированных представлений и некоторого целевого представления определить, можно ли воспользоваться кэшем для получения искомых данных и, если нет, получить недостающие данные.
3. Логические операции над предикатами
Рассмотрим элементарные логические предикаты, из которых состоит логическая формула, заданная (1), (2), (3). Для этого нам понадобится вычислять значение логических операций V, ^ над предикатами Tj,j — 1,..., s. Определение значения логической формулы аналитически возможно в случае, если формула не зависит от значений атрибутов базы данных (БД). Приведение к такому виду возможно в ряде изложенных далее случаев.
3.1. Упрощение конъюнкции и дизъюнкции простых предикатов
1. Ехрг} в Ехрг2 , (,9 е {=, ф, >, <, <, >})
Данный тин операций определяет простейшие арифметические операции равенства и неравенства. Сравнение таких предикатов сводится к применению элементарных правил решения неравенств. Пусть даны следующие предикаты:
• Т\ = (Ri.Aj 6\ а), а € Dom{Ri.Aj)
• Т2 = (Ri.Aj в2 Ь), Ь € Dom{R,.Aj)
Рассмотрим всевозможные комбинации конъюнкции и дизъюнкции данных типов предикатов, при которых в результате получается тривиальное значение TRUE либо FALSE.
Заметим, что операции <, > сводятся к операциям <, >. =, ф\ х\ <х2 ^ х\ < х2 V x'i = х2, поэтому мы исключаем их из дальнейшего рассмотрения.
Также обратим внимание, что если в\ — в2, то Т\ кт То = TRUE -i=> а — Ь. Далее рассматриваем только различные операции f?i и 9>-
(а) в1 - "=" i. в2 = "фп
Тг & Т2 - TRUE а = Ь Ti & Т2 = FALSE а фЬ
ii. в2 = "<"
Ti & Г2 = FALSE «=> a>b
¡и. е2 = к>"
Ti & Т2 = FALSE а <Ь
(b) (?!="/"
Никакие прочие операции не дают в результате тождественной истины или лжи при проведении конъюнкции или дизъюнкции с Г] в данном случае.
(c) 9У = "<"
Упрощение возможно только в случае — ">". Получаем:
Ti к Т2 = FALSE ^ а <Ь
Ti V Т2 = TRUE а > b
2. Exprx [NOT] BETWEEN Expr2 AND Expr3
Эта и дальнейшие операции (кроме LIKE) сводятся к Операциям первого типа:
(a) Expr1 BETWEEN Expr2 AND Expr3
T = (Ri.Aj BETWEEN a AND b), a, b e Dom(Ri.Aj) Эквивалентное представление данной операции: Т — (а < Ri.Aj < Ь)
(b) Expr1 NOT BETWEEN Expr2 AND Expr3
T = (Ri.Aj NOT BETWEEN a AND b), a, b € Dom(Ri.Aj) Эквивалентное представление данной операции: Т — (Ri.Aj < а V ii;.j4j > /j)
3. Яжрг [Ж>Т] LIKE Str,
Expr — атрибут строкового типа данных, Str — строка особого типа, содержащая управляющие символы языка SQL. К ним относятся:
♦ '%' Данный символ совпадает при сравнении с любым количеством любых символов строки
• Данный символ совпадает при сравнении с одним любым символом строки Различные диалекты языка SQL от разных производителей СУБД дополняют этот список другими управляющими конструкциями, так что он может отличаться в зависимости от реализации. Но так или иначе сравнение предикатов такого вида имеет схожую схему. По сути данная операция представляет из себя упрощенное регулярное выражение. Проведение таких операций, как дизъюнкция, конъюнкции и отрицание, осуществляется точно также как для регулярных выражений.
4. Expr [iVOT] IN S, где S - список значений или подзапрос, результат которого - это множество значений атрибута Ri.Aj.
(a) Expr IN S
Если S - это список заранее заданных значений:
Т = (Ri.Aj IN {si, 52, - - -, 5;}), € Dom{Ri.Aj),k = 1,...,(
1
Эквивалентное представление: T = ( \/ Ri.Aj — Sk)
k= 1
Если S - это подзапрос: T = {Ri.Aj IN irRiAj{aF{Ri M • • • M R„)))
(b) Expr NOT IN S
Если S - это список заранее заданных значений: Т — (Ri.Aj NOT IN {s 1, a'2 , - - •, f;}), % € Dom(Ri.Ai)ik = l,...,l
Эквивалентное представление: T = ( Д Ri.Aj -ф Sk)
к= 1
Если S - это подзапрос:
Г - (Rt.Aj IN TrRi,Aj(aF(Rx М • • ■ W Rn)))
5. Ехрг в ALL/ANY S.
Данная операция является обобщением операций первого типа и сводится к нему и случае простого списка значений.
(a) Ехрг в ALL S
Если S - это список заранее заданных значений:
T={Ri.Aj в ALL {sb52,...,5i}), sk G Dom(Rj.Aj), к — 1
Эквивалентное представление:
T — (Ri-Aj в si к Ri-Aj в S2 к ---к Ri-Aj в sk)
Если S - это подзапрос:
Т = (Ri-Aj в ALL kRi.a,(<tf(Ri М • • • И Rn)})
(b) Ехрг в ANY S
Если S - это список заранее заданных значений:
T=(Ri.Aj в ANY {«ыз,...,«!». sk G Dom(Ri.Aj), к = 1,..., I
Эквивалентное представление:
Т = (Ri.Aj в si У Ri-Aj в s2 V ■ ■ • V Ri.Aj в %)
Если S - это подзапрос:
Т - {Ri.Aj в ANY TT^AjiMRi м ""' 1X1 Я»)))
3.2. Упрощение конъюнкции и дизъюнкции предикатов, содержащих подзапросы
Если в операциях 4 и 5 типа встречается подзапрос, аналитическое сравнение таких предикатов возможно только в некоторых частных случаях. Дело в том, что нельзя заранее определить область истинности таких предикатов, так как она зависит от реализации базы данных. Использование же информации о БД противоречит аналитическому подходу. Рассмотрим условия, при которых возможно их сравнивать аналитически. Пусть подзапросы имеют следующий вид:
Si и S-2 являются множествами и, следовательно, могут быть следующие ситуации:
1. 5i П — 0
Определить, что подзапросы не пересекаются, аналитически можно, если M(Fj) П M(F2) — 0. В данном случае наблюдаются следующие эквивалентности:
(a) (Ri.Aj IN Si) к (Ri.Aj IN S2) = FALSE
(b) (Ri.Aj = ALL Si) к (Ri-Aj = ALL S2) = FALSE
2. ^ П S2 ф 0
В общем случае пет возможности установить упрощения к виду тождественной истины/лжи.
3.3. Операция отрицания для всех типов предикатов
Логическое отрицание ставит в соответствие противоположный предикат в каждом из случаев.
1. Expr, в Expr2 , (0 G {=, >, <, <, >})
Т - (Ri.Aj в а) ->Т = (Ri.Aj ->в а), а 6
• Т — (Ri.Aj = а) ->Т = (Ri.Aj ф а)
• Т — (Ri.Aj > а) ->Т = (Ri.Aj < а)
• Т — (Ri.Aj > а) -Т = (Ri.Aj < а)
2. Expr{ [NOT] BETWEEN Expr2 AND Expr3
T = (Ri.Aj BETWEEN a AND b)t a,b€ Dom(Rt.Aj) = (Ri.Aj NOT BETWEEN a AND b)
3. Expr [NOT] LIKE Str
T = (Rt.Aj LIKE Str) -,T = (Ri.Aj NOT LIKE Str)
4. Expr [NOT] IN S
T = (Ri.Aj IN S) -¥->T= (Ri.Aj NOT IN S)
5. Expr в ALL/ANY S
T - (Ri.Aj в ALL 5) НГ = (Ri.Aj -Q ANY S)
4. Операции над областями истинности логических формул
Здесь и далее будем рассматривать только случай нескольких промежуточных представлений как более общий.
Проверка на пустоту пересечения областей истинности логических формул осуществляется следующим образом: M(F*)n(M(Fi)UM(F2)U- ■ -UM(Fn)) = Q) M(F* к (i*i V F2 V - - - V Fj) =0 F* к (Ft V F2 V - - - V Fn) = FALSE.
Для выполнения условий теорем 1. 2 требуется установить включение области истинности формулы пользовательского запроса M(F*) в область истинности формул промежуточных представлений М(Fi), M(F2), ■ - -, M(Fn), или M(F*) С M(Fv),v = 1,... то есть должно быть выполнено M(F*) С M(Fi) к M(F*) С M(F2) к ... к M(F*) С M(Fn) = TRUE M(F*) С M(F\ к F2k ... к Fn) = TRUE F* Fj к F2 к ... к Fn = TRUE Fi к F2 к ...к Fn V -iF* = TRUE.
Практическая проверка данных условий аналитическим способом возможна путем упрощения формул при помощи правил, изложенных в предыдущем пункте.
Для получения недостающих в кэше данных необходимо уметь строить формулу, область истинности которой равна разности областей истинности исходных формул: M(F*)\ M(Fi к F2 к ... к Fn) = М(Frt+1). Такая формула F„+1, очевидно, выражается следующим образом: Fn+i — F* к ->(Fi к F2 к ... к Fn).
5. Алгоритм использования кэшированных данных
Далее приводится схема алгоритма аналитической проверки логических ограничений и определения недостающих в кэше данных. Затем рассматривается 2 примера, демонстрирующие его применение.
_C.B. Мосин_
5.1. Схема алгоритма
Пусть сохраненные на пользовательской машине данные определены F = {Fi,.... F„}, целевой запрос обозначим F*. Пусть также выполнены условия а) и б) Теоремы 1.
Алгоритм получения искомого представления данных с использованием кэша. Функция get_ data_from_ server() запрашивает требуемые данные с сервера БД. минуя кэш. Функция get_ data_from_ cache() получает данные из кэша. Алгоритм, лежащий в основе, базируется па результатах теорем 1, 2. Подробное его описание выходит за рамки данной статьи и будет представлено отдельно в будущем. Require: Р — {Fi,..., F„}; Я* = {Я|,...,Л?}; F*;
Fv,v = 1 X*;
Xv,v = 1....
n
(J {Я'/,... = {R\,. ■■ ,R'S,} с .., Л*};
M(F*) С M(Fv),v — 1
if Ai (F*) П (M(FX) U Ai (F>) U ••• U M(Fn)) = 0 then
return get_ data_from_ server() end if
if M (F*) ç (M(Fi) П M(F2) n • • • П M(Fn)) then
return get_ data_from_ cache. () end if
Fn+i F* к -i(Fi к F<2 & ... к Fn) Pn+1 <-7Гх-(^я+1(Йi И---МЛг)) return get_ data_from_ cache ()
Пояснение шагов алгоритма:
1. Проверка условия М(¥*) П (М(^1)иМ(^2) и - • • иМ(Тп)) = 0. Если выполнено, делаем запрос к БД, кэш в данном случае бесполезен.
2. Проверка условия М(Р*) С (М(^) П M(F2) П • •• П М(Рп)). Если выполнено, получаем данные из кэша.
3. Вычисляем недостающие данные: Рп+1 — ^х-(Я] IX ••• м Я;)), М(Я,^) — М(Р*)\M(Fx к к ... к Я,г), Делаем запрос к БД только па эти данные, помещаем их в кэш. По построению условие М(Р*) С (М)П М(Я2) П ■ ■ теперь выполнено. Р* С тгх* л] (-^1 ^ ''' ^ и Я,1+1, и мы можем получить данные из кэша.
5.2. Примеры
Рассмотрим фрагмент схемы БД, представляющий учебный план в университете:
R^ — Студенты (№ студента. ФИО, Группа) Н2 = Группы (Группа. Факультет)
История 3 Химия
а Математика Физика
Физический Математический Химический Экономический
Факультет
Рис. 1. Области истинности логических формул
R:s = Успеваемость (JV^ студента, Дисциплина, Оценка)
Имена отношений выделены курсивом, их первичные ключи - жирным шрифтом. Пример 1.
Предположим, что на компьютере пользователя сохранены результаты выполнения следующих запросов:
1. Список студентов математического факультета:
где 7Гх, — проекция по множеству атрибутов Х\. Х\ = {ФИО, Группа}, а — операция
селекции, F\ — логическая формула: Р\ — (Факультет — "Математический").
В результате данного запроса будут получены те кортежи БД, которые удовлетворяют
формуле Fi, причем с сервера будут запрошены только атрибуты ФИО, Группа.
2. Ведомости по физике:
Р2 = KXAofARI М Дз)),
где Х-2 = {ФИО,Группа,Оценка}, F2 — логическая формула: F2 = (Дисциплина =
"Физика").
3. Отчет успеваемости по физике математического факультета:
P* = IYx.(pf-(RI ИД2ИЙ3)),
где X* = {ФИО, Группа, Оценка}, F* — логическая формула: F* = (Факультет =
"Математический" & Дисциплина = "Физика").
Проверим возможность применения алгоритма. Б нашем случае закэшированные данные - это два первых запроса: Р — {Р\,Р2}. Целевой запрос - Р*. X* = {ФИО, Группа, Оценка}, X = Xi U Х2 = {ФИО, Группа, Оценка} =Ф X* = X. Таким образом, условие а) выполнено, {Hi. Н2} U {Hi, Н3} — {Hi, Ro- Н3} С {Н],Н2,Нз}. Следовательно, условие б) также выполняется.
Выполняем пункт первый алгоритма. Необходимо понять, есть ли вообще что-то общее у закэшированных запросов и целевого запроса, т.е. проверить условие: M(F*) П (M(Fi) U M(F2)) — 0. Как показано в пункте 4, данное условие эквивалентно F* & (F\ V F2) = FALSE. Подставляя формулы запросов, получаем: Факультет — "Математический" & Дисциплина = "Физика" & (Факультет — "Математический" V
M(Fi) M(F2) • M(F*)
•M(F0
• M(F2)
• M(F*)
2
Физ.
Мат.
Факультет
История Химия
Хим.
Эконом. Математика Физика
Дисциплина
Рис. 2. Области истинности логических формул
Дисциплина = "Физика") = FALSE. Применим свойство дистрибутивности: Факультет — "Математический" & Дисциплина — "Физика" = FALSE. Это, очевидно, неверно.
Выполняем второй шаг алгоритма. Необходимо проверить условие M(F*) С (М(Fj) п M(F2)), что, как опять же показано в 4, равносильно Fi & F2 V -iF* TRUE. Подставляя данные, получаем: Факультет = "Математический" к Дисциплина — "Физика" V -■(Факультет = "Математический" к Дисциплина = "Физика") = TRUE. Данное выражение эквивалентно формуле j4v~>j4 и является тождественно истинным при любом значении А. Условие выполнено, алгоритм завершен.
На рис. 1 изображены области истинности формул Ft, F2, F* спроецированные на плоскость (Факультет,Дисциплина). Из рисунка видно, что область истинности M(F*), представляющая из себя точку в данном пространстве, включается в пересечение областей истинности A/(Fi), M(F2).
Пример 2.
Попробуем немного усложнить задачу. Изменим логическую формулу запроса 2: F2 — (Дисциплина = "Физика" Оценка > 3). Теперь запрос имеет смысл «список студентов, сдавших физику».
Условие первого пункта слегка меняется, но результат, очевидно, остается прежним - области истинности по-прежнему пересекаются. Факультет — "Математический" к Дисциплина = "Физика" к (Факультет — "Математический" V Дисциплина = "Физика" к Оценка > 3) = FALSE. Применим свойство дистрибутивности: Факультет = "Математический" к Дисциплина = "Физика" V Факультет — "Математический" к Дисциплина — "Физика" к Оценка > 3 = FALSE. Это неверно, так как дизъюнкция 2 выражений может быть тождественно ложной лишь в случае, если оба выражения тождественно ложны.
На втором шаге встречаем различия с прошлым примером. Новые условия формулы F2 сужают область истинности, и включения не наблюдается. Факультет — "Математический" к Дисциплина = "Физика" к Оценка > 3 V (Факультет ф "Математический" VДисциплина Ф "Физика") = TRUE. Как уже было сказано в прошлом примере, такое выражение может быть тождественно истинным лишь в случае противоположных выражений. Теперь это условие нарушено. Условие не выполнено, переходим на шаг 3 алгоритма.
Третий шаг. Для того, чтобы было возможно воспользоваться кэшем, необходимо сделать запрос на недостающие данные. По сути эти данные удовлетворяют требованию «кортежи, которые есть в целевом запросе, но отсутствующие в кэше». Формализация этого требования выглядит, как это было описано в схеме алгоритма, следующим образом: — тг^*{07^(^1 IX Я2 XI Д3)); — Р* & ^(Т] & Подставляя данные, получаем: — Факультет — "Математический" & Дисциплина — "Физика" & ->(Факультет = "Математический" & (Дисциплина — "Физика" &: Оценка > 3)) ~ Факультет — "Математический" & Дисциплина — "Физика" & (Факультет ф "Математический" V Дисциплина ф "Физика" & Оценка = 2) ~ Факультет = "Математический" Дисциплина — 'Физика" & Оценка — 2. Таким образом, для того, чтобы воспользоваться кэшем, необходимо получить данные о студентах математического факультета, не сдавших физику. В других данных необходимости нет, они уже содержатся в хранилище.
На рис. 2 теперь показана проекция областей истинности па трехмерное пространство (Факультет, Дисциплина, Оценка). Наглядно видна область пересечения областей истинности формул и Она пе включает точку (Мат., Физика, 2), соответствующую данным, которые мы и получим, выполнив шаг 3 алгоритма.
Заключение
В данной статье рассмотрена проблема разработка методов аналитического сравнения логических ограничений пользовательских запросов к реляционной базе данных. Предложен подход, основанный па сравнении областей истинности запросов с использованием аппарата реляционного исчисления. В результате разработан алгоритм использования кэша, позволяющий получать запрашиваемые данные, не прибегая к запросам на сервер или совершать запросы лишь на часть требуемых данных, экономя сетевой трафик и время на выполнение запроса. Данные результаты решают 2 важных задачи использования технологии, описанной в статье [12]:
1. А11 ал и т и чес к ая проверка возможности использования кэша
2. Аналитическое определение недостающих данных
Данные пункты отражены в схеме алгоритма в шагах 1 и 3 соответственно.
Проблема актуализации данных не затрагивается в этой работе. Однако она может быть решена путем учета запросов на сервере и обновлении данных при помощи триггеров.
В дальнейшем планируется применить методы и алгоритмы, изложенные в данной статье для разработки ПО, являющегося прослойкой над СУБД и управляющего использованием кэша, снижая тем самым количество передаваемых данных и общее время работы системы.
Предложенная технология будет использована при динамическом построении многомерных данных. Промежуточные представления имеют ту же структуру данных, что и таблицы соединений, используемые для построения гиперкубов. Сохраненные представления данных могут храниться па компьютере пользователя-аналитика и существенно сократить время на формирование данных, необходимых для принятия решений.
Работа выполнена по проекту ОМН РАН X9 П.2.П/1.1-7.
Литература
1. Afrati F.N., Li С., Mitra P. Rewriting queries using views in the presence of arithmetic comparisons // Theor. Comput. Sei. 2006. Vol. 368, No. 1-2. P. 88-123. DOI: 10.1016/j.tcs.2006.08.020.
2. Baralis E., Paraboschi S., Teniente E. Materialized Views Selection in a Multidimensional Database // Proceedings of the 23rd International Conference on Very Large Data Bases. VLDB '97. Sao Francisco, CA, USA : Morgan Kaufmann Publishers Lie., 1997. P. 156 165.
3. Church A. Introduction to Mathematical Logic. [S. 1.] : Princeton University Press, 1996. 378 p.
4. Date C.J. SQL and Relational Theory. [S. 1.] : O'Reilly, 2009. 448 p.
5. Denny M., Franklin M.J. Predicate Result Range Caching for Continuous Queries // Proceedings of the 2005 ACM SIGMOD International Conference on Management of Data. SIGMOD '05. New York, NY, USA : ACM, 2005. P. 646-657. DOI; 10.1145/1066157.1066231.
C. Gupta H. Selection of Views to Materialize in a Data Warehouse // Proceedings of the 6th International Conference on Database Theory. ICDT '97. London, UK. UK : Springer-Verlag, 1997. P. 98-112.
7. Gupta H., Mumick LS. Selection of Views to Materialize Under a Maintenance Cost Constraint. // Proceedings of the 7th International Conference on Database Theory. ICDT "99. London, UK, UK : Springer-Verlag, 1999. P. 453-470.
8. Hilbert D., Ackermann W. Principlesof Mathematical Logic. fS. 1.]: AMS Chelsea Publishing, 1950. 172 p.
9. Kalnis P., Papadias D. Proxy-Server Architectures for OLAP // SIGMOD Conference / Ed. by Sharad Mehrotra, Timos K. Sellis. [S. 1.] : ACM, 2001. P. 367 378. DOI: 10.1145/375663.375712.
10. Keller A.M., Basu J. A Predicate-based Caching Scheme for Client-Server Database Architectures // VLDB J. 1996. Vol. 5. No. I. P. 35-47.
11. Mendelson E. Introduction to Mathematical Logic. 5 edition. [S. 1.] : CRC Press, 2009. 469 p.
12. Mosin S., Zykin S. Truth space method for caching database queries // Modeling and Analysis of Information Systems. 2015. Vol. 22, No. 2. P. 248-258.
13. Olston C., Jiang J., Widom J. Adaptive Filters for Continuous Queries over Distributed Data Streams // Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data. SIGMOD 4)3. New York, NY, USA : ACM, 2003. P. 563-574. DOI: 10.1145/872757.872825.
14. Park C., Kiiri M., Lee Y. Usability-based caching of query results in OLAP systems // Journal of Systems and Software. 2003. Vol. 68, No. 2. P. 103-119. DOI: 10.1016/S0164-1212(02)00142-5.
15. Scheuermann P.. Shim J., Vingralek R. WATCHMAN: A Data Warehouse Intelligent Cache Manager // Proceedings of the 22th International Conference on Very Large Data Bases. VLDB '96. San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 1996. P. 51 62.
16. Sliiin J., Scheuermann P.. Vingralek R. Dynamic Caching of Query Results for Decision Support Systems. // Proceedings of 11 th International Conference oil Scientific and Statistical Database Management, (SSDBM). [S. 1. : s. п.], 1999. P. 254-263.
Mot: и h Сергей Владимирович, аспирант, инженер-исследователь лаборатории методов преобразования и представления информации, Институт математики им. С.Л. Соболева СО РАН (Омск, Российская Федерация), [email protected]
Поступила в редакцию 25 августа 2015 г.
Bulletin of the South Ural State University
Series "Computational Mathematics and Software Engineering"
2016, vol. 5, no. 1, pp. 85-99
DOI: 10.14529/cmsel60108
TRUTH SPACE COMPARISON OF RELATIONAL DATABASE QUERIES
S. V. Mosin, Sobolev's Institute of Mathematics, Omsk, Russian Federation
We propose new methods and algorithms of analytical truth space comparison for Relational Database queries. Such a comparison aims to define the possibility of partial or Full cache usage. The cache is stored on user's computer and Database server is supposed to be remote. In case user query's result is contained in cache we can simply take the data from there avoiding any server requests. The suggested method may also be used for defining data missing in cache and performing query to only receive that data. Analytical computations are also used to achieve this and it differs our approach from existing ones. Query comparison algorithms are based on the Predicate Logic theory. Formulas are presented by logical constraints in SQL and predicates correspond to SQL operations.
Keywords: relational database, cache, truth space.
FOR CITATION
Mosin S.V. Truth Space Comparison of Relational Database Queries. Bulletin of the South
Ural State University. Series: Computational Mathematics and Software Engineering. 2016.
vol. 5, no. 1. pp. 85-99. (in Russian) DOI: 10.14529/cmsel60108.
References
1. Afrati F.N.. Li C., Mitra P. Rewriting queries using views in the presence of arithmetic comparisons. Theor. Comput. Sci. 2006. vol, 368. no. 1-2. pp. 88-123. DOI: 10.1016/j.tcs.2006.08.020.
2. Baralis E., Paraboschi S., Teniente E. Materialized Views Selection in a Multidimensional Database. Proceedings of the 23rd International Conference on Very Large Data Bases. (VLDB '97). San Francisco, CA. USA : Morgan Kaufmann Publishers Inc., 1997. pp. 156-165.
3. Church A. Introduction to Mathematical Logic. [S. 1.] : Princeton University Press, 1996. 378 p.
4. Date C.J. SQL and Relational Theory. [S. l.J : O'Reilly 2009. 448 p.
5. Denny M., Franklin M.J. Predicate Result Range Caching for Continuous Queries. Proceedings of the 2005 ACM SIGMOD International Conference on Management of Data (SIGMOD ■05). New York, NY, USA : ACM, 2005. pp. 646-657. DOI: 10.1145/1066157.1066231.
6. Gupta H., Mumick I. Selection of Views to Materialize in a Data Warehouse. Proceedings of the 6th International Conference on Database Theory (ICDT '97). London, UK, UK : Springer-Verlag, 1997. pp. 98-112.
7. Gupta II. Selection of Views to Materialize Under a Maintenance Cost Constraint. Proceedings of the 7th International Conference on Database Theory (ICDT '99). London, UK. UK : Springer-Verlag, 1999. pp. 453-470.
8. Hilbert D., Ackermann W. Principles of Mathematical Logic. [S. 1.] : AMS Chelsea Publishing, 1950. 172 p.
9. Kalnis P., Papadias D. Proxy-Server Architectures for OLAP. Proceedings of the SIGMOD Conference / Ed. by Sharad Mehrotra, Timos K. Sellis. [S. 1.] : ACM. 2001. pp. 367-378. DOI: 10.1145/375663.375712.
10. Keller A.M., Basu J. A Predicate-based Caching Scheme for Client-Server Database Architectures. The International Journal on Very Large Data Bases. 1996. vol. 5, no. 1. pp. 35-47.
11. Mendclson E. Introduction to Mathematical Logic. 5 edition. [S. 1.] : CRC Press, 2009. 469 p.
12. Mosin S., Zykin S. Truth space method for caching database queries. Modeling and Analysis of Information Systems. 2015. vol. 22, no. 2. pp. 248 258.
13. Olston C., Jiang J., Widom J. Adaptive Filters for Continuous Queries over Distributed Data Streams. Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data (SIGMOD '03). New York, NY. USA : ACM, 2003. pp. 563-574. DOI: 10.1145/872757.872825.
14. Park C., Kim M., Lee Y. Usability-based caching of query results in OLAP systems. Journal of Systems and Software. 2003. vol. 68, no. 2. pp. 103-119. DOI: 10.1016/S0164-1212(02)00142-5.
15. Scheuermann P., Shim J., Vingralek R. WATCHMAN: A Data Warehouse Intelligent Cache Manager. Proceedings of the 22th International Conference on Very Large Data Bases (VLDB '96). San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 1996. pp. 51 -62.
16. Shim J., Scheuermann P., Vingralek R. Dynamic Caching of Query Results for Decision Support Systems. Proceedings of 11th International Conference on Scientific and Statistical Database Management (SSDBM). [S. 1. : s. n.], 1999. pp. 254 263.
Received August 25, 2015.