Вы находитесь на странице: 1из 10

Иванов Павел Александрович

П-326

Оценка и сравнительный анализ СУБД Oracle и PostgreSQL

Моделирование данных

Используемая модель данных


Oracle. Предпочтительной моделью данных является сетевая модель.
PostgreSQL. Реляционная модель данных.

Триггеры и хранимые процедуры


Oracle. Триггеры на PL/SQL. Используются хранимые процедуры на
PL/SQL, C, C++, Java.
PostgreSQL. Помимо процедурного языка PL/pgSQL, разработчику,
доступны PL/Perl, PL/Python и др. Языки, которые могут использоваться для
написания хранимых процедур: Java, Perl, Python, Ruby, Tcl, C/C++, PL/pgSQL.

Средства поиска
Oracle. Комплексная система поиска Oracle Secure Enterprise Search (SES)
обеспечивает тот же интуитивно понятный интерфейс, что и в сети Интернет,
но предоставляет безопасный доступ ко всем источникам данных.
PotsgreSQL. Операторы поиска по текстовым данным — LIKE, ILIKE, ~,
~*. Как и многие современные СУБД, PostgreSQL [PGSQL] имеет встроенный
механизм полнотекстового поиска.

Предусмотренные типы данных


СУБД Oracle для всех типов данных – от простых до сложных.
Картриджи данных – это механизм расширения возможностей сервера данных
Oracle.
PostgreSQL. Помимо встроенных в ядро системы типов tsquery/tsvector и
xml, так же enum, GUID/UUID (в виде contrib-модуля), массивы составных
типов данных и др. Шаблонная структура в ядре СУБД позволит новым типам
данных, реализованные с помощью такого шаблона, унаследовать все основные
свойства СУБД . Пользователь может самостоятельно создавать новые
требуемые ему типы и программировать для них механизмы индексирования с
помощью GiST.

Реализация языка запросов


Oracle. Использует язык запросов Oracle SQL, XQuery (язык запросов для
данных в XML).
PostgreSQL. Очень высокий уровень соответствия ANSI SQL 92, ANSI
SQL 99 и ANSI SQL 2003. Outer Joins — внешние связки (LEFT,RIGHT, FULL).
Table Inheritance — наследование таблиц, позволяющее создавать объекты,
которые наследуют структуру родительского объекта и добавлять свои
специфические атрибуты. Еще: Prepared Statements (преподготовленные
запросы), Subqueries — подзапросы и др.

Особенности архитектуры и функциональные возможности

Мобильность
Oracle. Linux x86, Linux x86-64, Linux на zSeries, Linux Itanium, Linux на
POWER, Microsoft Windows (32-бит), Windows NT (x64), Windows NT (64-бит
Itanium), Solaris x86, Solaris, AMD64/EM64T, Solaris SPARC (64-бит), AIX5L,
HP-UX PA-RISC, HP-UX Itanium, HP Tru64 UNIX, HP OpenVMS Alpha, IBM
z/OS, Mac OS X Server.
PostgreSQL. Существует в реализациях для следующих платформ: Linux,
Solaris/OpenSolaris, Win32, Mac OS X, FreeBSD, QNX 4.25, QNX 6.
Масштабируемость
Oracle. Разработки Oracle в области систем высокой готовности привели к
созданию программного продукта Oracle Real Application Clusters.
Преимущества масштабируемости RAC особенно проявляются в системах
OLAP и DSS (здесь наблюдается линейный рост производительности) и в
высокопроизводительных OLTP (от десятков тысяч до миллионов транзакций в
минуту).
PostgreSQL. Масштабируемость основывается на описанных выше
возможностях. Низкая требовательность PostgreSQL к ресурсам и гибкая
система блокировок обеспечивают его шкалирование, в то время как индексы и
управление буферами обеспечивают хорошую управляемость системы даже при
высоких загрузках.

Распределенность
Oracle. СУБД, ориентированная на применение в корпоративных сетях
распределенной обработки данных, рассчитана на работу с огромными
объемами данных и обширными коллективами пользователей.
PostgreSQL. Поддержка БД практически неограниченного размера.
Мощные и надежные механизмы транзакций и репликации. Наследование.
Легкая расширяемость.

