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.