Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы (А-13-07) / Дудкина, Захаров / Дудкина А.А. А-13-07. Обзор современных СУБД.doc
Скачиваний:
114
Добавлен:
28.06.2014
Размер:
337.92 Кб
Скачать

Приложение

Интереса ради хотелось бы привести сравнительную таблицу, на которую я наткнулась в просторах Интернета. Хоть и, пожалуй, не совсем объективно, но хоть как-то структурировано она дает предаставление о возможностях трех СУБД, наиболее широко используемых для веб-проектов: Microsoft SQL Server 2008, MySQL 5.1 и PostgreSQL 8.4.

Показатели

Microsoft SQL Server 2008

MySQL 5.1

PostgreSQL 8.4

Поддерживаемые операционные системы

Windows Desktop/Server

Windows Desktop/Server , Linux, Unix, Mac

Windows1 Desktop/S22erver, Linux, Unix, 2Mac

Условии лицензирования

Коммерческий продукт с закрытым исходным кодом. Есть бесплатная версия с ограничением оперативной памяти до 4 Гб.

Коммерческая лицензия и GNUGPL.

Лицензия BSD Open Source.

Процесс установки и поддержки

Довольно длительное время уходит на установку приложения и всех его зависимстей, однако множество визардов помогают в процессе. Платные версии отсылают электронные сообщения, если что-то «не так» в процессе работы.

Самый простой процесс установки, так как сущетвует огромное количество готовых пакетов для разных операционных систем, установка из которых сводит трубности и проблемы к нулю

Для опероционных систем семейств Linux/Unix установка идентична установке MySQL. Однако во время установки под Windows иногда возникают проблемы с инициализацией базы данных.

Наличие предустановленных драйверов в ОС семейства Windows

Да

Нет

Нет

Наличие драйверов ODBC, JDBC, ADO.NET

Да

Да

Да

Наличие View, доступных только для чтения

Да

Да

Да

Наличие программных продуктов с открытым исходным кодом, основанных на этой СУБД

Несколько

Много

Несколько, но их число растет, особенно в проектах на PHP

Использование в коммерческих проектах

Среднее (продукт новый)

Среднее

Среднее (чуть реже, чем MySQL)

Обновляемые View

Да, даже для двухтабличных view. Они автоматически обновляются, если изменения затрагивают только одну таблицу.

Да, для однотабличных view и некоторых «простых» двухтабличных.

Да, но не в автоматическом режиме. Надо писать правила обнволения.

Поддержка

Materialized/Indexable Views

Да, но с большими ограничениями по версиям продукта и ограничениями на сам view.

Нет

Да, но реализуется путем утановки дополнительных модулей с открытым исходным кодом

Возможность добавлять столбцы, изменять названия, типы данных для view без их уничтожения

Да

Да

Да

Наличие графического ПО для конструирования и оптимизации запросов

Да (SQL Management Studio и Studio Express)

Нет

Да (PgAdminIII)

Наличие Computed Columns

Да, но все равно чаще используеются view

Нет

Нет — в PostgreSQL это функциональность излишняя.

Поддержка фунциональных индексов

Нет, но можно обойтись Computed Columns

Нет

Нет

Поддержка частичных индексов

Да (называются “фильтрованные индексы”)

Нет

Да

Поддержка ACID-требований к транзакциям

Да

Да, при использовании некоторых движков хранения данных

Да

Каскадное обновление/удаление внешних ключей

Да

Да, при использовании некоторых движков хранения данных

Да

Внесение данных в несколько строк

Да

Да

Да

Поддержка UPSERT-логики (это когда происходит вставка, если поле пустое и обновление, если поле не пустое)

Да (через MERGE UPDATE)

Да (черезINSERT IGNORE, REPLACEINSERT ON DUPLICATE UPDATE)

нет

Поддержка репликации

Да, встроенная и разных типов. Но внесение тсруктурных изменений после начала репликаци — очень сложный процесс.

