Открыть сервис

PostgreSQL 6.0

PostgreSQL 6.0 — это версия свободной объектно-реляционной системы управления базами данных (СУБД) PostgreSQL, выпущенная 29 января 1997 года. Данный релиз стал первым, получившим название «PostgreSQL», сменив предыдущее имя «Postgres95», и ознаменовал собой важный этап в эволюции проекта, закрепив переход от исследовательской разработки к полноценному промышленному продукту, поддерживаемому сообществом.

История

Предыстория и проект Postgres

История PostgreSQL восходит к 1986 году, когда профессор Майкл Стоунбрейкер из Калифорнийского университета в Беркли начал разработку СУБД Postgres (Post Ingres). Первоначально проект был исследовательским, его целью было создание объектно-ориентированной базы данных, поддерживающей сложные типы данных и наследование. В 1994 году аспиранты Эндрю Ю и Джоли Чен добавили в Postgres поддержку языка SQL, создав версию Postgres95. В 1996 году проект был переименован в PostgreSQL, чтобы подчеркнуть его основную функциональность — поддержку SQL.

Разработка версии 6.0

Версия 6.0 стала результатом работы команды разработчиков, включавшей как бывших участников проекта Postgres, так и новых добровольцев из интернет-сообщества. Ключевыми фигурами в этот период были Марк Фурнье, Томас Локхарт и Том Лейн. Релиз 6.0 был выпущен под лицензией BSD, что было важным шагом, так как предыдущие версии Postgres имели ограничения на коммерческое использование. Выход 6.0 совпал с началом активного использования интернета и ростом потребности в надёжных и масштабируемых базах данных.

Ключевые изменения и нововведения

Полноценная поддержка SQL

Главным достижением версии 6.0 стала полноценная реализация стандарта SQL-92. В отличие от Postgres95, который поддерживал лишь базовые конструкции SQL, 6.0 включала:

Улучшение производительности

Разработчики провели значительную работу по оптимизации ядра СУБД:

  • Новый планировщик запросов: был переработан механизм оптимизации выполнения запросов, что позволило сократить время выполнения сложных операций.
  • Улучшенная работа с индексами: версия 6.0 поддерживала B-деревья, хеш-индексы и R-деревья (для пространственных данных). Была улучшена производительность операций вставки и обновления.
  • Многопоточность: хотя полноценная многопоточность была реализована позже, в 6.0 была улучшена обработка параллельных транзакций за счёт более эффективного использования механизма MVCC (Multiversion Concurrency Control).

Расширение функциональности

  • Поддержка больших объектов (Large Objects): появилась возможность хранить и обрабатывать бинарные данные размером до 2 ГБ.
  • Типы данных: были добавлены типы timestamp (с часовым поясом и без), interval, numeric (с произвольной точностью).
  • Администрирование: появились утилиты pg_dump и pg_restore для резервного копирования и восстановления баз данных, а также команда VACUUM для очистки и оптимизации таблиц.

Технические характеристики

Архитектура

PostgreSQL 6.0 работала по модели «один процесс на одно соединение» (fork-based). Каждый клиентский запрос обрабатывался отдельным процессом, что обеспечивало изоляцию и надёжность, но требовало значительных ресурсов при большом количестве соединений. Система поддерживала работу на Unix-подобных операционных системах (Linux, FreeBSD, Solaris, HP-UX, AIX).

Ограничения

  • Максимальный размер базы данных: теоретически не ограничен, но на практике — до 32 ТБ (зависит от файловой системы).
  • Максимальный размер таблицы: 16 ТБ.
  • Максимальный размер строки: 8 КБ (с возможностью использования TOAST для хранения больших значений).
  • Максимальное количество столбцов в таблице: 250.

Значение и влияние

Переход к открытому сообществу

Выход PostgreSQL 6.0 стал точкой отсчёта для современной модели разработки СУБД. В отличие от коммерческих продуктов, таких как Oracle или Informix, PostgreSQL с самого начала развивался как открытый проект, управляемый сообществом. Версия 6.0 привлекла первых крупных пользователей, в том числе исследовательские институты и небольшие компании, которые начали использовать её для веб-приложений и аналитики.

Влияние на индустрию

PostgreSQL 6.0 продемонстрировала, что свободная СУБД может конкурировать с коммерческими решениями по функциональности и надёжности. Она стала основой для многих проектов, включая:

  • PostGIS (пространственные расширения, появившиеся позже).
  • Slony-I (репликация).
  • pgAdmin (инструмент администрирования).

Критика и недостатки

Отсутствие некоторых возможностей

Несмотря на значительный прогресс, версия 6.0 имела ряд ограничений:

  • Отсутствие полной поддержки транзакций (DDL-операции, такие как ALTER TABLE, не были транзакционными).
  • Ограниченная производительность при работе с очень большими таблицами (миллионы строк).
  • Сложность настройки: для оптимальной работы требовалось ручное редактирование конфигурационных файлов.
  • Отсутствие встроенной репликации и кластеризации.

Проблемы с документацией

Документация к версии 6.0 была неполной и часто устаревшей, что затрудняло освоение системы новыми пользователями. Многие функции описывались только в комментариях к исходному коду.

Интересные факты

  • Версия 6.0 была выпущена всего через несколько месяцев после выхода Postgres95, что свидетельствует о высокой интенсивности разработки.
  • Номер версии 6.0 был выбран, чтобы подчеркнуть преемственность с Postgres95 (версия 5.0) и обозначить новый этап развития.
  • В состав дистрибутива входила утилита psql — интерактивный терминал, который до сих пор является основным инструментом для работы с PostgreSQL.
  • Первый релиз PostgreSQL 6.0 весил около 3 МБ в сжатом виде и содержал около 100 000 строк кода на языке C.

Источники

  • Официальная документация PostgreSQL (архивы версий).
  • История проекта PostgreSQL на сайте postgresql.org.
  • Статья «The Design of PostgreSQL» (M. Stonebraker, 1996).
  • Книга «PostgreSQL: The First 20 Years» (Bruce Momjian, 2016).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →