С.Д. Кузнецов

Институт системного программирования РАН, Ассоциация пользователей ОС UNIX (SUUG), Московская секция ACM SIGMOD, kuz@ivann.delta.msk.su


1 Основной поток коммерческих СУБД, или вчера и сегодня
2 Постреляционные системы, или сегодня и завтра
3 Распределенные СУБД


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

1. Основной поток коммерческих СУБД, или вчера и сегодня

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

Многие полагают, что реляционные СУБД, являясь наиболее распространенным современным аппаратом построения информационных систем, не представляют уже интереса в научном отношении. Однако и в этой области остается еще много нерешенных или решенных не полностью проблем. Об этом свидетельствуют появляющиеся по-прежнему научные статьи, посвященные тематике чисто реляционных систем, а также активная научно-практическая деятельность компаний-производителей коммерческих реляционных систем, стремящихся улучшать свои продукты и придавать им новые качества.

Продолжающаяся работа исследователей (главным образом, университетских) затрагивает вопросы оптимизации запросов, новых алгоритмов выполнения реляционных операций, оптимизации структур хранения данных и другие аспекты, непосредственно определяющие эффективность СУБД. Те же самые вопросы занимают и разработчиков коммерческих СУБД, которые, кроме того, (и в большей степени) озабочены и более прикладными проблемами. Рассмотрим немного подробнее (но без технических деталей) существо некоторых из этих вопросов и то, каким образом они решаются в наиболее развитых коммерческих продуктах.

1.1. Язык SQL: развитие и стандартизация

Для всех современных коммерческих реляционных СУБД базовым средством доступа к базам данных является язык SQL. В 1989 г. появился первый международный стандарт этого языка, и большинство производителей СУБД объявило свои системы соответствующими этому стандарту. Но стандарт 1989 г. был довольно ограниченным (например, в него не входили средства манипулирования схемой БД, динамический SQL и т.д.), а многие вошедшие в стандарт аспекты языка были специфицированы недостаточно строго. Поэтому в разных текущих реализациях различаются очень существенные аспекты.

В 1992 г. был принят новый стандарт SQL-92. Этот язык существенно более сложен, чем SQL-89, а конструкции SQL-92 специфицированы в стандарте существенно более полно. Первой компанией, которая объявила о соответствии своего продукта новому стандарту, была компания Oracle со своей седьмой версией (это произошло также в 1992 г.). Теперь и все остальные компании вскоре должны выпустить продукты, соответствующие стандарту SQL-92.

Кроме того, как это бывает всегда, производители стремятся добавить к своим продуктам качества, превышающие требования стандарта. Например, современные версии Oracle и Ingres содержат некоторые возможности определения триггеров, не предусмотренные действующим стандартом, но очень полезные и привлекательные для разработчиков прикладных систем; в системе uniVerse компании VMark поддерживается расширенная ненормализованная реляционная модель и т.д. Другими словами, компании стремятся смотреть в будущее, предвидя требования следующего стандарта SQL (его условно называют SQL-3; ожидается принятие этого стандарта в 1995 г.). Работа в комитете по стандартизации языка SQL является очень существенной частью научно-практической деятельности компаний.

1.2. Параллельные серверы баз данных

Все развитые коммерческие СУБД основываются на архитектуре "клиент-сервер". При этой организации наиболее трудоемкие операции над базами данных выполняются на выделенном компьютере-сервере, который должен быть достаточно мощным и обладать соответствующим набором ресурсов основной и внешней памяти. До поры серверная часть СУБД обладала простой организацией: запросы, поступающие из клиентских частей системы, обрабатывались последовательно с небольшой оптимизацией для совмещения процессорной работы с работой устройств внешней памяти.

Однако с появлением на рынке мультипроцессорных симметричных аппаратных архитектур, производители СУБД были вынуждены пересмотреть организацию своих серверов, допустив в них внутреннюю параллельность. Естественно, это требует очень основательного перепроектирования системы с ее существенным усложнением. Идея использовать специальные свойства аппаратуры для повышения эффективности систем баз данных не является новой. Несколько лет назад очень популярным направлением в области баз данных были специализированные аппаратно-программные машины баз данных.

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

