Научная статья на тему 'Локальные элиминационные алгоритмы обработки запросов в базах данных'

Локальные элиминационные алгоритмы обработки запросов в базах данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
43
11
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Щербина О. А.

Рассмотрено использование локальных элиминационных алгоритмов (ЛЭА) для обработки запросов в реляционных базах данных. Обсуждаются особенности реализации локального алгоритма, использующего лишь прямую часть.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The applying local elimination algorithms (LEA) for processing queries in relational databases is considered. The special features of realization of local algorithm using only a forward part are discussed.

Текст научной работы на тему «Локальные элиминационные алгоритмы обработки запросов в базах данных»

УДК 519.68

ЛОКАЛЬНЫЕ ЭЛИМИНАЦИОННЫЕ АЛГОРИТМЫ ОБРАБОТКИ

ЗАПРОСОВ В БАЗАХ ДАННЫХ1 © Щербина O.A.

University of Vienna Fakultaet fuer Mathematik Nordbergstr., 15, Vienna, 1090, Austria e-mail: oleg.shcherbina@univie.ac.at

Abstract. The applying local elimination algorithms (LEA) for processing queries in relational databases is considered. The special features of realization of local algorithm using only a forward part are discussed.

Введение

Использование локальной информации [1] при изучении сложных дискретных систем, при разработке методов декомпозиции для решения больших разреженных дискретных задач является весьма актуальным, причем упомянутые задачи принадлежат как области дискретной оптимизации (ДО) [2], [3], так и области искусственного интеллекта (ИИ) [4], баз данных [5], линейной алгебры (мультифронтальные методы решения разреженных систем линейных уравнений [6], [7], имеющие декомпозиционный характер).

При изучении сложных дискретных систем не всегда возможно получить (или вычислить) глобальную информацию об объекте, поэтому представляет интерес получение информации об объекте, рассматривая его по частям, т.е. локально, используя предложенные Ю.И. Журавлевым локальные алгоритмы вычисления информации [1].

Важной особенностью локальных алгоритмов является вычисление и использование именно локальной информации (т.е. информации об элементах окрестности элемента) при решении разреженных дискретных задач, В [8] предложен общий класс локальных элиминационных алгоритмов вычисления информации для решения дискретных разреженных задач, позволяющих осуществлять вычисление глобальной информации о решении задачи с помощью локальных вычислений на основе анализа окрестностей элементов задачи. Локальные элиминационные алгоритмы (ЛЭА) вычисления информации относятся к графовым декомпозиционным подходам. Алгоритмическая схема ЛЭА представляет собой бесконтурный орграф, вершинами которого являются локальные подзадачи, соответствующие окрестностям элементов, а дуги - выражают информационную зависимость подзадач друг от друга, В [9] показано, что указанный орграф является элиминационным деревом, [10]. Графовой интерпретацией ЛЭА является элиминационная игра (Parter [11]).

В [12] рассмотрено решение (неоптимизационной) задачи удовлетворения ограничений, структура которой задается графом взаимосвязей переменных, с помощью ЛЭА [8].

1Работа выполнена при финансовой поддержке австрийского фонда FWF, грант No. P20900-N13

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

1, Основные понятия реляционной теории управления базами

данных

Теория БД включает широкий круг вопросов, относящихся к теоретическим проблемам БД и системам управления БД (СУБД), в том числе создание языков запросов, теорию финитных моделей, теорию проектирования БД, теорию зависимостей и др. СУБД предназначены для организации хранения, поиска и манипулирования большими объемами данных,

1,1, Реляционные базы данных. Основы реляционной модели данных были впервые изложены в статье Кодда [13] в 1970 г. Эта работа послужила стимулом для большого количества исследований, в которых реляционная модель получила дальнейшее развитие. Сам термин «реляционное представление данных», впервые введенный Коддом [13], происходит от термина relation - отношение, поскольку в основе всей реляционной теории баз данных лежит понятие отношения, а БД в этой модели является конечным множеством отношений.

