Классика баз данных - статьи

       

В результирующей системе остается многое


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


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


  • Элементы управления процессора правил: Пользователям Starburst может локально разрешаться или запрещаться определение правил «налету» без воздействия на других пользователей. Это позволяет разработчикам правил пользоваться удобствами парадигмы системы правил без влияния на одновременно работающих пользователей базы данных. Управляющие элементы также позволяют нам трассировать и толковать действия правил – полезный метод для отладки потенциально сложных взаимодействий между правилами.

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

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


    Содержание  Назад  Вперед