FreelanceHunt.com > удаленная работа и фриланс проекты в сфере IT  

FreelanceHunt.com » Категории » Что такое PostgreSQL?

{{Карточка программы |
name = PostgreSQL |
screenshot = 150px |
caption = Логотип PostgreSQL |
developer = сообщество PostgreSQL |
latest_release_version = 8.2.6 |
latest_release_date = 7 января 2008 |
latest_preview_version = 8.3 Beta 4 |
latest_preview_date = 3 декабря 2007 |
operating_system = Кроссплатформенное программное обеспечение |
genre = Объектно-реляционная СУБД |
license = BSD |
website = www.postgresql.org
}}
PostgreSQL (произносится «Пост-Грес-Кью-Эл» или просто «постгрес») — свободная объектно-реляционная система управления базами данных (СУБД).

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

Поддержка стандартов, возможности, особенности


PostgreSQL поддерживает многие из возможностей стандарта SQL:2003 (ISO/IEC 9075).

На данный момент (версия 8.2.4-1), в PosgreSQL имеются следующие ограничения:

|-
|Максимум индексов в таблице||Нет ограничений
Максимальный размер базы данных Нет ограничений
Максимальный размер таблицы 32 ТБайт
Максимальный размер записи 1,6 ТБайт
Максимальный размер поля 1 ГБайт
Максимум записей в таблице Нет ограничений
Максимум полей в таблице 250—1600, в зависимости от типов полей

Сильными сторонами PostgreSQL считаются:

  • поддержка БД практически неограниченного размера;
  • мощные и надёжные механизмы транзакций и репликации;
  • расширяемая система встроенных языков программирования: изначально поддерживаются SQL, {{nobr|PL/pgSQL}}, {{nobr|PL/Perl}}, {{nobr|PL/Python}} и {{nobr|PL/Tcl}}, а также имеется поддержка загрузки {{nobr|C-совместимых}} модулей;
  • поддержка со стороны многих языков программирования: {{nobr|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.

Надёжность


Согласно результатам автоматизированного исследованияразличного ПО на предмет ошибок, в исходном коде PostgreSQL было найдено {{nobr|20 проблемных}} мест на {{nobr|775 000 строк}} исходного кода (в среднем, одна ошибка на {{nobr|39 000 строк}} кода). Для сравнения: MySQL — {{nobr|97 проблем,}} одна ошибка на {{nobr|4 000 строк}} кода; FreeBSD (целиком) — {{nobr|306 проблем,}} одна ошибка на {{nobr|4 000 строк}} кода; Linux (только ядро) — {{nobr|950 проблем,}} одна ошибка на {{nobr|10 000 строк}} кода.

См. также


Ссылки


{{СУБД}}

Категория:СУБД
Категория:Свободное программное обеспечение

ca:PostgreSQL
cs:PostgreSQL
da:PostgreSQL
PostgreSQL
PostgreSQL
es:PostgreSQL
eu:PostgreSQL
fi:PostgreSQL
PostgreSQL
id:PostgreSQL
it:PostgreSQL
ja:PostgreSQL
ko:PostgreSQL
lt:PostgreSQL
nl:PostgreSQL
no:PostgreSQL
pl:PostgreSQL
pt:PostgreSQL
ro:PostgreSQL
sk:PostgreSQL
sr:PostgreSQL
sv:PostgreSQL
tr:PostgreSQL
uk:PostgreSQL
vi:PostgreSQL
zh:PostgreSQL