Сетевые возможности
Oracle. Пакет протокола Oracle Net*8.
PostgreSQL. SSL,SSH шифрование трафика между клиентом и сервером.
Сложная система аутентификации на уровне хоста или IP адреса/подсети.

Контроль работы СУБД

Контроль использования памяти


Oracle. Сжатие выполняется на уровне блоков базы данных. Экономия
места достигается за счет удаления избыточных копий значений данных в
таблице. Можно производить дефрагментацию таблиц. PMON выполняет
автоматическую "уборку" (уборщик мусора).
PostgreSQL. Управление буферами и кэширование используют сложные
алгоритмы для поддержания эффективности использования выделенных
ресурсов памяти. Дефрагментации базы данных командой VACUUM.
DISTINCT - аргумент который обеспечивает устранение двойных значений.

Автонастройка
Oracle. Многие метрики Oracle становятся автонастраивающимися.
Возможность динамического распределения памяти позволяет осуществить
автонастройку SGA (Глобальной Системной области Oracle). Создать
аналитический механизм для автоматической реконфигурации
PostgreSQL. Автонастройка bgwriter оценивает сколько буферов должно
быть выделено на основе статистики о текущей активности.

Особенности разработки приложений

Наличие средства разработки приложений


Oracle. Cредства разработки Oracle SQL Developer, так же известного как
Project Raptor.
PostgreSQL. PgEdit - программная среда для разработки приложений и
SQL-редактор.

Средства проектирования
Oracle. Oracle Object Database Designer.
PostgreSQL. MicroOLAP Database Designer.
Многоязыковая поддержка
Oracle. Поддержка Юникода.
PostgreSQL. Поддержка Юникода.

Возможности разработки веб-приложений


Oracle. Oracle Application Express.
PostgreSQL. СУБД не имеет обширный набор инструментов для
настройки Web-приложений.

Поддерживаемые языки программирования


Oracle. C, C++, Java.
PostgreSQL. Процедурные языки позволяют пользователям разрабатывать
свои функции на стороне сервера, тем самым переносить логику приложения на
сторону базы данных, используя языки программирования, отличные от
встроенных SQL и C. К настоящему времени поддерживаются (включены в
стандартный дистрибутив) PL/pgSQL, pl/Tcl, Pl/Perl и pl/Python. Кроме них,
существует поддержка PHP, Java, Ruby, R, shell.

Производительность

Рейтинг ТРС
Oracle. 14227.25
PostgreSQL. 1ГБ/с запрос на узел (TPC-H).

Возможности параллельной архитектуры


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

Надежность

Восстановление после сбоев


Oracle. С помощью RMAN (Oracle Recovery Manager), механизму,
интегрированному с основной утилитой управления Oracle Enterprise Manager.
PostgreSQL. PostgreSQL имеет в наличии Write Ahead Logging (WAL) -
общепринятый механизм протоколирования всех транзакций, что позволяет
восстановить систему после возможных сбоев.

Резервное копирование
Oracle. Как в восстановлении, так и в резервном копировании главной
утилитой является RMAN.
PostgreSQL. Point in Time Recovery (PITR) - возможность восстановления
базы данных (используя WAL) на любой момент в прошлом, что позволяет
осуществлять непрерывное резервное копирование кластера PostgreSQL.

Откат изменений
Oracle. Механизм Oracle Total Recall, позволяющий администраторам
применять запросы к таблицам по их состоянию на определенные моменты
времени в прошлом. Таким образом, обеспечивается простой и удобный способ
добавления к данным измерения времени для отслеживания изменений, аудита
и соблюдения нормативных требований.
PostgreSQL. PostgreSQL полностью соответствует принципам ACID -
атомарность, непротиворечивость, изолированность, сохранность данных.

Многоуровневая система защиты


Oracle. Аутентификация средствами операционной системы.
Аутентификация при помощи сетевых сервисов: SSL — аутентификация,
аутентификация службами третьих сторон, аутентификация в многоуровневых
приложениях. Шифрование данных: используется возможности опции Oracle
Advanced Security, в которой предусмотрена функция Network encryption,
позволяющая шифровать весь поток данных (Network encryption позволяет
добиться высокого уровня безопасности). Аудит доступа к данным.
PostgreSQL. Система блокировок поддерживает блокировки на нижнем
уровне. Блокировка поддерживается на уровне таблиц и записей. На нижнем
уровне, блокировка для общих ресурсов оптимизирована под конкретную ОС и
архитектуру.

Требования к рабочей среде

Поддерживаемые аппаратные платформы


Oracle. Корпорация Oracle портировала движок базы данных на многие
платформы, но в последнее время Oracle портирует на меньшее количество
платформ.
PostgreSQL. Поддерживает 32- и 64-битные архитектуры.

Минимальные требования к оборудованию


Oracle. Требования к серверу БД: память — 1 ГБ, жесткий диск — 80ГБ.
Требования к рабочей станции: память — 256МБ, жесткий диск — 10ГБ.
PostgreSQL. 16Мб оперативной памяти и 60Мб свободного дискового
пространства.
Максимальный размер адресуемой памяти
Oracle. Максимальный размер БД ограничен лишь для бесплатной версии.
PostgreSQL. Максимальный размер базы данных не ограничен.

Операционные системы
Oracle. Linux x86, Linux x86-64, Linux на zSeries, Linux Itanium, Linux на
POWER, Microsoft Windows (32-бит), Windows NT (x64), Windows NT (64-бит
Itanium), Solaris x86, Solaris, AMD64/EM64T, Solaris SPARC (64-бит), AIX5L,
HP-UX PA-RISC, HP-UX Itanium, HP Tru64 UNIX, HP OpenVMS Alpha, IBM
z/OS, Mac OS X Server.
PostgreSQL. Существует в реализациях для следующих платформ: Linux,
Solaris/OpenSolaris, Win32, MacOS X, FreeBSD,QNX4.25,QNX6.

Смешанные критерии

Качество и полнота документации


Oracle. На официальной веб-странице Oracle собраны все каталоги
продуктов и информационные брошюры Oracle за последние 5 лет.
PostgreSQL. Поддержка NLS(Native Language Support) - документация,
сообщения об ошибках доступны на различных языках, включая японский,
немецкий, итальянский, французский, русский, испанский, португальский,
словенский, словацкий и несколько диалектов китайского языков.

Локализованность
Oracle. Поддержка национальных языков в СУБД Oracle появилась около
15 лет назад.
PostgreSQL. Поддержка 25 различных наборов символов (charsets),
включая ASCII, LATIN, WIN, KOI8 и UNICODE, а также поддержка locale, что
позволяет корректно работать с данными на разных языках.

Модель формирования стоимости


Oracle. Oracle является коммерческой СУБД. СУБД Oracle поставляется в
различных редакциях, ориентированных на различные сценарии разработки и
развертывания приложений (а также отличающиеся ценой): Enterprise Edition,
Standard Edition, Standard Edition One, Personal Edition, Lite, Express Edition
(бесплатная редакция, но имеет ряд ограничений).
PostgreSQL. PostgreSQL является свободной СУБД. Распространяется под
лицензией BSD. Имеет коммерческие расширения.

Стабильность производителя
Oracle. На протяжении почти тридцати лет корпорация Oracle (NASDAQ:
ORCL), крупнейший производитель корпоративного программного
обеспечения, предлагает решения и услуги, позволяющие организациям с
максимальной выгодой использовать самую актуальную и точную информацию,
предоставляемую их бизнес-системами. Компания имеет годовой объем продаж
более 18,0 миллиардов долларов США. Корпорация предоставляет свои
продукты и услуги в области консалтинга, обучения и технической поддержки
более чем в 145 странах мира.
PostgreSQL. PostgreSQL развивается силами международной группы
разработчиков (PGDG), в которую входят как непосредственно программисты,
так и те, кто отвечают за продвижение PostgreSQL (Public Relation), за
поддержание серверов и сервисов, написание и перевод документации, всего на
2005 год насчитывается около 200 человек. Другими словами, PGDG - это
сложившийся коллектив, который полностью самодостаточен и устойчив.
Проект развивается по общепринятой среди открытых проектов схеме, когда
приоритеты определяются реальными нуждами и возможностями.

Распространенность СУБД
Oracle. Технологии Oracle используют более чем 275 000 предприятий по
всему миру: от компаний малого и среднего бизнеса до глобальных корпораций.
Сообщество PostgreSQL состоит из большого количества пользователей,
объединенных разными интересами, такими как участие в разработке, поиск
советов, решений, возможность коммерческого использования.

Оценить