Выбор системы управления базами данных (СУБД) представляет собой сложную задачу, для решения которой необходимо учесть множество факторов и параметров. Эта задача является одним из самых важных этапов при разработке приложений баз данных. Выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям предприятия, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала. Кроме того, необходимо убедиться, что новая СУБД способна принести предприятию реальные выгоды [1].
В общем случае, перечень требований к СУБД, может изменяться в зависимости от поставленных целей. Тем не менее можно выделить несколько групп критериев:
· Структура данных
· Функциональные возможности
· Особенности разработки приложений
· Производительность
· Требования к рабочей среде
Рассмотрим каждую из этих групп в отдельности.
1. Структура данных. К данной группе требований можно отнести следующие: используемая модель данных (вопрос об использовании той или иной модели должен решаться на начальном этапе проектирования информационной системы), предусмотренные типы данных.
2. Функциональные возможности. В данной группе требований выделяются следующие критерии: мобильность (независимость системы от среды, в которой она работает), масштабируемость (сможет ли данная система соответствовать росту информационной системы), триггеры и хранимые процедуры, сетевые возможности.
3. Особенности разработки приложений. Многие производители СУБД выпускают также средства разработки приложений для своих систем. Как правило, эти средства позволяют наилучшим образом реализовать все возможности сервера, поэтому при анализе СУБД стоит рассмотреть также и возможности средств разработки приложений. К данной группе требований можно отнести следующие: средства проектирования, многоязыковая поддержка, возможности разработки Web-приложений.
4. Производительность. Производительность системы является одним из самых важных показателей, который будет использоваться в статье в качестве основного критерия для выбора СУБД. Существует несколько факторов, которые можно отнести к производительности системы и которые могут учитываться для оценки производительности данной СУБД. Такими факторами являются следующие: рейтинг ТРС (Transactions per Cent), возможности параллельной архитектуры, возможности оптимизирования запросов.
5. Требования к рабочей среде. К данной группе требований можно отнести следующие: поддерживаемые аппаратные платформы, минимальные требования к оборудованию и операционной системе [1].
Рассмотрим 5 различных реляционных СУБД. Согласно методу анализа иерархий, предложенному Т. Саати, проводится попарное сравнение всех СУБД по каждому критерию, в результате чего получается 5 матриц попарных сравнений альтернатив.
Матрица попарных сравнений строится следующим образом. Пусть заданы элементы А и В, если:
· АиВ одинаково важны, заносим 1;
· А незначительно важнее, чем 5, заносим 3;
· А значительно важнее 5, заносим 5;
· А явно важнее 5, заносим 7;
• А по своей значительности абсолютно превосходит В, заносим 9 в позицию (А, В), где пересекаются строка А и столбец В [2].
При сравнении элемента с самим собой имеем равную значительность, так что на пересечении строки А со столбцом А заносим 1. Поэтому главная диагональ матрицы должна состоять из единиц. Значения 2, 4, 6, 8 - промежуточные.
Для каждой из полученных таблиц считаются следующие показатели:
1. Вектор приоритетов матрицы;
2. Главное собственное значение , соответствующее вектору приоритетов, Собственное значение используется для оценки согласованности;
3. Индекс согласованности (ИС), показывающий отклонение от согласованности, определяется по формуле:
,
4. Отношение согласованности (ОС), которое вычисляется делением ИС на случайный индекс СИ), где СИ - табличная величина для матрицы данного порядка. Значение ОС, меньшее или равное 0.10, будем считать приемлемым [2].
Строится матрица, АпУ,т размеры которой пит определяются следующим образом: п - количество альтернатив (рассматриваемых СУБД), т - количество критериев, по которым сравниваются альтернативы.
Векторы приоритетов, посчитанные для всех полученных таблиц, записываются в матрицу столбцами.
Далее строится матрица попарных сравнений критериев. Эта задача неоднозначна, так как для разных организаций важность того или иного критерия определяется по-разному, в зависимости от конкретных требований и возможностей. Для этой матрицы считаются такие же показатели, как для матрицы попарных сравнений альтернатив, таким образом получаем вектор весов критериев.
Чтобы получить общее ранжирование СУБД, умножим матрицу А справа на транспонированный вектор-столбец весов критериев. В результате имеем результат -веса всех рассматриваемых СУБД [2].
В качестве альтернатив рассмотрим следующие СУБД:
1) DB2
2) Oracle
3) Microsoft SQL Server
4) MySQL
5) PostgreSQL
Информация о рассматриваемых СУБД приведена в табл. 4.1.
Таблица 4.1 Информация о СУБД
Название | Дата выпуска | Разработчик | Язык |
DB2 | 1983 г. | IBM | С, С++ |
Oracle | 1979 г. | Oracle Corporation | С |
MySQL | 1995 г. | MySQL AB, Oracle Corporation | С, С++ |
Microsoft SQL Server | 1989 г. | Microsoft | - |
PostgreSQL | 1989 г. | PostgreSQL | С |
Сравним выбранные СУБД по критерию «Структура данных».
Все рассматриваемые альтернативы реализуют реляционную модель данных (РСУБД) или объектно-реляционную модель данных (ОРСУБД), следовательно, все рассматриваемые системы подходят для анализа и сравнения. Проводится анализ рассматриваемых альтернатив по предусмотренным типам данных. По результатам этого анализа можно построить матрицу попарных сравнений альтернатив по первому критерию (табл. 4.2), рассчитать вектор приоритетов, главное собственное значение и остальные показатели [3].
Таблица 4.2 Матрица попарных сравнений альтернатив по критерию «Структура данных»
DB2 | Oracle | MySQL | MS SQL | Postgre SQL | |
DB2 | |||||
Oracle | 1/4 | 1/5 | 1/3 | ||
MySQL | 1/2 | ||||
MS SQL | |||||
Postgre SQL | 1/2 | 1/2 |
Вектор приоритетов: ОД 8 0,08 0,24 0,33 0,17
Главное собственное значение: 5,34. Индекс согласованности (ИС): 0,084. Отношение согласованности (ОС): 0,07. Как видно, ОС в пределах нормы.
Сравним выбранные СУБД по критерию «Функциональные возможности».
Пункт «Триггеры и хранимые процедуры» определяет наличие в некоторой СУБД класса процедур, функций. Триггер -программа базы данных, вызываемая всякий раз при вставке, изменении или удалении строки таблицы. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты. Хранимая процедура - программа, которая хранится на сервере и может вызываться клиентом. Поскольку хранимые процедуры выполняются непосредственно на сервере баз данных, обеспечивается более высокое быстродействие, нежели при выполнении тех же операций средствами клиента БД [1]. Проведем анализ альтернатив по данному пункту (табл. 4.3).
Таблица 4.3 Анализ альтернатив по пункту «Триггеры и х ранимые процедуры»
Триггер | Функция | Процедура | |
DB2 | + | + | + |
Microsoft SQL Server | + | + | + |
MySQL | + | + | + |
Oracle | + | + | + |
PostgreSQL | + | + | + |
Пункт «Масштабируемость» предполагает возможности рассматриваемой СУБД по увеличению объема данных со временем и в случае необходимости [4]. Необходимо рассмотреть максимально возможный объем хранимых данных для каждой альтернативы (таблица 4.4).
Таблица 4.4 Анализ альтернатив по пункту «Масштабируемость»
Размер БД | Размер таблицы | Размер строки | |
DB2 | 512ТБ | 512 ТБ | 32677 В |
Microsoft SQL Server | 524258 ТБ | 524258 ТБ | ∞ |
MySQL | ∞ | 256ТВ | 64KB |
Oracle | ∞ | 4 Гб* Размер блока | 8KB |
Postgre SQL | ∞ | 32 ТБ | 1,6 ТБ |
Таким образом, проведен анализ рассматриваемых альтернатив по пунктам критерия «Функциональные возможности». По результатам анализа можно построить матрицу попарных сравнений альтернатив по второму критерию (табл. 4.5), рассчитать вектор приоритетов и основные показатели.
Таблица 4.5 Матрица попарных сравнений альтернатив по критерию «Функциональные возможности»
DB2 | Oracle | MySQL | MS SQL | Postgre SQL | |
DB2 | 1/4 | 1/7 | 1/5 | ||
Oracle | 1/4 | 1/2 | |||
MySQL | 1/2 | 1/4 | 1/2 | ||
MS SQL | |||||
Postgre SQL | 1/3 |
Вектор приоритетов: 0,07 0,13 0,09 0,49 0,22
Главное собственное значение: 5,45. Индекс согласованности (ИС): ОД 11. Отношение согласованности (ОС): 0,09.
Рассмотрим критерий «Особенности разработки приложений». При рассмотрении этого критерия необходимо оценить трудозатраты на администрирование баз данных. Основные задачи такого администрирования: установка и конфигурирование базы данных, текущее администрирование базы данных, резервное копирование/восстановление [5].
Таким образом можно построить матрицу попарных сравнений альтернатив по третьему критерию (табл. 4.6), рассчитать вектор приоритетов и основные показатели.
Таблица 4.6 Матрица попарных сравнений альтернатив по критерию «Особенности разработки приложений»
DB2 | Oracle | MySQL | MS SQL | Postgre SQL | |
DB2 | 1/6 | ||||
Oracle | 1/4 | ||||
MySQL | 1/4 | ||||
MS SQL | |||||
Postgre SQL | 1/3 |
Главное собственное значение: 5,04. Индекс согласованности (ИС): 0,01. Отношение согласованности (ОС): 0,01.
Сравним выбранные СУБД по критерию «Производительность».
Для тестирования производительности применяются различные средства, и существует множество тестовых рейтингов. Одним из самых популярных и объективных является ТРС-анализ производительности систем. Показатель ТРС - это отношение количества запросов, обрабатываемых за некий промежуток времени, к стоимости всей системы. Следует отметить, что для СУБД PostgreSQL не проводится тест ТРС, а система MySQL проводит собственные тесты производительности. Результаты теста производительности ТРС-С представлены в табл. 4.7 [6].
Таблица 4.7 Результаты теста TPC
Название | Количество транзакций, tpmC | Стоимость транзакции, долл./tpmC | Монитор транзакций |
Microsoft SQL Server 2005 х64 | 661,475 | 1.16USD | Microsoft COM+ |
Oracle Database ng Standard | 631,766 | 1.08 USD | Microsoft COM+ |
IBM DB2 9.5 | 1,200,011 | 1.99 USD | Microsoft COM+ |
По имеющимся данным оценим рассматриваемые СУБД по критерию «Производительность», построим матрицу попарных сравнений альтернатив (табл. 4.8).
Таблица 4.8 Матрица попарных сравнений альтернатив по критерию «Производительность»
по | DB2 | Oracle | MySQL | MS SQL | Postgre SQL |
DB2 | |||||
Oracle | 1/4 | 1/2 | |||
MySQL | 1/5 | 1/3 | 1/4 | ||
MS SQL | 1/3 | ||||
Postgre SQL | 1/5 | 1/3 | 1/4 |
Вектор приоритетов: 0,47 0,15 0,07 0,24 0,07
Главное собственное значение: 5,14. Индекс согласованности (ИС): 0,036. Отношение согласованности (ОС): 0,03.
Рассмотрим критерий «Требования к рабочей среде». В табл. 4.9 приводятся результаты анализа альтернатив по критерию «Поддерживаемые операционные системы» [3].
Таблица 4.9 Поддерживаемые ОС рассматриваемых систем
DB2 | MS SQL Server | MySQL | Oracle | Postgre SQL | |
Windows | + | + | + | + | + |
Mac OS | + | + | + | + | + |
Linux | + | + | + | + | + |
BSD | - | + | + | - | + |
UNIX | + | + | + | + | + |
AmigaOS | - | + | + | - | - |
Symbian | - | + | + | - | - |
Оценим рассматриваемые СУБД относительно критерия «Требования к рабочей среде», построим матрицу попарных сравнений альтернатив (табл. 4.10).
Таблица 4.10 Матрица попарных сравнений альтернатив по критерию «Требования к рабочей среде»
DB2 | Oracle | MySQL | MS SQL | Postgre SQL | |
DB2 | 1/4 | 1/4 | 1/3 | ||
Oracle | 1/4 | 1/4 | 1/2 | ||
MySQL | |||||
MS SQL | |||||
Postgre SQL | 1/3 | 1/3 |
Пусть производительность имеет наибольшую важность по сравнению с другими критериями, требования к рабочей среде также важны, так как при выборе СУБД на ранних этапах поднимается вопрос о совместимости рассматриваемой системы с существующими программными и аппаратными средствами.
Построим матрицу попарных сравнений критериев (табл. 4.11), для удобства пронумеруем критерии от 1 до 5.
Таблица 4.11 Матрица попарных сравнений критериев
1/2 | 1/6 | 1/4 | |||
1/2 | 1/6 | 1/3 | |||
1/5 | 1/2 | ||||
1/2 |
Вектор приоритетов альтернатив: 0,07 0,07 0,12 0,49 0,25
Главное собственное значение: 5,03. Индекс согласованности (ИС): 0,01. Отношение согласованности (ОС): 0,01.
Составим матрицу А, в которую запишем столбцами векторы приоритетов альтернатив по всем критериям, умножим матрицу А справа на транспонированный вектор-столбец весов критериев.
Таким образом, веса рассматриваемых СУБД распределены следующим образом: MS SQL Server (0.32), DB2 (0.28), MySQL (0.16), Oracle (0.13), PostgreSQL (0.11).