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

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Коломиец Т. В., Малыхина М. П.

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

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

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

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

УДК 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] анализируют поэтапное моделирование процесса добавления новых узлов с локальными базами данных в систему. Однако более

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