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

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

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

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

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

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

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

Подытоживая все сказанное выше, сформулируем основные утверждения манифеста:

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

    В заключение, как и подобает всякому серьезному документу - а манифест это очень серьезный документ - приведу дату его публикации, после которой он считается окончательно вступившим в силу: 1 апреля 1997 года.


    Андрей Волков - главный редактор журнала "Системы Управления Базами Данных". С ним можно связаться по электронной почте: volkov@osp.ru.