Заметим, что в большинстве случаев компании пошли на это после появления в ОС UNIX механизма "легковесных" процессов (threads). О серьезности этой работы говорит тот факт, что, например, в компании Informix было образовано новое подразделение, занимающееся исключительно вопросами распараллеливания работы серверов. Одной из проблем коммерческих компаний, разрабатывающих мобильные параллельные серверы баз данных, является отсутствие стандарта механизма легковесных процессов.

1.3. Интеграция и интероперабельность: частные и общие решения

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

В большинстве случаев предлагаемые решения основываются на использовании индустриальных стандартов распределенных объектных систем (например, стандарта CORBA, разработанного OMG). Тем не менее, производители СУБД вынуждены решать многочисленные проблемы для вхождения их систем в новые интегрированные среды.

2. Постреляционные системы, или сегодня и завтра

В этом разделе очень кратко рассматриваются основные направления исследований и разработок в области так называемых постреляционных систем, т.е. систем, относящихся к следующему поколению (хотя термин "next-generation DBMS" зарезервирован для некоторого подкласса современных систем). Эти исследования, в основном, производятся в университетах, хотя известны и исследования, производящиеся в лабораториях коммерческих компаний.

Заметим, что приводимая ниже классификация достаточно условна. Обычно в серьезных исследованиях темы сильно переплетаются.

2.1. Когда простота усложняет жизнь

Одним из основных положений реляционной модели данных является требование нормализации отношений: поля кортежей могут содержать лишь атомарные значения. Для традиционных приложений реляционных СУБД - банковских систем, систем резервирования и т.д. - это вовсе не ограничение, а даже преимущество, позволяющее проектировать экономные по памяти БД с предельно простой и понятной структурой. Запросы с соединениями в таких системах сравнительно редки, для динамической поддержки целостности используются соответствующие средства SQL.

Однако с появлением эффективных реляционных СУБД их стали пытаться использовать и в менее традиционных прикладных системах - САПР, системы искусственного интеллекта и т.д. Такие системы обычно оперируют со сложно структурированными объектами, для реконструкции которых из плоских таблиц реляционной БД приходится выполнять запросы, почти всегда требующие соединения отношений. В соответствии с требованиями разработчиков нетрадиционных приложений появилось направление исследований баз сложных объектов. Это очень обширная область исследований, в которой затрагиваются вопросы моделей данных, структур данных, языков запросов, управления транзакциями, журнализации и т.д. Во многом эта область соприкасается с областью объектно-ориентированных БД.

2.2. База данных: слуга или партнер?

По определению, БД называется активной, если СУБД по отношению к ней выполняет не только те действия, которые явно указывает пользователь, но и дополнительные действия в соответствии с правилами, заложенными в саму БД. Такая база данных ведет себя подобно полноправному партнеру пользователей, помогая им избежать рутинной работы, которую можно возложить на саму базу данных (конечно, с использованием средств СУБД).

Основа этой идеи содержалась в языке SQL времени System R (1974-1979 гг.). В этом варианте языка поддерживалось понятия триггера - оператора SQL, который срабатывал при выполнении некоторых определенных действий над базой данных. Но что такое определение триггера или условного воздействия как не введение в БД правила, в соответствии с которым СУБД должна производить дополнительные действия? Плохо лишь то, что на самом деле триггеры не были полностью реализованы ни в одной из известных систем, даже и в System R. И это не случайно, потому что реализация такого аппарата в СУБД очень сложна, накладна и не полностью понятна.

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

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

Вместе с тем, по нашему мнению, гораздо важнее в практических целях реализовать в реляционных СУБД аппарат триггеров. Заметим, что в проекте стандарта SQL3 предусматривается существование языковых средств определения условных воздействий. Реализация и будет первым практическим шагом к активным БД. Как мы отмечали в начале статьи, в некоторых коммерческих системах уже появились черты активных баз данных.

2.3. Стоит ли хранить то, что можно вывести?

