Введение в дисциплину «Безопасность систем баз данных». Теоретические основы построения реляционных баз данных. Верификация баз данных и проведение аудита в СБД. Распределенные базы данных, страница 71

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

8.1.2. Тестирование БД

Тестирование относится к методам динамической верификации. Цель тестирования – изучить реальное поведение системы, используя конкретные входные значения. На основе результатов работы системы (выходных значений) делается вывод о том, правильно ли реализованы конкретные функции обработки информации.

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

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

К числу наиболее известных продуктов, реализующих описанный метод тестирования целостности, относятся ClearQuest, TestManager, Robot и др. компании IBM Rational. Это средство работает со многими известными СУБД. Отдельными компаниями поставляются также инструменты, ориентированные на работу с конкретными СУБД. Например, Test Data Generator для Oracle компании SoftTree Technologies, TestBytes фирмы Logic Works, Benchmark Factory от Quest Software и т. п.

8.1.3. Тестирование производительности СУБД

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

Наиболее широко известным на сегодняшний день инструментом тестирования производительности является продукт австрийской компании Ambichl&Reindl Communication OEG с названием SQLBench. Основной принцип SQLBench – имитация реальных условий работы будущей информационной системы. Принцип этот реализуется при помощи:

·  генерации тестовых данных произвольного объема;

·  имитации доступа со стороны множества клиентских приложений к ресурсам на сервере.

Схема работы SQLBench представлена на рис. 8.5.

Рисунок 8.5 – Схема взаимодействия между SQLBench и сервером СУБД

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