Формирование базы знаний экспертной системы диагностики СУБД

КОРПОРАТИВНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ

УДК 681.3

ФОРМИРОВАНИЕ БАЗЫ ЗНАНИЙ ЭКСПЕРТНОЙ СИСТЕМЫ ДИАГНОСТИКИ СУБД

© 2007 г. Т.В. Коломиец, М.П. Малыхина

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

В данной статье приводится пример того, как с использованием исчисления предикатов можно описать одну из областей настройки производительности в СУБД Oracle - индексирование данных.

Ниже приводится перечень и трактовка основных объектов понятий, связанных в СУБД Oracle c индексированием и его влиянием на производительность, которые будут использоваться в данном примере.

Таблица. Таблица реляционной БД.

Столбец. Столбец реляционной таблицы.

Индекс. В примере рассматриваются два из нескольких видов индекса: на основе В*-дерева («btree-индекс») и индекс на основе битовой карты («b/t-индекс»).

Запрос. Стандартная SQL--инструкция SELECT.

Предикат запроса. Секция WHERE SQL-запроса. Избирательность предиката. Количество строк в выборке, полученное за счет применения предиката.

Избирательность запроса. Количество строк в выборке, полученное за счет применения всех условий ограничения запроса.

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

Дезорганизованность таблицы по столбцу означает, что большинство картежей с идентичным значением в данном столбце распределены случайно, по удаленным друг от друга блокам таблицы.

Далее необходимо составить систему выражений исчисления предикатов и интерпретировать ее на конкретном множестве объектов и отношений предметной области. Множество используемых атомарных предикатных выражений описано ниже в формате «предложение исчисления предикатов - семантика предложения».

table_org(tab, col) - таблица tab организована по столбцу col.

table_disorg(tab, col) - таблица tab дезорганизована по столбцу col.

btreeindex(col) - проиндексировать столбец col «btree-индексом».

bit index(col) - проиндексировать столбец col «bit-индексом».

query_columns_and(que, coll, coli) - столбцы coll и coli используются в предикатах запроса que, связа-ных логической операцией «И».

query_columns_or(que, coll, coli) - столбцы coll и coli используются в предикатах запроса que, связаных логической операцией «ИЛИ».

query_column(col, que) - столбец col задействован в ограничениях запроса que.

low_q_selectivity(que) - запрос que обладает низкой избирательностью.

high_q_selectivity(que) - запрос que обладает высокой избирательностью.

low_q_col_selectivity(que) - запрос que обладает низкой избирательностью по столбцу col.

high_q_col_selectivity(que) - запрос que обладает высокой избирательностью по столбцу col.

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

Для каждой таблицы, если она дезорганизована по какому-либо столбцу и все запросы по данному столбцу обладают низкой избирательностью, - не следует создавать «¿tree-индекс» по данному столбцу:

VtabVcol (table _ disorg (tab, col) л

A^que (query _ column (col, que) л

л low _ q _ col _ selectivity (que, col

^ —btree _ index (col)).

Для каждой таблицы, если она организована по каким-либо столбцам, использующихся в запросах с высокой или средней избирательностью по этим столбцам, - следует создавать «btree-индексы» по данным столбцам:

VtabVcol (table _ org (tab, col) л ÁBque (query _ column (col, que) л л—low _ q _ col _ selectivity (que, col)) ^ ^ btree _ index (col)).

Для каждой таблицы, если она дезорганизована по каким-либо двум столбцам и все запросы, использующие эти столбцы в предикатах, объединенных логической операцией «И»/«ИЛИ», обладают высокой избирательностью, - следует создавать «btree-индексы» по данным столбцам:

VtabVcollVcol2 (table _ disorg (tab, coll) л

Atable _ disorg (tab, col2) л

лVque ((query _ columns _ and (que, coll, col2) v

v query _ columns _ or (que, coll, col2)) л

Ahigh _ q _ selectivity (que)) ^

^ btree _ index (coll) л btree _ index (col2)).

Для каждой таблицы, если она дезорганизована по каким-либо столбцам и существуют запросы, использующие эти столбцы в предикатах, объединенных логической операцией «И»/«ИЛИ», которые не обладают низкой избирательностью, - следует создавать «bit-индексы» по данным столбцам:

VtabVcollVcol2 (table _ disorg (tab, coll) л лtable _ disorg (tab, col2) л K^que ((query _ columns _ and (que, coll, col2) v v query _ columns _ or (que, coll, col2)) л л— low _ q _ selectivity (que)) ^ ^ bit _ index (coll) л bit _ index (col2)).

При таком описании механизм логических выводов может находить решения на различные вопросы вида «Следует ли создавать «btree-индекс», если заданы следующие условия запроса и таблица дезорганизована?», «Какие индексы следует создать для таблицы, если используются запросы, имеющие объединения предикатов с помощью логических операций?» и т.п. Основное преимущество сформированных таким образом знаний в том, что они могут быть присоединены к центральной базе знаний экспертной системы и использованы при поиске оптимального комплексного решения целого ряда проблем, не связанных с индексированием напрямую.

25 декабря 2006 г.

Кубанский государственный технологический университет, г. Краснодар

УДК 681.3

ОПТИМИЗАЦИЯ РЕПЛИКАЦИОННЫХ СХЕМ В РАСПРЕДЕЛЕННЫХ БАЗАХ ДАННЫХ ПРИ ДИНАМИЧЕСКИ ПОДКЛЮЧАЮЩИХСЯ КЛИЕНТАХ С РАЗЛИЧНЫМИ ДЛИНАМИ ОЧЕРЕДЕЙ

© 2007 г. Г.В. Сучков, В.Н. Кухарев

Введение

Конструирование схемы распределенной базы данных требует учета перспектив развития информационной системы. При увеличении числа клиентов, подключенных к базе данных, нагрузка на нее возрас-

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

Современные работы [1-7] анализируют поэтапное моделирование процесса добавления новых узлов с локальными базами данных в систему. Однако более