WikiDer > Монотонный запрос

Monotonic query

В теория баз данных и системы, а монотонный запрос это тот, который не теряет кортежи, которые он ранее выводил, с добавлением новых кортежей в базу данных. Формально запрос q по схеме р является монотонным тогда и только тогда, когда для каждых двух экземпляров я, J из р, (q должен быть монотонная функция).[1]

Примером монотонного запроса является Выбрать-проект-присоединиться запрос, содержащий только условия равенства (также известный как конъюнктивные запросы). Примерами немонотонных запросов являются запросы агрегирования или запросы с заданной разницей.

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

Приложения

Несложные запросы

Монотонные запросы важны при разделении SQL-запросов. Если запрос является монотонным, это означает, что вложенный запрос может быть невложенным.

Потоки данных

Поток данных - это непрерывная, упорядоченная (неявно по времени прибытия или явно по метке времени) последовательность элементов в реальном времени. Количество элементов считается бесконечным и поэтому не может быть сохранено полностью. Запросы к потокам данных часто называют непрерывный или же длительный запросы, и в основном выполняются в ограниченном окне кортежей в потоке. Чтобы оценить непрерывный запрос, можно просто повторно оценить запрос по вновь поступившим кортежам и добавить новые кортежи к существующему набору результатов. Более формально, пусть А (Q, t) быть набором ответов непрерывного запроса Q в момент времени t, τ - текущее время, а 0 - время начала. Тогда, если Q монотонный, его набор результатов в момент времени τ равен

Напротив, немонтонические запросы имеют следующую семантику ответов:

[2]

Просмотр обслуживания

  1. ^ Абитебул, Серж; Ричард Халл; Виктор Виану (1994). Основы баз данных. Эддисон-Уэсли.
  2. ^ Голаб, Лукаш; М. Тамер Озсу (июнь 2003 г.). «Проблемы управления потоками данных». Запись SIGMOD. 32 (2).