Научная статья на тему 'Реализация рассуждений в экспертной системе диагностики СУБД'

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

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

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

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

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

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

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

На основе данной диаграммы (по данным для системы документооборота ЮРГТУ) рекомендуется замена текущего коммутатора центрального узла 3Com 4900SX на более мощный из аналогичного ряда. Однако следует учитывать, что данная диаграмма описывает модельные ситуации, конкретный выбор в пользу того или иного сервера требует практических испытаний.

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

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

Выводы

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

10 декабря 2006 г.

tab_blk_cnt(tab,cnt) - cnt - количество блоков в таблице tab;

col_blk_cnt(tab,col,val,cnt) - cnt - количество блоков, занимаемых строками таблицы tab, в которых столбец col имеет значение val;

tab_row_cnt(tab,cnt) - cnt - количество строк в таблице tab;

que_row_cnt(que,tab,cnt) - запрос que выбирает cnt строк из таблицы tab;

low_selectivity(que,col) - запрос que обладает низкой избирательностью по столбцу col; greater(y,x) - x больше y;

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

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

percent(y,x) = x/y - функция, определяющая, каков процент от y занимает x.

Запрос имеет низкую избирательность по столбцу, если число строк, возвращаемое им, больше 8 % от общего числа строк в таблице, что определяется с помощью следующего выражения:

ytabBcntl (tab _ row _ cnt (tab, cntl) л

A3que3col3cnt2 (que _ row _ cnt (que, tab,cnt2) л

лquery _ column (col, que) л

л greater (0.08, percent (cntl, cnt 2)) —

— low _ selectivity (que, col))), (l)

Южно-Российский государственный технический университет (Новочеркасский политехнический институт)

УДК 681.3

РЕАЛИЗАЦИЯ РАССУЖДЕНИЙ В ЭКСПЕРТНОЙ СИСТЕМЕ ДИАГНОСТИКИ СУБД

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

где cnt1 - число строк в таблице tab; cnt2 - число строк, возвращаемое запросом que из таблицы tab.

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

ytabBcntl(tab _ blk _ cnt (tab, cntl) л

ÁBcoNvalBcnt2 (col _ blk _ cnt (tab, col, val, cnt2) л

л greater (0.1, percent (cntl, cnt2)) — table _ disorg (tab, col))),

(2)

где cntl - число блоков в таблице tab; cnt2 - количество блоков, занимаемых строками таблицы tab, в которых столбец col имеет значение val.

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

ytabBcol (tab _ disorg (tab, col) л лУque (query _ column (col, que) л лlow _ selectivity (que, col)) — —btree _ index (col)), (3)

где col - столбец таблицы tab, используемый в ограничениях запроса que.

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

tab_blk_cnt('Employees',1500) - таблица Employees занимает 1500 блоков; (4)

col_blk_cnt('Employees','department_id',10,264) - в таблице Employees строки, содержащие значение 10 в столбце 'departmentid', занимают 264 блока; (5) tab_row_cnt(Employees',11267) - в таблице Employees 11267 строк; (6)

query_column('department_id',que) - запрос que ограничивает выборку по столбцу department_id; (7) que_row_cnt(que,'Employees ',2533) - запрос que выбирает 2533 строки из таблицы Employees. (8) Используя унификацию и правило «модус по-ненс», можно ответить на заданный вопрос - нужен ли индекс по столбцу col при выполнении данного запроса que к таблице tab. В самом начале необходимо определить организованность таблицы tab по столбцу col. Для этого проводится унификация конъюнкции высказываний (4) и (5) с компонентами высказывания (2). При этом используется подстановка вида {tab/ 'Employees ',cnt1/1500,col/ 'department_id',val/10, cnt2/264}.

После оценивания функции percent с учетом сделанных подстановок выводится окончательное выражение вида:

tab _ blk _ cnt (' Employees ',1500) л Acol _blk _ cnt ('Employees',' department _ id', 10,264) л

л greater (0.1,0,176) — л

— table _ disorg (' Employees',' department _ id'))

