Введение

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

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

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

В данной статье речь пойдет об основных составляющих любой базы данных, влияющих на ее качество и производительность, будут выявлены критерии оценки структуры базы данных.

Существующие аналоги

Из существующих систем автоматизированного анализа структур реляционных баз данных можно выделить продукт Microsoft Total Access Analyzer, предназначенный для СУБД Microsoft Office Access.

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

В целом Total Access Analyzer имеет достаточно широкие возможности в области анализа качества базы данных в пределах Microsoft Access. Но его главным недостатком является именно узконаправленная специализация и работа только с одной СУБД.

Компоненты качества базы данных

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

Процесс решения данной проблемы называется «нормализация».

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

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

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

Говоря о запросах к базе данных, стоит упомянуть индексирование. Индекс – объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путём последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева. Индексирование является одним из главных критериев оптимальной работы с данными при использовании базы данных. Создание индексов может, как оптимизировать, так и увеличить время отклика выполняемого запроса, поэтому их наличие должно в первую очередь быть подкреплено эксплуатационными нуждами.

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

Критерии и метрии оценки качества

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

Любая инструкция на языке SQL имеет определенные семантические рамки, что позволяет стороннему программному обеспечению без проблем разобрать его на составляющие и проанализировать.

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

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

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

Выводы

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

Литература

1. Криллов В.В. / Основы проектирования реляционных баз данных / Спб ИТМО – 1994 г. – 90 с.

2. Духин С.В. / Оценка эффективности схем баз данных / Известия ТРТУ. – 2010 г. – 247-251 с.

3. Новосельский В.Б. / Проблемы и задачи автоматизированного проектирования распределенных баз данных / 2011. - 128 с.

4. Lemaitre J. / Evaluation and Improvement of Database Schemas: A transformation-based framework / PReCISE – 2013 г. – 9c.

5. Мицук Н.В. / Методы автоматизации проетирования, программирования и моделирования / Таганрог ТРТИ – 1981 г. – 18-27 c.