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

       

Аннотация


В нашем с Хью Дарвеном Третьем Манифесте (для краткости, просто «Манифесте») устанавливается набор предписаний и запретов, которые касаются разработки языка программирования баз данных, называемого D (см. [9]). В частности, одно из предписаний – «ОО-предписание 3» – звучит следующим образом:

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

Однако в [1] утверждается, что из этого предписания следует серьезная ущербность Манифеста. В этом источнике говорится следующее:

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

Замечание: В этой цитате упоминается Tutorial D, а не D как таковой, и поэтому я должен пояснить, как соотносятся Tutorial D и D. Начнем с того, что имя D является родовым – оно используется в [9] для обозначения любого языка, соответствующего принципам, заложенным в Третьем Манифесте. Таким образом, может иметься любое число различных языков, квалифицируемых как допустимый D. Подразумевается, что Tutorial D является одним из таких языков; он более или менее формально определяется в [9] и используется во всей этой книге (и в других публикациях) как основа примеров. В настоящей статье для определенности я сосредотачиваюсь (большей частью) на Tutorial D (как и автор [1]), но обсуждение и используемые аргументы применимы к любому допустимому D.


    Эта статья является ответом на некоторые критические замечания, которые были сделаны в адрес (a) Третьего Манифеста – см. [4] – и (b) языка Tutorial D, который используется в [4] для иллюстрации идей Третьего Манифеста. Эти критические замечания появились в [6] и могут быть кратко изложены следующим образом: В Третьем Манифесте вообще и в Tutorial D, в частности, допускается построение выражений, которые являются парадоксальными и потому неразрешимыми.




      Программное обеспечение (ПО) Domino и Notes компании Lotus Development, подразделение корпорации IBM, является одной из наиболее распространённых технологических платформ в качестве инструментария совместной работы (Groupware), и как ПО электронной передачи сообщений (Email), календарного планирования (Scheduling), корпоративной интегрированной среды функционирования Internet-приложений (Internet/Intranet application server). Однако, по мере роста зависимости организации от приложений, функционирующих в корпоративной среде Lotus Domino/Notes, и сложности самих приложений, стоимость поддержки и модернизации информационной системы (ИС) нелинейно повышается, а удовлетворенность ей на всех уровнях организационной иерархии и во всех подразделениях неуклонно снижается. В статье рассматриваются основные причины этого процесса, а также типичные ошибки при проектировании ИС вообще и в среде Lotus Domino/Notes в частности, которые приводят к снижению производительности труда пользователей, замедлению окупаемости ИС и т. д., то есть, в итоге, к финансовым потерям.

      Статья адресована разработчикам ИС, ПО в среде Lotus Domino/Notes и их заказчикам.




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




      В [1] два автора, именуемые далее Критиками A и B, критикуют Третий Манифест за поддержку реляционных переменных и реляционного присваивания. Эта статья является ответом на эту критику. Ожидается осведомленность читателей со следующими понятиями и терминам:

      • Реляционная переменная (relation variable, сокращенно relvar) – это переменная, допустимыми значениями которой являются значения отношений (для краткости, отношения).
      • Реляционное присваивание – это операция, при выполнении которой некоторое отношение r присваивается некоторой relvar R.

      В [14] эти понятия разъясняются подробно с использованием языка Tutorial D в качестве основы примеров.




      • Язык XQuery - это универсальный язык запросов к XML-данным, содержащий средства как для выборки, так и для трансформации XML-данных. В статье анализируется ограниченность средств трансформации XML-данных языка XQuery. Демонстрируется важный на практике класс запросов, для которых выражения на языке XQuery громоздки и сложны для эффективного вычисления.

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

        В статье демонстрируется выразительность расширенного языка и рассматриваются подходы к эффективной реализации предложенного расширения. В последнем разделе статьи обсуждается проблема интеграции языковых средств выборки и модификации XML-данных (проблема вложенных update-выражений). Мы показываем, каким образом идея функциональных update-выражений может быть применена для решения этой проблемы.



        Содержание раздела