PostgreSQL

PostgreSQL (произносится «Пост-Грес-Кью-Эл» или просто «постгрес») — свободная объектно-реляционная система управления базами данных (СУБД).

Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2 и СУБД производства Sybase) вместе с другими свободными СУБД (таким как MySQL и Firebird).

Сильными сторонами PostgreSQL считаются:
  • поддержка БД практически неограниченного размера;
  • мощные и надёжные механизмы транзакций и репликации;
  • расширяемая система встроенных языков программирования: изначально поддерживаются SQL, PL/pgSQL, PL/Perl, PL/Python и PL/Tcl, а также имеется поддержка загрузки C-совместимых модулей;
  • поддержка со стороны многих языков программирования: C/C++, Java, Perl, Python, Ruby, ECPG, Tcl, PHP и других.
  • наследование.
  • легко расширяемая система типов.
PostgreSQL поддерживает много типов полей двумерной оконной графики (точки, прямые, прямоугольники и т. д.). Есть поддержка массивов данных (несколько экземпляров однотипных данных в одном поле одной записи). Также имеется поддержка регулярных выражений в стиле языка Perl.

Главным слабым местом, происходящим из архитектуры самой СУБД, считается масштабируемость: в PostgreSQL имеются общие для всех соединений «узлы».

Прочие возможности:
  • Соблюдение принципов ACID.
  • Соответствие стандартам ANSI SQL-92 и SQL-99.
  • Триггеры, ограничения, правила и хранимые процедуры.
  • Поддержка запросов с OUTER JOIN, UNION, UNION ALL and EXCEPT и подзапросов.
  • Последовательности.
  • Контроль целостности.
  • Репликация.
  • Поддержка Юникод.
  • Поддержка регулярных выражений в стиле Perl.
  • Встроенная поддержка SSL и Kerberos.
  • Блокировки точнее, чем на уровне записи.
  • Функциональные и частичные индексы.
  • Подгружаемые расширения, подерживающие SHA1, MD5, XML и другую функциональность (API открыт).
  • Средства для генерации совместимого с другими системами SQL-кода и импорта из других систем.
  • Возможность использования нескольких популярных языков для написания хранимых процедур. Среди них: Perl, PHP, Python, C.