Объектно-реляционная система управления базами данных Digital Q.DataBase разработанна c использованием свободно распространяемой СУБД PostgreSQL, которая базируется на POSTGRES пакете, разработанном в Калифорнийском университете в Беркли.
Данный POSTGRES проект под руководством профессора Майкла Стоунбрейкера спонсировался Агентством по перспективным оборонным научно-исследовательским разработкам США (DARPA), Управление армейских исследований (ARO), Национальный научный фонд (NSF), и ESL, Inc. Реализация системы POSTGRES началась в 1986 году. Основные концепции системы были представлены в [ston86], а описание исходной модели данных было представлено в [rowe87]. Проект системы правил того времени был описан в [ston87a]. Обоснование и архитектура диспетчера хранения были подробно изложены в [ston87b].
POSTGRES с тех пор система прошла через несколько основных выпусков. Первая «демонстрационная версия» система начала функционировать в 1987 году и была продемонстрирована на ACM-SIGMOD конференции. Версия 1, описание которой приведено в [ston90a], была выпущена для ограниченного круга внешних пользователей в июне 1989 года. В ответ на критику первой системы правил ([ston89]), система правил была переработана ([ston90b]), и в июне 1990 года была выпущена Версия 2 с новой системой правил. Версия 3 появилась в 1991 году; в ней была реализована поддержка нескольких диспетчеров хранения, улучшен исполнитель запросов и переписана система правил. В большинстве случаев последующие выпуски вплоть до Postgres95 (см. ниже) была ориентирована на переносимость и надежность.
POSTGRES использовалась для реализации множества различных исследовательских и прикладных систем. В их число входят: система анализа финансовых данных, программный комплекс мониторинга характеристик реактивных двигателей, база данных слежения за астероидами, база данных медицинской информации и несколько геоинформационных систем. POSTGRES также применялась в качестве учебного пособия в ряде университетов. В конечном итоге компания Illustra Information Technologies (позже вошедшая в состав Informix, которой в настоящее время владеет корпорация IBM) использовала данный код для создания коммерческого продукта. В конце 1992 года POSTGRES стала основным диспетчером данных в научно-вычислительном проекте Sequoia 2000, описанном в [ston92].
В течение 1993 года численность сообщества внешних пользователей почти удвоилась. Становилось очевидным, что сопровождение и поддержка исходного кода прототипа отнимают значительное время, которое следовало бы посвятить исследованиям в области систем баз данных. С целью снижения этой нагрузки на техническую поддержку, проект университета Беркли POSTGRES официально завершился выпуском версии 4.2.
В 1994 году Эндрю Ю и Джолли Чен добавили интерпретатор языка SQL в POSTGRES. Под новым названием, Postgres95 была впоследствии выпущена в сеть для свободного распространения в качестве наследника оригинального кода POSTGRES Беркли с открытым исходным кодом.
Postgres95 код был полностью переведен на ANSI C и сокращен в объеме на 25%. Многочисленные внутренние изменения позволили повысить производительность и удобство сопровождения. Postgres95 версия 1.0.x работала примерно на 30–50% быстрее в тесте Wisconsin Benchmark по сравнению с POSTGRES, версии 4.2. Помимо исправления ошибок, были внесены следующие основные улучшения:
Язык запросов PostQUEL был заменен на
SQL (реализован на стороне сервера). (Библиотека
интерфейса libpq была названа в честь PostQUEL.)
Подзапросы
не поддерживались до PostgreSQL
(см. ниже), но их можно было имитировать в
Postgres95 с помощью определенных пользователем
SQL функций. Агрегатные функции были реализованы заново. Поддержка GROUP BY
предложения в запросах также была добавлена.
Для интерактивных SQL-запросов была предложена новая программа (psql) предназначалась для выполнения интерактивных SQL-запросов, в которых использовался GNU Readline. Она в значительной степени заменила старую monitor программу.
Новая клиентская библиотека, libpgtcl,
поддерживались Tcl-клиенты. Пример командной оболочки,
pgtclsh, предоставлял новые команды Tcl для организации взаимодействия Tcl программ с
Postgres95 сервером.
Интерфейс больших объектов был полностью переработан. Инвертированные большие объекты были единственным механизмом хранения больших объектов. (Файловая система inversion была удалена.)
Система правил на уровне экземпляров была удалена. Правила по-прежнему были доступны в качестве правил перезаписи.
Краткое руководство, описывающее как стандартные SQL функции, так и возможности Postgres95 распространялось вместе с исходным кодом
GNU make (вместо BSD make) использовалась для сборки. Кроме того, Postgres95 могла быть скомпилирована с помощью немодифицированной версии GCC (выравнивание данных типа double было исправлено).
К 1996 году стало ясно, что название «Postgres95» не выдержит испытания временем. Было выбрано новое название, PostgreSQL, чтобы отразить связь между оригинальной системой POSTGRES и более поздними версиями с SQL функциональностью. В то же время было решено начать нумерацию версий с 6.0, возвращаясь к последовательности, изначально начатой в Berkeley POSTGRES проект.
Многие люди продолжают называть PostgreSQL как «Postgres» (теперь редко пишут заглавными буквами) в силу традиции или потому, что это название легче произносить. Данное использование широко признано в качестве псевдонима.
Основное внимание при разработке Postgres95 было сосредоточено на выявлении и понимании существующих проблем в серверном коде. С PostgreSQL, акцент сместился на расширение функций и возможностей, хотя работа продолжается во всех областях.