По определению, дедуктивная БД состоит из двух частей: экстенциональной, содержащей факты, и интенциональной, содержащей правила для логического вывода новых фактов на основе экстенциональной части и запроса пользователя.

При таком общем определении SQL-ориентированную реляционную СУБД можно отнести к дедуктивным системам. Действительно, что из себя представляют определенные в схеме реляционной БД представления как не интенциональную часть БД.

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

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

Для реализации дедуктивной СУБД обычно применяется реляционная система. Такая система выступает в роли хранителя фактов и исполнителя запросов, поступающих с уровня дедуктивной СУБД. Между прочим, такое использование реляционных СУБД резко актуализирует задачу глобальной (или совместной) оптимизации запросов, потому что обычно при выполнении одного запроса уровня дедуктивной БД генерируется несколько запросов уровня реляционной БД.

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

2.4. Путешествия во времени

Обычные БД хранят мгновенный снимок модели предметной области. Любое изменение в момент времени t некоторого объекта приводит к недоступности состояния этого объекта в предыдущий момент времени. Интересно, что при этом в большинстве развитых СУБД предыдущее состояние объекта сохраняется в журнале изменений, но возможность доступа к этим данным для пользователей закрыта.

Конечно, можно явно ввести в хранимые отношения явный временной атрибут и поддерживать его значения на уровне приложений. Более того, в большинстве случаев так и поступают. Недаром в стандарте SQL появились специальные типы данных date и time. Но в таком подходе имеется несколько недостатков: СУБД не знает семантики временного поля отношения и не может контролировать корректность его значений; появляется дополнительная избыточность хранения (предыдущее состояние объекта данных хранится и в основной БД, и в журнале изменений); языки запросов реляционных СУБД не приспособлены для работы со временем.

Существует отдельное направление исследований и разработок в области темпоральных БД. В этой области исследуются вопросы моделирования данных, языки запросов, организация данных во внешней памяти и т.д. Основной тезис темпоральных систем состоит в том, что для любого объекта данных, созданного в момент времени t1 и уничтоженного в момент времени t2, в БД сохраняются (и доступны пользователям) все его состояния во временном интервале [t1, t2).

Исследования и построения прототипов темпоральных СУБД обычно выполняются на основе некоторой реляционной СУБД. Как и в случае дедуктивных БД, темпоральная СУБД - это надстройка над реляционной системой. Конечно, это не лучший способ реализации с точки зрения эффективности, но он прост и позволяет производить достаточно глубокие исследования.

Одним из наиболее известных примеров постреляционной системы с темпоральными возможностями является СУБД Postgres, разработанная в университете г.Беркли, Калифорния под руководством М.Стоунбрейкера.

В этой системе, во-первых, не ведется обычная журнализация изменений базы данных, и мгновенно обеспечивается корректное состояние базы данных после перевызова системы с утратой состояния оперативной памяти. Во-вторых, система управления памятью поддерживает исторические данные. Запросы могут содержать временные характеристики интересующих объектов. Реализационно эти два аспекта связаны.

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

2.5. СУБД следующего поколения

Термин "системы следующего (или третьего) поколения" вошел в жизнь после опубликования группой известных специалистов в области БД "Манифеста систем баз данных третьего поколения"*). Сторонники этого направления придерживаются принципа эволюционного развития возможностей СУБД без коренной ломки предыдущих подходов и с сохранением преемственности с системами предыдущего поколения.

Частично требования к системам следующего поколения означают просто необходимость реализации давно известных свойств, отсутствующих в большинстве текущих реляционных СУБД (ограничения целостности, триггеры, модификация БД через представления и т.д.). В число новых требований входит полнота системы типов, поддерживаемых в СУБД; поддержка иерархии и наследования типов; возможность управления сложными объектами и т.д.

Одной из наиболее известных СУБД третьего поколения является упоминавшаяся выше система Postgres, а создатель этой системы М.Стоунбрекер, по всей видимости, является вдохновителем всего направления. В Postgres реализованы многие интересные средства: поддерживается темпоральная модель хранения и доступа к данным, и в связи с этим пересмотрен механизм журнализации изменений, откатов транзакций и восстановления БД после сбоев; обеспечивается мощный механизм ограничений целостности; поддерживаются ненормализованные отношения (работа в этом направлении началась еще в среде Ingres).