Введем необходимые понятия. Имеется конечное множество атрибутов U = {xi,..., хт} с соответствующими доменами Di,..., Dm. Реляционной схемой R называется подмножество U. Схемой БД называется множество реляционных схем D = {Ri,... ,Rn}. Отношением Г{ с реляционной схемой R^ называется множество Д^-кортежей, где ^¿-кортеж - отображение атрибутов из Ri на их домены, База данных d со схемой D - множество {ri,,,, ,г„} отношений. Реляционную схему R (т.е. множество атрибутов) отношения г будем называть также диапазоном отношения г.

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

Каждому отношению г степени п, определенному на диапазоне R, можно поставить в соответствие некоторый n-меетный предикат p(R), определяющий, будет ли кортеж принадлежать отношению (этот предикат принимает значение «истина» для всех кортежей г). Этот предикат называют предикатом отношения. Говорят, что кортеж / на диапазоне R удовлетворяет p(R), если p(R) принимает значение «истина» для этого кортежа. Это записывается в форме / |= p(R). В свою очередь, каждый n-меетный предикат p(R) задает некоторое n-арное отношение на домене /7. состоящее из всех кортежей, для которых p(R) истинен, т.е. {/ 6 Ец : / |= p(R)} (Ец - множество всех R-кортежей),

Таким образом, существует взаимно однозначное соответствие между п-арными отношениями и n-меетными предикатами,

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

Пример 1 ([15]). Реляционная БД состоит из следующих отношений.

Таблица 1, Таблица 2,

Отношение 7*1(0, г) Отношение 7*2(0, р)

автор о место жительства г

Edmonds Cook Waterloo Toronto

Таблица 3, Отношение Гз(р, s)

публикация р тема s

Р алгоритмы

NP сложность

Р или NP драма

автор о публикация р

Edmonds Cook Shakespeare Р NP Р или NP

Таблица 4,

Отношение r±(j>, j, у)

публикация р журнал j год у

Р NP Can, J, Math, Am. J. Math. 1965 1971

Пример 2 (Реляционная алгебра и реляционное исчисление). Известны два эквивалентных способа манипулирования реляционными данными - реляционная алгебра и реляционное исчисление.

Фактическим стандартом доступа к реляционным данным стал язык запросов SQL (Structured Query Language), который представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий ключевые слова на английском языке и расширенный дополнительными возможностями, отсутствующими в реляционной алгебре и реляционном исчислении.

Фундаментальный результат, известный как теорема Кодда [16], устанавливает эквивалентность реляционной алгебры и реляционного исчисления в том смысле, что для любого запроса, заданного в терминах одного языка, можно эффективно построить (за полиномиальное время) запрос на другом языке, который эквивалентен, т.е. производит тот же ответ для любого наполнения БД,

Этот результат по сути дела означает, что мы можем декларативно задать, что мы хотим найти, а СУБД автоматически находит, как вычислить запрос с помощью реляционных операторов,

1) Реляционное исчисление похоже на исчисление предикатов первого порядка. Формулы здесь строятся из элементарных формул вида х\ = х2 и p(Ri(xi,... ,хт)) (где Xi - переменные или константы из соответствующих доменов), использующие операторы Л, V, -i булевой алгебры и квантификаторы V, 3, Формула tp со свободными параметрами ух,... ,ук задает запрос {у\,... ,Ук | ф{Уъ • • •, У к)}] Для данной

БД d результатом выполнения запроса является А;-арное отношение, содержащее все кортежи oí,,,,, Ofe такие, что (р(аi,,,,, a,k) истинна в d. Например, запрос в описанном выше примере

{j | (3o)(3p) Waterloo)) А р(Д2(а, p))Ap(Ri{p, j, 1965))}

запрашивает журналы, в которых опубликовались авторы из Waterloo в 1965 г, (Здесь p(Ri) - предикаты, соответствующие отношениям r¿ (г = 1,2,4)),

Реляционное исчисление является декларативным, то есть оно задает, что мы хотим вычислить, но не задает, как это сделать,

2) Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающих отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов и определяется с помощью элементарных операций над отношениями.

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

Согласно КОДДУ [13], определяют восемь реляционных операторов, объединенных в следующие две группы.

Теоретико-множественные операторы: объединение, пересечение, вычитание, декартово произведение.

Специальные реляционные операторы,: выборка, проекция, соединение, деление. Не все эти операторы являются независимыми, т.к. операторы соединения, пересечения и деления могут быть выражены через другие реляционные операторы. Остальные реляционные операторы (объединение, вычитание, декартово произведение, выборка, проекция) являются примитивными операторами - их нельзя выразить друг через друга.

Рассмотрим некоторые операторы, реляционной алгебры.

(1) выборка или селекция, обозначаемая о>(г), находит кортежи отношения г, удовлетворяющие заданному условию F. Смысл операции выборки - выбрать кортежи отношения, удовлетворяющие некоторому условию. Таким образом, операция выборки дает «горизонтальный срез» отношения по некоторому условию,

(2) проекция 7Гх(г) ограничивает отношение г подмножеством X атрибутов. Операция проекции дает «вертикальный срез» отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей,

