Анализ вклада Кодда в Великий Спор

       

Обзор


Эта статья - которую я буду теперь называть "статьей о полноте" - является, по всей видимости, наиболее формальной статьей Кодда. Определенно, она наиболее трудна для среднего читателя. Однако она фундаментальна, поскольку обобщает материал первых двух статей [1, 2], определяя то, что теперь мы считаем исходным реляционным образом действий.

Подобно предшествующим статьям [1, 2], в статье о полноте по-прежнему полагается, что реляционная модель содержит только структурные аспекты: "В предыдущих статьях ... мы предложили реляционную модель данных ..." пишет Кодд. "[Теперь] мы определяем набор операций над отношениями ...". Другими словами, эти операции не считаются частью самой реляционной модели. Конечно, сегодня мы считаем эти операции составной частью модели; в статье о полноте предлагаются альтернативные, но эквивалентные формализмы для этой части.

Что достигается в статье о полноте? Цитируем аннотацию: "В близком будущем мы можем ожидать появления величайшего разнообразия [предложений языков баз данных]. В этой статье [обеспечивается] теоретический базис, который может использоваться для определения того, насколько полные возможности выборки предоставляются в [таком языке]". Этим теоретическим базисом является "реляционная полнота" из названия статьи; язык является реляционно полным, если он обладает такой же мощностью, что и реляционное исчисление (говоря несколько вольно). Позже в статье Кодд категорически заявляет, что любой язык баз данных общего назначения должен обладать не меньшей мощностью; в частности, он отмечает, что используя такой язык вы должны иметь возможность формулировать запросы без использования "программных циклов и любых других видов ветвления - важное соображение для работы с базой данных с терминала" (и как мы все теперь знаем, для доступа из прикладных программ).

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

Статья состоит из пяти основных разделов:



  • Введение
  • Реляционная алгебра
  • Реляционное исчисление
  • Редукция
  • Сравнение исчисления и алгебры


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

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


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