2. История PostgreSQL вкратце#

2. История PostgreSQL вкратце

2. История PostgreSQL вкратце #

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

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

Проект POSTGRES возглавляется профессором Майклом Стоунбрейкером.

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

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

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

2.2. Postgres95 #

В 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.

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

  • Новая клиентская библиотека, libpgtcl, поддерживающая Tcl-клиентов. Пример оболочки, pgtclsh, предоставляющий новые команды Tcl для взаимодействия программ Tcl с сервером Postgres95.

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

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

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

  • Сборка выполнялась с использованием GNU make (вместо BSD make). Кроме того, Postgres95 можно было скомпилировать с непропатченным GCC (исправлено выравнивание данных).

2.3. PostgreSQL #

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

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

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

Сведения о том, как дальше развивалась PostgreSQL с того времени, можно найти в Предметный указатель E.