(3) естественное соединение г\ ix г2 образует отношение над объединением атрибутов двух отношений г\ и г2 путем сочетания каждого кортежа t\ отношения г\ с каждым кортежем í2 отношения г2, которое согласуется по общим атрибутам отношений. Заметим, что если R\ = />'•_>. то г\ ix r2 = п П г2. Если все R¡ различны, то ix r¿ = xr¿,

(4) соединение по условию F: г ex s = {(х, у) е г х s : F(x, у) = истина,}.

(5) переименование Qa\b{t), изменяющее имя атрибута А на В.

(6) объединение г\ U г2 и разность г\ — г2 двух отношений над одним множеством атрибутов (в обычном теоретико-множественном смысле).

Отметим следующие свойства операторов реляционной алгебры: коммутативность и ассоциативность соединений, коммутативность выборки и проекции, коммутативность выборки и естественного соединения [14].

Пример 3. Запрос о журналах, в которых опубликовались авторы из Waterloo в 1965 г., записан ниже с помощью операторов реляционной алгебры: ^j® i=W aterloo® у= 1965 (п. IX г2 сх г4). Обработка этого запроса с помощью операторов реляционной алгебры возможна различными способами, характеризующимися различной эффективностью, «Алгебраическая» оптимизация запросов [14] использует, в частности, правило как можно более раннего вычисления выборки (до соединения), поскольку вычисление соединения требует большой вычислительной работы.

Так, более эффективно выполнить выборку у = 1965 для отношения г 4 перед соединением его с г2 (это сопряжено с меньшим объемом вычислений!). Выборка <7i=Waterioori(°; О достигается путем вычеркивания из таблицы отношения г\ строк, в которых % ф Waterloo.

Таблица 5, Таблица 6,

г4(р, j, 1965): Выборка отношения г\(а, 'Waterloo'): Выборка отноше-

ч{р, j, у) = ^=1965^4(р, j, у) НИЯ r[(a, г) = ai='Waterio&ri(a, г)

публикация р журнал j год у

Р Can, J, Math, 1965

автор о место жительства i

Edmonds Waterloo

2, Запросы в базах данных

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

2,1, Задачи удовлетворения ограничений и базы данных. Задачи удовлетворения ограничений (УО), известные в англоязычной литературе как constraint satisfaction problems (CSP) [12], широко используются при решении ряда практически важных задач ИИ, таких как составление расписаний, проектирование электронных схем, поддержка принятия решений.

Определение 1 ([12]). Задача УО (ЗУО) определяется множеством дискретных переменных .г |......г„. для каждой из которых задана область определения или домен

Dj = {Sp,..., Sp^} (j = 1,... ,n), и множеством ограничений. Ограничением называется пара (г, scope(r)), где г - отношение, определенное на диапазоне scope(r).

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

Укажем на весьма тесную связь между задачами удовлетворения ограничений и базами данных, что показано в следующей таблице [17]:

Таблица 1,

Терминология удовлетворения ограничений и БД

Терминология удовлетворения ограничений Терминология БД

задача удовлетворения ограничений = база данных

переменная = атрибут

домен = домен атрибута

ограничение отношение

диапазон отношения реляционная схема

множество решений соединение всех отношений

Итак, поиск ответа на запрос в базе данных может быть сведен к решению задачи УО, которая может быть решена с помощью локального элиминационного алгоритма (ЛЭА) [12].

2,2, Графовые и гиперграфовые модели запросов. Графы и гиперграфы [18] используются для представления структуры запросов. Структура запроса в реляционной БД представляется в виде гиперграфа, вершины которого соответствуют атрибутам, а ребра - соответствуют реляционным схемам отношений Щ в одном запросе (см, рис, 1 а)). Класс гиперграфов, называемых ациклическими, соответствует схемам со многими желательными свойствами [5], Было доказано еще в 1981 г, (УаппакаМв [19]), что для решения различных Л/'-полных задач на схемах БД с «простыми» (ациклическими) гиперграфами имеются полиномиальные алгоритмы.

Часто вместо гиперграфового представления структуры запроса в реляционной БД используется более наглядное представление с помощью первичного и двойственного графов. Первичный граф называется обычно графом, взаимосвязей [20] или графом, Гайфмана {Сщртап [21]) запроса БД, В графе Гайфмана вершины соответствуют атрибутам запроса и неориентированное ребро между двумя вершинами соответствует наличию отношения в запросе, содержащего эти атрибуты (см, рис, 1 Ь)), Будем называть такие атрибуты взаимосвязанными. В дальнейшем нам потребуется понятие окрестности атрибута: множество атрибутов, взаимосвязанных с атрибутом х в графе взаимосвязей С, называется окрестностью МЬ{х) атрибута х в графе С. Двойственным графом, гиперграфа Н = (V, 5) с множеством вершин V и множеством ребер 5 называется граф, вершины которого соответствуют ребрам гиперграфа, причем пара таких вершин соединяется ребром в двойственном графе, если они имеют общие вершины из V (см, рис, 1 с)).

