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

2.1. Проект Беркли POSTGRES

Проект POSTGRES , возглавляемый профессором Майклом Стоунбрейкером, спонсировался Агентством перспективных оборонных исследовательских проектов ( DARPA ), Военным исследовательским бюро ( ARO ), Национальным научным фондом ( NSF ) и ESL, Inc. Внедрение POSTGRES началось в 1986. Первоначальные концепции системы были представлены в [ston86] , а определение исходной модели данных появилось в [rowe87] . Дизайн системы правил в то время был описан в [ston87a] . Обоснование и архитектура диспетчера хранилища подробно описаны в [ston87b] .

С тех пор POSTGRES претерпел несколько крупных релизов. Первая « демонстрационная » система заработала в 1987 году и была показана на конференции ACM-SIGMOD в 1988 году . Версия 1, описанная в [ston90a] , была выпущена для нескольких внешних пользователей в июне 1989 года. В ответ на критику первой системы правил ( [ston89] ) система правил была переработана ( [ston90b] ), и Версия 2 был выпущен в июне 1990 года с новой системой правил. Версия 3 появилась в 1991 году и добавила поддержку нескольких менеджеров хранения, улучшенный исполнитель запросов и переписанную систему правил. По большей части последующие выпуски до Postgres95(см. ниже) ориентированы на портативность и надежность.

POSTGRES использовался для реализации множества различных исследовательских и производственных приложений. К ним относятся: система анализа финансовых данных, пакет мониторинга характеристик реактивных двигателей, база данных отслеживания астероидов, база данных медицинской информации и несколько географических информационных систем. POSTGRES также использовался в качестве образовательного инструмента в нескольких университетах. Наконец, Illustra Information Technologies (позднее слившаяся с Informix , которая теперь принадлежит IBM ) взяла код и коммерциализировала его. В конце 1992 года POSTGRES стала основным менеджером данных для проекта научных вычислений Sequoia 2000 .

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

2.2. Postgres95

В 1994 году Эндрю Ю и Джолли Чен добавили в POSTGRES интерпретатор языка SQL . Под новым именем Postgres95 впоследствии был выпущен в Интернет, чтобы найти свой собственный путь в мире как потомок исходного кода POSTGRES Berkeley с открытым исходным кодом.

Код Postgres95 полностью соответствует стандарту ANSI C и уменьшен на 25%. Многие внутренние изменения улучшили производительность и удобство обслуживания. Версия 1.0.x Postgres95 работала примерно на 30–50% быстрее в тесте Wisconsin Benchmark по сравнению с POSTGRES версии 4.2. Помимо исправлений ошибок, основными улучшениями были следующие:

Язык запросов PostQUEL заменен на SQL (реализован на сервере). (Библиотека интерфейса libpq была названа в честь PostQUEL.) Подзапросы не поддерживались до PostgreSQL (см. ниже), но их можно было имитировать в Postgres95 с помощью пользовательских функций SQL . Повторно реализованы агрегатные функции. GROUP BYТакже была добавлена поддержка предложения запроса.

Для интерактивных SQL-запросов была предоставлена новая программа ( psql ), которая использовала GNU Readline . Это в значительной степени заменило старую программу мониторинга .

Новая интерфейсная библиотека libpgtcl, поддерживала клиентов на основе Tcl . Образец оболочки pgtclshсодержал новые команды Tcl для взаимодействия программ Tcl с сервером Postgres95 .

Интерфейс больших объектов был переработан. Инверсионные большие объекты были единственным механизмом для хранения больших объектов. (Инверсионная файловая система была удалена.)

Система правил на уровне экземпляра была удалена. Правила по-прежнему были доступны как правила перезаписи.

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

Для сборки использовался GNU make (вместо BSD make). Также Postgres95 можно было скомпилировать с непропатченным GCC (исправлено выравнивание данных двойников).

2.3. PostgreSQL

К 1996 году стало ясно, что название « Постгрес95 » не выдержит испытания временем. Мы выбрали новое имя, PostgreSQL , чтобы отразить связь между исходным POSTGRES и более поздними версиями с поддержкой SQL . В то же время мы установили нумерацию версий так, чтобы она начиналась с 6.0, возвращая номера в последовательность, первоначально начатую проектом Berkeley POSTGRES .

Многие люди продолжают называть PostgreSQL « Postgres » ( теперь редко заглавными буквами) из-за традиции или потому, что его легче произносить. Это использование широко распространено в качестве прозвища или псевдонима.

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