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

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

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

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

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

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

POSTGRES с тех пор выпустил несколько крупных релизов. Первая демо-версия системы заработала в 1987 году и была показана на конференции ACM-SIGMOD в 1988 году. Версия 1, описанная в [ston90a], была выпущена для нескольких внешних пользователей в июне 1989 года. В ответ на критику первой системы правил ([ston89]), система правил была переработана ([ston90b]), и в июне 1990 года была выпущена Версия 2 с новой системой правил. Версия 3 появилась в 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 (исправлена выравнивание данных типа double).

2.3. PostgreSQL

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

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

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

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