Н-2 Я4

а)

Ь)

Рис. 1. Представление структуры запроса из примера 1: а) в виде гиперграфа; Ь) в виде графа Гайфмапа (взаимосвязей атрибутов); с) в виде двойственного графа.

2,3, Обработка запросов в базах данных с помощью локального элимина-ционного алгоритма. Рассмотрим реляционную БД с1, состоящую из множества отношений {гь ,,,, г,,} с реляционными схемами Г1|. ,,,, /?„. Запрос состоит в нахождении выборки ор от соединения отношений, сопровождающейся проекцией па некоторую область 5*

IX ... IX г,,)). (2.1)

Отметим, что запросы такого вида эквивалентны так называемым конъюнктивным, запросам |22|, которые являются наиболее часто встречающимся типом запросов.

Рассмотрим метод поиска ответа на запрос вида (2.1), основанный на последовательной элиминации атрибутов с помощью ЛЭА, который вычисляет информацию о локальных элементах (атрибутах) задачи нахождения ответа па запрос в реляционной БД, задаваемой структурным графом, записывая локальную информацию об этих элементах в виде новых отношений, добавляемых к задаче, затем элиминируя просмотренные элементы и использованные отношения. При этом рассматриваются все отношения, содержащие некоторый атрибут. После нахождения соединения (|х) этих отношений |12|, атрибут элиминируется с помощью проекции полученного отношения па множество оставшихся атрибутов. Эти операции ироделываются далее до тех пор, пока не останется лишь одно отношение, которое и является решением задачи - ответом па данный запрос. Если последнее отношение непусто, то ответ па запрос имеется, если же пусто - то ответа пет.

Для решения задачи выполнения запроса, описываемого системой отношений

/•|...../•„ с атрибутами ,г\....../■„,. при заданном упорядочении Аж атрибутов, ЛЭА

выглядит следующим образом:

1, Выбрать очередной атрибут х из схемы БД согласно упорядочению Аж. Найти соединение отношений, соответствующих окрестности МЬ(х) элемента х в текущем структурном графе, сформировав новое отношение г с диапазоном (х, Ш(х)).

2, Спроектировать полученное отношение на множество атрибутов, соответствующих окрестности МЬ(х) атрибута х. В результате получится новое отношение г = 7ТМ(х)г(х) с диапазоном МЬ(х), добавляемое к отношениям задачи. Если отношение с тем же набором переменных уже имеется, найти их пересечение. Если пересечение пусто, то задача выполнения запроса решения не имеет,

3, Элиминировать атрибут х вместе с соответствующими отношениями. Из элементов его окрестности МЬ(х) создается клика в структурном графе (эта клика соответствует отношению г ), Создание клик изменяет структурный граф и окрестности элементов,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4, Продолжать до тех пор, пока не останется нерассмотренных отношений.

Рассмотрим подробнее детали реализации ЛЭА при решении задачи выполнения запроса в БД в случае, когда структурный граф является графом взаимосвязей атрибутов [20], используя описанный выше пример.

После использования правила возможно более раннего вычисления выборок, описанный в примере запрос приобретает вид: Кз((ъ=тг<аег1ооГ1(а,1)) IX (г2(а,р) IX {оу=т&ГА{р, 3,у))))- Выборки оу=ШъП{р,3,У) и 0{=щгаЫт1оогх(о, г) являются отношениями, заданными соответственно таблицами 5 и 6,

Рассмотрим упорядочение Аж = {р, а} для элиминации атрибутов. Для элиминации атрибута р выделим взаимосвязанные с ним атрибуты: МЬ(р) = {о} (рис, 1 Ь)) и отношения, содержащие р: г2(а,р) и г4(р.^,у) = ау^^г^р, з,у). Вычислим соответствующее соединение г2^(а,р,],у) = г2(а,р) IX г4(р.^,у) (см, табл. 7) и проекцию его на {о,^, у}: г24(о, j, у) = ],у) (табл. 8), Для элиминации атрибу-

та о вычислим соответствующее соединение г 124(о, г, у) = т\(а, г) IX г'24(а, у) (табл. 9), а затем найдем проекцию г124(г, 3, у) = тт^ ^ у}Г124{а, i, 3, у) (табл. 10), Ответ на запрос •7т7т'124(г, у) показан в табл. 11,

