Система управления реляционными базами данных System R разрабатывалась в исследовательской лаборатории фирмы IBM в 1975-1979 г.г. Эта работа оказала революционизирующее влияние на развитие теории и практики реляционных систем во всем мире. Именно System R практически доказала жизнеспособность реляционного подхода к управлению базами данных. После успешного завершения работ по созданию прототипа этой системы, получения экспериментальных результатов ее использования был разработан целый ряд коммерчески доступных реляционных систем, в том числе и на основе непосредственного развития System R (возможности одной из коммерчески доступных реляционных систем - DB2 описываются в [30]).
Этот аспект System R, безусловно, очень важен, но не менее, а может быть и более важен практический опыт разработчиков этой системы. Практически во всех более поздних реляционных СУБД в той или иной степени используются методы, примененные в System R. По поводу организации System R существует обширная библиография [1-27]. К сожалению, эти публикации носят недостаточно систематический характер. Нет ни одной статьи или книги, в которой рассматривались бы все вопросы организации System R. Следует отметить, правда, что достаточно подробно касается отдельных аспектов System R в своих книгах К.Дейт [30-33], но в основном в иллюстративных целях, рассматривая каждое решение как одно из нескольких возможных. Кроме того, Дейт касается главным образом внешних особенностей System R (и ее последователей), а технические решения, как правило, не рассматривает вообще. Поэтому в данной работы мы приводим систематический обзор архитектурных особенностей System R (конечно, не очень подробный по причине ограниченности объема).
После завершения разработки прототипа System R фирма IBM активно продолжала работы по реляционным СУБД, причем в нескольких направлениях. Первое направление мы уже отмечали разработка коммерческих реляционных СУБД [29, 30, 35]. Этому направлению посвящена переведенная книга Дейта [30], и здесь его рассматривать не будем. Второе направление - построение распределенной реляционной СУБД на основе идей System R. Прототип такой системы, System R*, был успешно разработан в IBM. Эта работа также существенно обогатила опытом исследователей и разработчиков распределенных СУБД. Ей также посвящено большое количество публикаций [38-53], но имеется только одна (и очень краткая) переведенная статья [53]. В данной работе мы рассмотрим основные особенности System R* более подробно. Наконец, третье важное направление - исследование и разработка реляционных систем, предназначенных для нетрадиционных приложений.
Это очень важное направление, потому что основная критика реляционных систем связана как раз с их неприменимостью (или неэффективностью) в приложениях, связанных с иерархичностью данных (например, системах автоматизации проектирования). Как нам кажестся, и в этом направлении разработчики фирмы IBM достигли большого продвижения. Здесь очень интересно проанализировать, как начиная с достаточно сложных предложений по модификации базовых подходов System R, исследователи пришли к очень простым и естественным решениям, не требующим таких модификаций, но вполне удовлетворяющим потребности приложений (наверное, с последним утверждением не все согласятся). По этому предмету существует не очень большое количество публикаций [54-61], видимо, по той причине, что работа еще не завершена. Тем более, на наш взгляд, полезно привести их обзор.
Соответственно, оставшаяся часть статьи состоит из трех основных разделов. В Разделе 2 мы рассматриваем основные архитектурные аспекты организации System R. В частности, обсуждается развитие базового языка этой системы SQL, для которого в настоящее время разрабатывается международный стандарт [35]. В Разделе 3 рассматриваются принципы организации распределенной CУБД System R*. При этом основное внимание уделяется не сетевым проблемам, а вопросам, связанным более с управлением базами данных (не потому, что они более важны, а в силу специфики данной работы). Наконец, в четвертом разделе мы рассмотрим развитие и текущее состояние дел в области расширения System R для использования в нетрадиционных приложениях (главным образом, в САПР). В заключение мы приводим выводы, следующие, на наш взгляд, из опыта и истории развития System R, которые полезно иметь в виду разработчикам реляционных СУБД.
Заметим, что эта статья не является введением в реляционные базы данных. Предполагается, что читатель имеет представление об основных идеях реляционного подхода, и основные термины этого подхода используются без предварительных определений и пояснений. Более того, предполагается по крайней мере поверхностное знакомство с реляционным языком SQL. Необходимую предварительную информацию можно получить в прекрасных вводных книгах Дейта [30, 31] и Ульмана [32].
Содержание | Вперед