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.