Аннотация:
Процесс тестирования зависимостей и правил вывода может быть использован в двух направлениях. Во-первых, тестирование позволяет проверить гипотезы относительно неизвестных правил вывода. Основная цель при этом поиск реализации отношения - контрпримера, который удовлетворяет исходным зависимостям и противоречит следствию. Найденный контрпример опровергает гипотезу, отсутствие контрпримера позволяет приступить к поиску обобщения правила и условий его выполнимости (logically imply). Тестирование не может служить доказательством выполнимости правил вывода, поскольку процесс обобщения требует поиска универсальных условий выводимости для каждого правила, что невозможно запрограммировать, поскольку даже вид этих условий неизвестен. Во-вторых, при проектировании конкретной базы данных может потребоваться проверка выполнимости правила, для которого отсутствует теоретическое обоснование. Такая ситуация может проявиться при наличии аномалий в суперключе. Решение этой проблемы основывается на использовании правил вывода зависимостей соединения. Для этих зависимостей пока не найдена полная система правил (аксиом). В данной статье рассматривается: 1) методика проведения тестирования правил вывода на примере зависимостей соединения, 2) предложена схема алгоритма тестирования, 3) рассмотрены некоторые гипотезы, для которых отсутствуют контрпримеры и правила вывода, 4) предложен пример использования тестирования при поиске корректной декомпозиции суперключа.
Ключевые слова:реляционные базы данных, зависимости соединения, правила вывода, тестирование.