Таблица 7,

Отношение г24(а, р, 3, у)

Таблица 8, Отношение г.

24 \

3, у)

автор о публикация р журнал з год у

Edmonds Р Сап, J, Math, 1965

автор о журнал з год у

Edmonds Сап, J, Math, 1965

Таблица 9,

Отношение ri24(a, i, j, у)

автор о место жительства i журнал з год у

Edmonds Waterloo Сап, J, Math, 1965

Таблица 10, Таблица 11,

Отношение г124(г, j, у) Отношение itjr12±{h j, у)

место жительства i журнал j год у

Waterloo Can. J. Math. 1965

журнал j

Can, J, Math,

Как видно из решения примера, обратная часть ЛЭА здесь не нужна, так как в таблице 11 найден ответ на запрос.

Заключение

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

список литературы

1. Журавлев Ю.И. Избранные научные труды. — М.: Магистр, 1998. — 420 с.

2. Сергиенко И.В., Шило В.П. Задачи дискретной оптимизации: проблемы, методы решения, исследования. — К.: Наукова думка, 2003. — 162 с.

3. Леонтьев В.К. Дискретная оптимизация // Журнал вычислительной математики и математической физики. - 2007. - Т. 47. - С. 338-352.

4. Dechter R. Bucket elimination: A unifying framework for reasoning // Artificial Intelligence. — К)!)!). V. 113. — P. 41-85.

5. Beeri C., Fagin R., Metier D., Yannakakis M. On the desirability of acyclic database schemes // J. ACM. - 1983. - V. 30. - P. 479-513.

6. George A., Liu J. W.H. Computer Solution of Large Sparse Positive Definite Systems. — Englewood Cliffs: Prentice-Hall Inc., 1981. — 324 p.

7. Rose D.J. A graph-theoretic study of the numerical solution of sparse positive definite systems of linear equations // Graph Theory and Computing /R.C. Read (ed.). — New York: Academic Press, 1972. - P. 183-217.

8. Щербина О.А. Локальные элиминационные алгоритмы решения разреженных дискретных задач // Журнал вычислительной математики и математической физики. — 2008. — Т. 48, N 1. - С. 161—177.

9. Щербина О.А. Роль графовых структур в теории локальных элиминационных алгоритмов) // Динамические системы. — 2008. — Вып 24. — С. 83-98.

10. Liu J. W.H. The role of elimination trees in sparse factorization // SIAM Journal on Matrix Analysis and Applications. — 1990. — V. 11. — P. 134-172.

11. Parter S. The use of linear graphs in Gauss elimination // SIAM Review. — 1961. — V. 3. — P. 119-130.

12. Щербина О.А. Локальные элиминационные алгоритмы для задач удовлетворения ограничений // Таврический вестник информатики и математики. — 2007. — .v" 1. — С. 24-39.

13. Codd E.F. A relational model of data for large shared data banks // Commun. ACM. — 1970. — V. 13. - P. 377-387.

14. Ullman J. Principles of Database and Knowledge-Base Systems, 2 Volumes. — New York: Computer Science Press, 1988/89.

15. Yannakakis M. Graph-theoretic methods in database theory // Proc. 9th ACM PODS. — 1990. — P. 230-242.

16. Codd E.F. Relational Completeness of Data Base Sublanguages. IBM Research Report RJ987 (March 6th, 1972). — Republished in Randal J. Rustin (ed.), Data Base Systems: Courant Computer Science Symposia Series 6, Englewood Cliffs, N.Y.: Prentice-Hall, 1972.

17. Pearson J., Jeavons P. A survey of tractable constraint satisfaction problems. Technical Report CSD-TR-97-15, Royal Holloway University of London, 1997.

18. Емеличев В.А., Мельников О.И., Сарванов В.И., Тышкевич Р.И. Лекции по теории графов. — М.: Наука, 1990. — 384 с.

19. Yannakakis M. Computing the minimum fill-in is NP-complete // SIAM J. Alg. Disc. Meth. — 1981. - V. 2. - P. 77-79.

20. Bertele U., Brioschi F. Nonserial Dynamic Programming. — New York: Academic Press, 1972. — 235 p.

21. Gaifman H. On local and non-local properties // Logic Colloquium '81. — North Holland, 1982.

22. Arnborg S., Proskurowski A. Characterization and recognition of partial k-trees // SIAM J. Alg. Discr. Meth. - 1986. - V. 7. - P. 305-314.

Статья поступила в редакцию 25.08.2009

i Надоели баннеры? Вы всегда можете отключить рекламу.