Да, включая mater-master репликацию.

Да, но с помощью сторонних продуктов с открытым исходным кодом. Репликация всех типов.

Возможность писать хранимые функции на разных языках программирования

Да, теоретически на любом языке, поддерживающим CLR, например VisualBasic.NET, C#, IronPython, но сначала надо скомпилировать код в бибилиотеку dll.

Нет (кроме C и Pl/SQL)

Да, наиболее полная поддержка из всех рассматриваемых.

Возможность создавать пользовательские аггрегированные функции

Да — любой .NET язык, кроме TRANSACT SQL.

Да, только на С

Да — на PL language и встроенных C, SQL, PLPgSQL.

Поддержка триггеров

Да

Да

Да

Партицирование таблиц

Да (в Enterprise версии)

Да

Да

Возможность создавать функции, возвращающие таблицу или набор таблиц, которые можно использовать в секции FROM запросов.

Да

Нет

Да

Поддержка создания функций

Да

Да

Да

Поддержка хранимых процедур

Да

Дa

Да (с помощью CREATE FUNCTION)

Поддержка динамического SQL в функциях

Нет

Нет

Да

Бесплатное ПО для графического управления БД

Да (SQL Management Studio/Express)

Нет

Да (PgAdmin III)

Наличие встроенного планировщика (не CronTab)

Да (SQL Agent не для Express версии)

Да (только для SQL-запросов)

Да (PgAgent)

Возможность доступа к таблице из другой базы данных, находящейся на том же хосте

Да

Да

Да

Чувствительность к регистру

По умолчанию — не чувствительна

Нет

Да

Поддержка даты и времени

Да

Да (но без временной зоны)

Да

Аутентификация

Средставими БД и ActiveDirectory

Средствами БД

Много разных методов, включающих предыдущие

Разграничение доступа к столбцам

Да

Да

Да

Поддержка DISTINCT ON

Нет

Нет

Да

Поддержка WITH ROLLUP

Да

Да

Да

Поддержка WITH CUBE

Да

Нет

Нет

Поддержка функцийOVER..PARTITION BY

Да

Нет

Да, причем лучше, чем в MS SQL

Поддержка рекурсивных запросов

Да

Нет

Да

Поддержка COUNT(DISTINCT), AGGREGATE(DISTINCT)

Да

Да

Да

Поддержка OGC

Да

Да

Да

Поддержка схем

Да

Нет

Да

Поддержка CROSS APPLY

Да

Нет

Нет, но можно обойтись введением возвращающей функции в Select

Поддержка LIMIT .. OFFSET

Нет

Да

Да

Наличие Advanced Database Tuning Wizard

Да (технолгия Microsoft)

Нет

Нет

Наличие Maintenance Plan Wizard

Да (технолгия Microsoft)

Нет

Нет

Наличие Pluggable Storage Engine

Нет

Да

Нет

Поддержка связанных подзапросов

Да

Да

Да

Производительностьпланировщика запросов для сложных запросов

Средняя (умеет параллельные запросы «из коробки»)

Плохая

Очень хорошая (GridSQL)

Наличие текстового процессора

Да

Да

Да

Поддержка последовательностей и автоматической нумерации

Да

Да

Да

Возможность откатить CREATE, ALTER

Да

Нет

Да

Оценка производидась по критерию — за полную поддержку 2 балла, за частичную — 1 балл, за никакую — 0 баллов. Результаты оценки:

  • MS SQL — 87 баллов

  • Mysql — 64 балла

  • PostgreSQL — 91 балл.

Ну и на последок несколько хвалебных слов в честь победителя. PostgreSQL используют в качестве СУБД такие проекты и компании как:

  • Yahoo!

  • MySpace

  • OpenStreetMap

  • Sony Online Entertainment

  • BASF

  • hi5.com

  • Skype

  • Sun xVM

  • Evergreen