Допускается хранение в полях отношений данных абстрактных, определяемых пользователями типов. Это обеспечивает возможность внедрения поведенческого аспекта в БД, т.е. решает ту же задачу, что и рассматриваемые ниже объектно-ориентированные СУБД, хотя, семантические возможности модели данных Postgres слабее, чем у объектно-ориентированных моделей данных.

Несмотря на то что отнесение СУБД к тому или иному классу в настоящее время может быть выполнено только условно (например, иногда объектно-ориентированную СУБД O2 относят к системам следующего поколения), можно отметить три направления в области СУБД следующего поколения. Чтобы не изобретать названий, будем обозначать их именами наиболее характерных СУБД.

  1. Направление Postgres. Основная характеристика: максимальное следование (насколько это возможно с учетом новых требований) известным принципам организации СУБД (если не считать упоминавшейся коренной переделки системы управления внешней памятью).
  2. Направление Exodus/Genesis. Основная характеристика: создание собственно не системы, а генератора систем, наиболее полно соответствующих потребностям приложений. Решение достигается путем создания наборов модулей со стандартизованными интерфейсами, причем идея распространяется вплоть до самых базисных слоев системы.
  3. Направление Starburst. Основная характеристика: достижение расширяемости системы и ее приспосабливаемости к нуждам конкретных приложений путем использования стандартного механизма управления правилами. По сути дела, система представляет собой некоторый интерпретатор системы правил и набор модулей-действий, вызываемых в соответствии с этими правилами. Можно изменять наборы правил (существует специальный язык задания правил) или изменять действия, подставляя другие модули с тем же интерфейсом.

В целом можно сказать, что СУБД следующего поколения - это прямые, хотя и гораздо более развитые по сравнению со своими предками наследники реляционных систем.

2.6. Объектно-ориентированные базы данных

Направление объектно-ориентированных баз данных (ООБД) возникло сравнительно давно. Публикации появлялись уже в середине 1980-х годов. Однако наиболее активно это направление развивалось в 1990-е годы. Об этом можно судить по числу публикаций и реализованных коммерческих и экспериментальных систем.

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

Конечно, ООБД возникли не на пустом месте. Соответствующий базис обеспечивают как предыдущие работы в области БД, так и давно развивающиеся направления языков программирования с абстрактными типами данных и объектно-ориентированных языков программирования.

Что касается связи с предыдущими работами в области БД, то наиболее сильное влияние на работы в области ООБД оказывают проведенные исследования и разработки реляционных СУБД и следующее за ними хронологически семейство БД, в которых поддерживается управление сложными объектами. Кроме того, исключительное влияние на идеи и концепции ООБД и, как кажется, всего объектно-ориентированного подхода оказало направление семантического моделирования данных (общее число публикаций по семантическому моделированию поистине безгранично). Достаточное влияние оказывают также развивающиеся параллельно с ООБД направления дедуктивных и активных БД.

Среди языков и систем программирования наибольшее первичное влияние на ООБД оказал Smalltalk. Этот язык сам по себе не является полностью пионерским, хотя в нем была введена новая терминология, являющаяся теперь наиболее распространенной в объектно-ориентированном программировании. На самом деле, Smalltalk основан на ряде ранее выдвинутых концепций.

Большое число работ не означает, что все проблемы ООБД решены. Как отмечается в Манифесте группы ведущих ученых, занимающихся ООБД, современная ситуация с ООБД напоминает ситуацию с реляционными системами середины 1970-х годов. При наличии большого количества экспериментальных проектов (и даже коммерческих систем) отсутствует общепринятая объектно-ориентированная модель данных, и не потому, что нет ни одной разработанной полной модели, а по причине отсутствия общего согласия о принятии какой-либо модели. На самом деле, имеются и более конкретные проблемы, связанные с разработкой декларативных языков запросов, выполнением и оптимизацией запросов, формулированием и поддержанием ограничений целостности, синхронизацией доступа и управлением транзакциями и т.д.