Поскольку все три компонента предпосылки, согласно (4), (5) и математическому определению функции person, истинны, то их конъюнкция так же истинна, поэтому, применив правило «модус поненс», можно сделать вывод, что таблица Employees дезорганизована по столбцу department_id. Этот вывод добавляется к первоначальной системе:

table_disorg( 'Employees ','department_id'). (9)

Аналогичным образом, после унификации (6), (7) и (8) с предпосылками высказывания (1) с учетом подстановки вида {tab/'Employees\cnt\/M267, col/ 'departmentid', cnt2/2533}, формируется предложение следующего вида:

tab _ row _ cnt (' Employees ',11267)л

Aque _ row _ cnt (que,'Employees ',2533) л

Aquery _ column (' department _ id', que) л л greater (0.08,0,22) —

— low _ selectivity (que,' department _ id').

Учитывая (6) - (8) и значение greater, можно сделать вывод, что запрос que обладает низкой избирательностью по столбцу col:

low_selectivity(que,'department_id'). (10)

Рассматривая (7), (9) и (10) в качестве предпосылок к (3), сделав соответствующие подстановки, можно в третий раз применить «модус поненс»:

tab _ disorg (' Employees',' department _ id') л лquery _ column (' department _ id', que) л лlow _ selectivity (que,' department _ id') —>

— —btree _ index (' department _ id'). (11)

Из (11) следует истинность выражения

— btree_index('department id^), что, в свою очередь, позволяет сделать вывод об отсутствии необходимости создавать «btree-индекс» по столбцу department_id таблицы Employees

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

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

Автоматизация информационных процессов в автоматизированной системе управления (АСУ) техническим обслуживанием (ТО) связана с рядом возникающих при этом задач [1]. К ним относятся: вопросы сбора и накопления информации; определение перечня задач, подлежащих автоматизации; моделирование информационных процессов; разработка банка данных; выбор комплекса технических средств, позволяющих реализовать поставленные задачи.

Для анализа информационных процессов удобно использовать теорию графов. Рассмотрим использование теории графов для исследования потоков информации АСУ ТО [2].

Всю информацию, функционирующую в АСУ ремонтными подразделениями, представим в следующем виде:

- исходные данные - информация, которая поступает в систему;

- промежуточные результаты - результаты переработки исходных данных, которые используются для вычисления других результатов, но сами из системы не выделяются;

- окончательные результаты - вырабатываемые системой результаты переработки исходных данных;

- функциональные результаты - объединенная в группу совокупность окончательных результатов.

Совокупность исходных данных и окончательных результатов составляет информационный базис системы. Структурные компоненты потока информации пронумеруем и обозначим через х1 (1 = 1, 2,..., п).

Структурным компонентам потока информации х1,х2,...,хп сопоставим вершины графа х1,х2,...,хп

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

Литература

1. Люггер Джордж Ф. Искусственный интеллект: стратегии и методы решения сложных проблем. 2005.

25 декабря 2006 г.

Для графа, показанного на (рис. 1), можно установить отношения вхождения и порядка. Отношение вхождения имеет смысл строки вида х1 = х 1 1, х 1 2,...., х 1п, которая означает, что компонента, записанная слева от знака равенства, образуется непосредственно из компонент входов, записанных справа.

Рис. 1. Расширенный информационный граф

Известные свойства теории графов позволяют

провести анализ потоков информации и выявить ряд

важных характеристик [3].

Если О - информационный граф, а А - матрица

X X

смежности, то элемент а р матрицы А равен числу

различных путей длины X, идущих от х1 к хр. Матри-

N ,

ца А, А2,..., АN и матрица А у = ^А позволяют

У а =1

выявить следующие свойства потоков информации:

1. Определить ошибки обследования. Таким признаком является появление ненулевых элементов

X

на главной диагонали любой из матриц А . Если при некотором 1 = р одновременно ' а1 =: )= 0,

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

УДК 621.396

ИСПОЛЬЗОВАНИЕ ТЕОРИИ ГРАФОВ В СЛОЖНЫХ ИНФОРМАЦИОННЫХ ПРОЦЕССАХ

© 2007 г. В.Я. Хорольский, А.В. Гальвас

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