Сравнительные
характеристики СУБД
В настоящее время для построения информационных систем применяются различные системы управления базами данных (СУБД), различающиеся как своими возможностями, так и требованиями к вычислительным ресурсам. Все многообразие применяемых СУБД, однако, можно свести к двум основным их классам: персональные и многопользовательские.
К первому классу относятся СУБД, ориентированные для работы на персональном компьютере (dBASE, FoxPro, MS Access и т.п.). Изначально они поддерживали работу с данными только одного пользователя. Вся СУБД такого класса выполняется как единая программа, таблицы базы данных представляются отдельными файлами на диске того же персонального компьютера. С развитием локальных сетей разработчики СУБД этого класса стали приспосабливать их к работе в сетевой среде, в которой потенциально стало возможным организовать доступ к данным с нескольких персональных компьютеров, включенных в локальную сеть. Файлы базы данных при этом размещаются на файловом сервере. На каждом же рабочем месте работает собственная копия программы-СУБД и прикладная программа, и на их выполнение могут оказывать существенное влияние характеристики компьютера этого рабочего места. Таким образом, при наличии в сети N рабочих мест с одними и теми же данными работают N копий программы-СУБД, одними и теми же данными управляют сразу N копий СУБД. Ошибка в выполнении одной из копий не будет замечена другими копиями. При выполнении запросов к базе данных копия СУБД может либо производить поиск данных в удаленных файлах на файловом сервере, либо копировать все файлы, в которых ведется поиск в свою локальную файловую систему. В первом случае возникают проблемы одновременного доступа к данным при их изменении. Данные, над которыми производится изменения, должны быть заблокированы. Средства файлового сервера позволяют выполнять блокировку на уровне файлов, но не на уровне записей, что существенно снижает эффективность параллельной работы с базой данных многих пользователей. Во втором же случае, во-первых, требуется передача по сети больших объемов информации, а во-вторых, получается, что разные рабочие места работают с разными копиями данных и эти копии могут стать неидентичными.
СУБД второго класса изначально создавались для выполнения на больших компьютерах и обеспечения параллельной работы многих пользователей. Такие СУБД, как правило, состоят из ядра, постоянно присутствующего в памяти, (сервера) и большого количества программ-агентов, обслуживающих запросы конечных пользователей и прикладных программ (клиентов). В этом случае и ядро СУБД, и данные находятся на одном и том же компьютере. Одна копия СУБД управляет одной копией данных. Единая управляющая система позволяет эффективно организовать одновременный доступ к данным многих агентов, предотвращая конфликты между ними. Ошибка в работе СУБД локализована и может быть эффективно исправлена самой же СУБД. При работе в условиях сети ядро СУБД выполняет запросы агентов на выборку данных и передает по сети только результаты выборки. Поскольку быстродействие современных дисковых систем обычно выше, чем скорость передачи данных по сети, уменьшение объема передаваемых данных существенно увеличивает общую эффективность работы системы. При этом не накладывается никаких ограничений на масштаб сети, агенты могут быть связаны с ядром СУБД через любую сеть и любые протоколы передачи данных. Многопользовательские СУБД обладают также неоспоримыми преимуществами в таких аспектах, как надежность, безопасность, доступность. Многопользовательские СУБД с самого начала своей истории использовали в качестве интерфейса запросов язык SQL, отсюда произошло одно из их альтернативных названий - SQL-серверы. Хотя в последнее время подмножества SQL становятся доступными и в персональных СУБД, но в эти подмножества не включаются средства обеспечения безопасности и параллельного доступа к данным - те средства, которые персональные СУБД обеспечить просто не могут.
В данном разделе более подробно остановимся на особенностях
выбора конкретной серверной СУБД. При выборе базы данных очень важно выбрать
базу данных, которая в наибольшей степени соответствуют предъявляемым к
информационной системе требованиям, т.е. необходимо определиться какая модель
автоматизации реализуется (автоматизация документооборота или бизнес -
процессов). В первую очередь при выборе СУБД необходимо принимать во внимание
следующие факторы:
На сегодня известно большое число различных серверов баз
данных SQL. В качестве вариантов построения системы остановимся более подробнее на следующих четырех ведущих серверных СУБД
- Oracle, IBM DB2, Microsoft
SQL Server и Informix - и сравним
их в работе на каждом из основных этапов функционирования:
Данный анализ проведем с учетом того, что число клиентских
мест составляет от 50 до 500, а управление СУБД должно быть максимально
эффективно. Управление системами было возложено на ОС Windows
и Linux.
Oracle
Общая характеристика
Oracle занимает лидирующие позиции на рынке СУБД и, что особенно
важно, лидирует на
платформах Unix и Windows.
В России также обозначилось лидерство Oracle,
особенно в области крупномасштабных информационных систем государственных
структур. Фактически в нашей стране СУБД Oracle стала
стандартом для государственных информационных систем.
Причина широкой
распространенности Oracle заключается
прежде всего в высоких
эксплуатационных
характеристиках СУБД, большом количестве подготовленных отечественных
специалистов по Oracle, наличию поддерживающей инфраструктры – учебных центров, широкой сети партнеров Oracle, большому числу технических курсов по Oracle в высших учебных заведениях и т.д. Так, только в Москве имеется более десятка учебных
центров, предоставляющих широкий спектр технических курсов практически по всем
линиям программных продуктов Oracle. Партнерская сеть
по всей стране насчитывает более 160 организаций, что гарантирует поддержку ПО Oracle практически в любой точке страны. На русском языке
уже издано достаточно много качественных книг по СУБД Oracle.
Служба технической поддержки Oracle построена на профессиональной основе. В Центре
технической поддержке в Москве
работает более 20 сертифицированных технических специалистов,
занятых только поддержкой
пользователей Oracle (по телефону, электронной почте
и с выездом к заказчику). Служба технической поддержки в России сертифицирована
по стандарту ISO 9000. Важным является и то, что наряду с СУБД, компания Oracle поставляет центральный инфраструктурный продукт – Internet Application Server, сервер приложений, функционирующих в среде Internet/Intranet.
Поддержка большинства
платформ
С технической точки зрения важно
то, что Oracle функционирует практически на всех
существующих компьютерных
платформах, в том числе и на больших ЭВМ (OS/390) и на
еще
сохраняющих популярность системах Vax VMS, не говоря уже о Windows NT и различных
разновидностях Unix, в точ
числе Solaris, HP-UX, AIX, Linux,
SCO Unix и т.д.
Другой важной характеристикой
является поддержка Oracle всех возможных вариантов
архитектур, в том числе симметричных многопроцессорных систем, кластеров,
систем с массовым параллелизмом и т.д. Очевидна значимость этих характеристик
для систем масштаба корпорации, где эксплуатируется множество компьютеров
различных моделей и производителей. В таких условиях фактором успеха является
максимально возможная типизация предлагаемых решений, ставящая своей целью
существенное снижение стоимости владения программным обеспечением.Унификация систем управления базами данных – один из
наиболее значимых шагов на пути достижения этой цели. Ядром СУБД Oracle является сервер базы данных, который поставляется в
одном из четырех вариантов в зависимости от масштаба информационной системы, в
рамках которой предполагается его применение. Для систем масштаба крупной
организации предлагается продукт Oracle Database Enterprise Edition (корпоративная редакция), для которого имеется
целый набор опций, архитектурно
и функционально расширяющих возможности сервера. Именно Oracle
Database Enterprise Edition устанавливается на кластерах (с опцией Parellel Server), позволяя
создавать системы высокой готовности. Продукт Oracle Database Standard Edition (стандартная редакция) ориентирован на организации
среднего масштаба или подразделения в составе крупной организации. Для
персонального использования предназначен продукт Oracle
Database Personal Edition (персональная редакция).
Выбор СУБД как основы
информационной системы организации DB_REPORT/DES/001
Важнейшим преимуществом Oracle перед конкурентами (и, прежде всего, перед SQL Server) является
идентичность кода (в оценке Gartner Group - консолидация кода) различных версий сервера баз
данных Oracle для всех платформ, гарантирующая
идентичность и предсказуемость работы Oracle на всех
типах компьютеров, какие бы не входили в ее состав. Все варианты сервера Oracle имеют в своей основе один и тот же исходный
программный код и функционально идентичны, за исключением некоторых опций,
которые, например, могут быть добавлены к Oracle Database Enterprise
Edition и не могут - к Oracle Database Standard Edition. Таким образом, для всех платформ существует единая СУБД в
различных версиях, которая ведет себя одинаково и предоставляет одинаковую
функциональность вне зависимости от платформы, на которой она установлена.
Разработку серверных продуктов в составе СУБД выполняет единое подразделение
корпорации Oracle, изменения вносятся
централизовано, после этого подвергаются тщательному тестированию в базовом
варианте, а затем переносятся на все платформы, где также детально проверяются.
Возможность переноса Oracle обеспечивается
специфической структурой исходного программного кода сервера. Приблизительно
80% программного кода Oracle – это программы на языке
программирования C, который (с известными ограничениями) является платформо-независимым. Примерно 20% кода, представляющее
собой ядро сервера, реализовано на машинно-зависимых языках и эта часть кода,
разумеется, переписывается для различных платформ.
Жесткая технологическая схема
разработки Oracle, опирающаяся на принципы
идентичности
исходного программного кода для
различных версий и платформ, контрастирует со схемами других компаний. Итак,
СУБД Oracle скрывает детали реализации механизмов
управления данным на каждой из платформ, что дает основание говорить о
практически полной унификации базового программного обеспечения. Дополнительно
к этому, архитектура Oracle позволяет переносить
прикладные системы, реализованные на одной платформе, на другие платформы без изменений как в структурах баз данных, так и кодов
приложений. При этом основным критерием, определяющим
возможность переноса тех или иных программных компонентов между платформами
является полное исключение их них машинно-зависимого кода.
Суммируя все сказанное выше,
можно утверждать, что СУБД Oracle обладает
уникальными
качествами переносимости
а также предоставляет открытую платформу для разработки
переносимых приложений
клиент/сервер и Internet/Intranet-приложений. Наличие
нескольких
редакций сервера баз данных –
корпоративной, стандартной, персональной и полная переносимость приложений
между ними позволяет удовлетворить потребности муниципальной информационной
системы и кардинально решить задачу унификации базового программного
обеспечения.
Пакет Oracle,
наделенный самым развитым набором функций для работы с языком Java и доступа к данным через Интернет,
системой оптимизации одновременного доступа. Единственным недостатком данной
СУБД является сложность администрирования, однако все затраты на ее внедрение и
освоение в последствии окупятся эффективной и надежной работой. В нашей стране
на протяжении уже многих лет целым рядом специалистов культивируется негативное
отношение к СУБД Oracle, как к дорогой и сложной
СУБД. Оба эти тезиса являются спорными. Во-первых, уровень сложности понятие
относительное. При использовании СУБД Oracle на
платформе NT, она потребует практически тех же усилий, что и при использовании
MS SQL Server. В случае же работы на UNIX-платформе, можно с
уверенностью отметить, что для профессиональных юниксоидов среда Oracle является
простой, понятной и доступной. Что касается дороговизны, то и тут наметились
положительные сдвиги. Кроме того, что компания Oracle
предлагает ряд различных масштабируемых решений в зависимости от числа
обслуживаемых клиентов. Последняя версия Oracle 9i, на сегодняшний день считается самой быстрой СУБД. Среди
основных свойств СУБД Oracle следует отметить такие,
как:
Ориентация на интернет технологии
- основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia,
обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных (возможность
составлять на языке Java не только внутренние
программы для баз данных (хранимые процедуры и триггеры), но и разрабатывать
компоненты Enterprise JavaBeans
и даже запустить их на сервере). Компоненты Enterprise
JavaBeans представляют собой базовые модули из которых складываются Интернет-приложения
на языке Java.
Фирма Oracle придерживается
принципа, что всеми важными функциями необходимо управлять из единого центра,
поэтому предлагаемый модуль interMedia предоставляет
в распоряжение пользователей самые передовые возможности для работы с
мультимедийными объектами:
В Oracle реализуются лучшие на
сегодняшний день средства для объектно-ориентированного конструирования баз
данных, в том числе табличные структуры, допускающие наследование свойств и
методов других табличных объектов БД, что позволят избежать ошибок при
построении БД и облегчает их обслуживание.
Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioning concurrency)
является одной из важнейших характеристик архитектуры Oracle (подобная функция
есть лишь в СУБД InterBase компании InterBase компании Inprise).
Данная функция позволяет исключить ситуацию, когда одному пользователю
приходится ждать, пока другой завершит изменения в содержимое баз данных (т.е.
в Oracle отсутствуют блокировки на чтение). Эта
функция позволяет СУБД Oracle выполнять за секунду
больше транзакций в расчете на одного пользователя, чем любая другая база
данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает ведущие места и при этом значительно
превосходит все другие СУБД по надежности и безопасности.
СУБД Microsoft SQL Server
Важнейшие характеристики данной СУБД - это:
В комплект средств административного управления данной СУБД
входит целый набор специальных мастеров и средств автоматической настройки
параметров конфигурации. Также данная БД оснащена замечательными средствами
тиражирования, позволяющими синхронизировать данные ПК с информацией БД и
наоборот. Входящий в комплект поставки сервер OLAP дает возможность сохранять и
анализировать все имеющиеся у пользователя данные. В принципе данная СУБД
представляет собой современную полнофункциональную база данных, которая
идеально подходит для малых и средних организаций. Необходимо заметить, что SQL
Server уступает другим рассматриваемым СУБД по двум
важным показателям: программируемость и средства работы. При разработке
клиентских БД приложений на основе языков Java, HTML
часто возникает проблема недостаточности программных средств SQL Server и пользоваться этой СУБД
будет труднее, чем системами DB2, Informix, Oracle или Sybase. Общемировой
тенденцией в XXI веке стал практически повсеместный переход на платформу LINUX,
а SQL Server функционирует только в среде Windows. Поэтому использование SQL Server
целесообразно, по нашему мнению, только если для доступа к содержимому БД
используется исключительно стандарт ODBC, в противном случае лучше использовать
другие СУБД.
Ниже приведены сравнительные таблицы перфоманса
ряда СУБД для больших объемов данных, основанные на данных независимого издания
Transaction Processing Performance Council (www.tpc.org)
Объем данных порядка 100 GB
|
Rank |
Company |
System |
QphH |
Price/QphH |
Database |
Operating System |
Cluster |
|
1 |
5,578 |
358 |
Oracle 9iR2 w/Real Application Cluste |
HP Tru64 Unix V5.1A/IPK |
Y |
||
|
2 |
3,346 |
65 |
Microsoft SQL Server 2000 |
Microsoft Windows Server 2003 |
N |
||
|
3 |
3,342 |
131 |
IBM DB2 UDB 8.1 |
Microsoft Windows Server 2003 |
N |
||
|
4 |
1,760 |
60 |
Sybase IQ 12.5 |
Sun Solaris 9 |
N |
||
|
5 |
1,695 |
66 |
Microsoft SQL Server 2000 |
Microsoft Windows 2000 Advanced Server |
N |
Объем данных порядка
1000 GB
|
Rank |
Company |
System |
QphH |
Price/QphH |
Database |
Operating System |
Cluster |
|
1 |
25,805 |
203 |
Oracle 9i Database Enterprise Edition v9.2.0.2.0 |
HP UX 11.i 64-bit |
N |
||
|
2 |
22,361 |
253 |
IBM DB2 UDB 7.2 |
Microsoft Windows 2000 Advanced Server |
Y |
Выводы.
В сводной таблице представлены сравнительные характеристики
этих двух СУБД. Клиентские места при этом могут функционировать
практически на любой платформе, средством доступа клиентов к СУБД является либо
CGI (Perl) либо JAVA приложения.
Сравнительные характеристики |
Microsoft SQL Server
|
Oracle |
|
Административное управление |
Хорошо |
Отлично |
|
Графические инструменты |
Отлично |
Хорошо |
|
Простота обслуживания |
Отлично |
Отлично |
|
Механизм данных |
Хорошо |
Отлично |
|
Работа с несколькими ЦП |
Приемлемо |
Отлично |
|
Функция соединения и выбор индексов |
Отлично |
Отлично |
|
Одновременный доступ нескольких пользователей |
Хорошо |
Отлично |
|
Обработка мультимедиа-даных |
Плохо |
Отлично |
|
Подключение к Web |
Приемлемо |
Отлично |
|
Обработка аудио, видео, изображений |
Плохо |
Отлично |
|
Поиск по всему тексту |
Хорошо |
Отлично |
|
Функциональная совместимость |
Хорошо |
Хорошо |
|
Сопряжение с другими БД |
Хорошо |
Хорошо |
|
Единая регистрация |
Хорошо |
Хорошо |
|
Работа под управлением различных ОС |
Приемлемо |
Хорошо |
|
Возможности программирования |
Приемлемо |
Отлично |
|
Хранимые процедуры и триггеры |
Хорошо |
Отлично |
|
Внутренний язык программирования |
Приемлемо |
Отлично |
|
Построение баз данных |
Хорошо |
Отлично |
|
Язык SQL |
Отлично |
Отлично |
|
Объектно-ориентированные системы |
Приемлемо |
Отлично |
|
Работа с филиалами |
Отлично |
Отлично |
|
Тиражирование |
Отлично |
Отлично |
|
Распределенная обработка транзакций |
Отлично |
Отлично |
|
Дистанционное администрирование |
Хорошо |
Отлично |
|
Организация хранилищ данных и подготовка отчетов |
Отлично |
Отлично |
|
Средства загрузки |
Отлично |
Отлично |
|
Средства анализа |
Отлично |
Отлично |
Требования заказчика (см. таблицу
ниже)
|
Необходимые
требования |
MS SQL Server 2000 |
Oracle
9i |
|
локализация интерфейса пользователя, возможность построения и сортировки полей баз данных, содержащих символы кириллицы |
+ |
+ |
|
поддержка структуры относительных данных |
+ |
+ |
|
поддержка технологий пользователя/сервера |
+ |
+ |
|
поддержка многопроцессорной архитектуры |
+ |
+ |
|
поддержка кластерной архитектуры |
+ |
+ |
|
наличие средств для создания индексов и кластеров данных для повышения скорости обработки |
+ |
+ |
|
восстановление баз данных с использованием журнала транзакций |
+ |
+ |
|
механизм блокировки транзакций при записи или на уровне страницы |
+ |
+ |
|
поддержка ANSI SQL |
+ |
+ |
|
поддержка стандарта SQL-3 (новое название – SQL99) |
+ - |
+ |
|
поддержка ODBC |
+ |
+ |
|
контроль целостности базы данных |
+ |
+ |
|
включение/выключение утилит резервирования баз данных |
+ |
+ |
|
импорт и экспорт таблиц баз данных |
+ |
+ |
|
совместимость с предлагаемой операционной системой модулей как пользователя, так и сервера |
+ |
+ |
|
поддержка сетевых протоколов, используемых предлагаемыми операционными системами |
+ |
+ |
|
наличие графического интерфейса пользователя для управления базой данных |
+ |
+ |
|
контроль доступа к данным. Опознавание с использованием средств СУБД |
+ |
+ |
|
централизованное управление пользователями |
+ |
+ |
|
наличие оптимизатора запросов для оптимизации пути прохождения данных |
+ |
+ |
|
поддержка больших двоичных объектов (BLOB) |
+ |
+ |
|
поддержка OLAP-технологий в т.ч. специализированных средств OLAP-анализа |
+ |
+ |
|
поддержка протокола VI SAN (Virtual
Interface System Area Network) |
+ |
+ |
|
отлаженный механизм
репликации данных |
+ |
+ |
|
поддержка службы единого каталога |
+ |
+ |
Microsoft SQL Server
и Oracle относятся к классу многпользовательских
систем. Они развиваются и совершенствуются уже в течение многих
лет и реализуются как коммерческие программные продукты. Эти СУБД можно
характеризовать как основу для промышленных решений в области обработки данных.
На российском рынке представлены практически все производители и поставщики
промышленных СУБД, в том числе Adabas (Software AG), DB2 (IBM), Informix
(Informix Software),
Microsoft
(Microsoft SQL Server),
Oracle
(Oracle Corporation),
Sybase
(Sybase).
Для
сравнительного анализа этих систем удобна модель (магические квадраты),
предложенная аналитической компанией Gartner Group (приведена выше). Из нее следует, что лидерами на
рынке СУБД в настоящий момент являются компании IBM, Microsoft
и Oracle. Остальные компании характеризуются Gartner Group как “нишевые игроки”.
Наиболее
существенным критерием для сравнения СУБД являются эксплуатационные
характеристики,
такие как надежность, высокая готовность, производительность,
масштабируемость. В таблице приводится
сравнительный анализ основных СУБД по этим показателям (см.табл.1),
выполненный на основе экспертных оценок. Каждому показателю была дана оценка по
10-бальной шкале, макимальная оценка 10 баллов.
Табл.1. Экспертная оценка
многопользовательских СУБД
|
СУБД |
Производ. |
Конкурентный. доступ |
По числу пользов. |
Большие БД |
Готовность |
|
Microsoft SQL Server |
6 |
7 |
5 |
5 |
7 |
|
Oracle |
6 |
9 |
8 |
8 |
8 |