Мы уже говорили, что основная практическая надобность в ООБД связана с потребностью в некоторой интегрированной среде построения сложных информационных систем. В этой среде должны отсутствовать противоречия между структурной и поведенческой частями проекта и должно поддерживаться эффективное управление сложными структурами данных во внешней памяти. С этой точки зрения языковая среда ООБД - это объектно-ориентированная система программирования, естественно включающая средства работы с долговременными объектами. "Естественность" включения средств работы с БД в язык программирования означает, что работа с долговременными (хранимыми во внешней БД) объектами должна происходить на основе тех же синтаксических конструкций (и с той же семантикой), что и работа со временными, существующими только во время работы программы объектами.

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

3. Распределенные СУБД

В теоретическом плане распределенные СУБД составляют еще одно измерение в пространстве исследований и разработок систем управления базами данных. В этих системах приходится решать все задачи, свойственные централизованным СУБД, но, как правило, в более сложных постановках. Кроме того, в распределенных системах возникают и специфические проблемы, от решения которых во многом зависит эффективность, надежность и доступность систем БД. В настоящее время большинство распределенных СУБД базируется на реляционной модели данных и рассчитано на использование в локальных сетях ЭВМ. Многие проблемы распространяются и на распределенные СУБД в территориально разнесенных сетях, и почти все проблемы сохраняются для распределенных СУБД, основанных на других моделях данных.

3.1. Синхронизация доступа к данным

В централизованных системах БД очень распространено использование двухфазного протокола синхронизационных захватов объектов БД. В соответствии с этим протоколом объект БД автоматически захватывается транзакцией в соответствующем режиме при первом обращении, и все захваты данной транзакции освобождаются только при ее завершении. В случае возникновения конфликта по синхронизации транзакция блокируется, пока объект не будет освобожден. Следование этому протоколу может привести к возникновению синхронизационного тупика между двумя или более транзакциями. Задача СУБД - распознать появление тупика и разрушить его путем отката одной или нескольких транзакций.

Распознавание тупиков сводится к обнаружению циклов в графе ожидания транзакций, что является трудоемкой задачей даже в централизованных СУБД. В распределенных системах решение этой задачи может потребовать неприемлемых накладных расходов (хотя поиски алгоритмов с допустимыми затратами продолжаются).

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

3.2. Управление транзакциями

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

Основной проблемой управления транзакциями в этом случае является корректное завершение (фиксация) распределенной транзакции. Классическим решением является использование давно известного протокола двухфазной фиксации. Однако прямое использование этого протокола порождает значительное число служебных сообщений между составляющими распределенную систему локальными СУБД. Большое число исследований посвящено поискам более экономичных протоколов.

3.3. Репликация данных

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

Другим основанием для поддержания копий является увеличение уровня доступности данных при выходе из строя узлов сети или коммуникационных линий, вследствие чего утрачивается связность сети. Теоретически доступ к некоторому объекту БД может продолжаться в любом разделе сети, содержащем его копию. Однако приходится решать ту же проблему согласования копий при изменениях объекта данных. Существует масса подходов к решению этой проблемы: от полного разрешения любого доступа к любой копии объекта во всех разделах сети с проведением сложной процедуры согласования копий после восстановления связности сети до разрешения модификации объекта только в одном разделе. Для обнаружения этого раздела обычно применяются различные варианты алгоритма голосования.

3.4. Фрагментация объектов БД

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

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

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

3.5. Алгоритмы выполнения реляционных операций

Даже если говорить только про реляционные распределенные СУБД, которые наиболее развиты в теоретическом и практическом отношении, до сих пор проводится масса исследований в области оптимизации алгоритмов выполнения реляционных операций (главным образом, соединения удаленных отношений).

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


*)Существуют два манифеста: "Манифест объектно-ориентированных систем баз данных" - опубликован в 1989г., "Манифест систем баз данных третьего поколения" - в 1990 г. В ближайших номерах журнала редакция планирует опубликовать оба манифеста.