Сравнительный анализ программного обеспечения по работе с базами данных
Использование появившейся в 10-й версии технологии Flashbacktable позволяет значительно упростить восстановление после пользовательских ошибок. Больше не требуется восстановление из резервной копии, достаточно выбрать удаленный объект и восстановить его из корзины. Следует отметить, что в MS SQL Server также возможно выполнение аналогичной операции, но требует значительно больше времени… Читать ещё >
Сравнительный анализ программного обеспечения по работе с базами данных (реферат, курсовая, диплом, контрольная)
Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»
Факультет инженерно-экономический Кафедра менеджмента Дисциплина: ПООЭБ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОМУ ПРОЕКТУ
НА ТЕМУ: СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПО РАБОТЕ С БАЗАМИ ДАННЫХ
Минск 2015
Введение
На сегодняшний день использование баз данных (БД) и информационных систем становится неотъемлемой частью функционирования любых организаций и предприятий. В связи с этим большую актуальность приобретает освоение принципов построения и эффективного применения соответствующих технологий и программных продуктов: систем управления базами данных (СУБД), CASE-систем автоматизации проектирования, средств администрирования и защиты баз данных и других.
В качестве объектов исследования были выбраны такие СУБД как Oracle (разработчик компания Oracle), MS SQL Server (разработчик компания Microsoft), Informix DynamicServer (компания IBM).Эти СУБД производятся компаниями, которые являются основными производителями таких систем обработки и хранения данных. А сами эти СУБД являются наиболее распространёнными. Вследствие чего, изучение этих систем представляет большой интерес.
Предметом исследования является рассмотрение наиболее популярных СУБД и выбор наиболее прибыльной для предприятий.
Целью исследования является нахождение наиболее прибыльной и оптимальной СУБД, анализируя наиболее распространённые СУБД и показывая их преимущества.
Задачи исследования: сравнение доступности администрирования рассматриваемых СУБД, функционала, стоимости обслуживания, производительности, наличия собственных уникальных технологий.
Методы исследования: сравнение определённых показателей рассматриваемых СУБД.
Раздел 1. Теоретические основы
1.1 Понятие «база данных» и общая классификация
База данных — это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором свойств.
Сами же базы данных по своей классификации делятся на несколько типов:
по характеру хранимой информации на фактографические (картотеки) и документальные (архивы);
по способу хранения данных на централизованные (хранятся на одном компьютере) и распределённые (используются в локальных и глобальных компьютерных сетях);
по структуре организации данных на табличные (реляционные), объектно-ориентированные, гибридные и иерархические.
Информация в базах данных структурирована на отдельные записи, которыми называют группу связанных между собой элементов данных. Характер связи между записями определяет два основных типа организации баз данных: иерархический и реляционный.
1.2 Классификация БД по структуре организации данных
В иерархической базе данных записи упорядочиваются в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться последовательным «спуском» со ступени на ступень. Иерархическая база данных по своей структуре соответствует структуре иерархической файловой системы.
Рисунок 1 — Пример иерархической базы данных Реляционная база данных, по сути, представляет собой двумерную таблицу. Столбцы таблицы называются полями: каждое поле характеризуется своим именем и топом данных. Поле БД — это столбец таблицы, содержащий значения определенного свойства. Строки таблицы являются записями об объекте. Запись БД — это строка таблицы, содержащая набор значения определенного свойства, размещенный в полях базы данных.
Рисунок 2 — Пример реляционной базы данных В реляционной БД используются четыре основных типа полей: числовой, символьный (слова, тексты, коды и т. д.), дата (календарные даты в форме «день/месяц/год»), логический (принимает два значения: «да» — «нет» или «истина» — «ложь»).
Также можно выделить объектно-ориентированные (ООСУБД) и гибридные базы данных. В объектно-ориентированных базах данных данные хранятся в виде объектов, что очень удобно. Но на сегодняшний день такие БД ещё не распространены, т.к. уступают в производительности реляционным.
Рисунок 3 — Пример объектно-ориентированных баз данных Цель проектировщиков и разработчиков ООСУБД состояла в том, чтобы предоставить разработчикам информационных приложений механизм управления данными во внешней памяти, который полностью стыковался бы со средствами объектно-ориентированного программирования.
Технология ООСУБД предполагает существование интегрированной языковой среды, которая одновременно позволяет конструировать объектную базу данных, содержащую не только данные, но и программный код (методы объектов), обеспечивающий доступ к этим данным, и код приложения.
Взаимосвязь. Тем самым исчезает разрыв между пассивными данными и активными программами, проект прикладной системы ведётся в рамках единой технологии, что убыстряет его разработку и облегчает последующее сопровождение. Естественно, что при этом должны преследоваться цели сохранения всех преимуществ объектно-ориентированного программирования (уникальная идентификация объектов, инкапсуляция, наследование, полиморфизм и т. д.) и систем баз данных (многопользовательский режим доступа, восстановление после сбоев, управление транзакциями и т. д.).
Гибридные БД совмещают в себе возможности реляционных и объектно-ориентированных, поэтому их часто называют объектно-реляционными. Примером такой СУБД является Oracle, начиная с восьмой версии.
Несомненно, такие БД будут развиваться в будущем, но пока первенство остается за реляционными структурами.
1.3 Классификация БД по характеру хранимой информации
Говоря подробнее о классификации баз данных по характеру хранимой информации, мы вы упомянем фактографические и документальные.
В системах фактографического типа в БД хранится информация об интересующих пользователя объектах предметной области в виде «фактов» (например, биографические данные о сотрудниках, данные о выпуске продукции производителями и т. п.). В ответ на запрос пользователя выдается требуемая информация об интересующем его объекте (объектах) или сообщение о том, что искомая информация отсутствует в БД.
В документальных БД единицей хранения является какой-либо документ (например, текст закона или статьи), и пользователю в ответ на его запрос выдается либо ссылка на документ, либо сам документ, в котором он может найти интересующую его информацию.
БД документального типа могут быть организованы по разному: без хранения и с хранением самого исходного документа на машинных носителях. К системам первого типа можно отнести библиографические и реферативные БД, а также БД-указатели, отсылающие к источнику информации. Системы, в которых предусмотрено хранение полного текста документа, называются полнотекстовыми.
В системах документального типа целью поиска может быть не только какая-то информация, хранящаяся в документах, но и сами документы. Так, возможны запросы типа «сколько документов было создано за определенный период времени» и т. п. Часто в критерий поиска в качестве признаков включаются «дата принятия документа», «кем принят» и другие «выходные данные» документов.
1.4 Классификация БД по способу хранения данных
Подробнее говоря о базах данных, классифицируемых по характеру хранения информации, мы выделим, что централизованные и распределенные БД предполагают возможность одновременного обращения нескольких пользователей к одной и той же информации (многопользовательский, параллельный режим доступа). Это привносит специфические проблемы при их проектировании и в процессе эксплуатации БД.
Рисунок 4 — Пример централизованной базы данных Распределенные БД, кроме того, имеют характерные особенности, связанные с тем, что физически разные части БД могут быть расположены на разных ЭВМ, а логически, с точки зрения пользователя, они должны представлять собой единое целое.
Рисунок 5 — Пример распределённых баз данных Программное обеспечение, предназначенное для работы с базами данных, называется система управления базами данных (СУБД).
1.5 Понятие «СУБД»
Система управления базами данных — это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т. д. В общем СУБД — это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка — SQL.
SQL — язык структурированных запросов, основной задачей которого является предоставление простого способа считывания и записи информации в базу данных.
Итак, простейшая схема работы с базой данных выглядит примерно так:
Рисунок 6 — Схема работы с базой данных
1.6 Основные функции СУБД
К основным функция СУБД относятся:1)управление данными во внешней памяти (на дисках), 2) управление данными в оперативной памяти с использованием дискового кэша, 3) журнализация изменений, резервное копирование и восстановление базы данных после сбоев, 4) поддержка языков БД (язык определения данных, язык манипулирования данными).
Управление данными во внешней памяти (на дисках) включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы). В некоторых реализациях СУБД активно используются возможности существующих файловых систем, в других работа производится вплоть до уровня устройств внешней памяти.
Управление данными в оперативной памяти с использованием дискового кэша, включает в себя поддержку в СУБД собственного набора буферов оперативной памяти с собственной дисциплиной замены буферов. Это обусловлено тем, что практически единственным способом реального увеличения скорости работы СУБД (которая изначально равна скорости устройства внешней памяти) является буферизация данных во внешней памяти.
Журнализация изменений включает в себя, резервное копирование и восстановление базы данных после сбоев включает в себя надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Примерами программных сбоев могут быть: аварийное завершение работы СУБД (по причине ошибки в программе или в результате некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной.
Поддержка языков СУБД заключается в поддерживании нескольких специализированных по своим функциям языков. Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка — язык определения схемы БД (SDL — SchemaDefinitionLanguage) и язык манипулирования данными (DML — DataManipulationLanguage).В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (StructuredQueryLanguage).
1.7 Классификация СУБД по способу доступа к БД
Также СУБД можно разделить по способу доступа к базам данных на файл-серверные, клиент-серверные и встраиваемые.
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми нагрузками на БД.
На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком. Примеры: MicrosoftAccess, Paradox, dBase, FoxPro, VisualFoxPro.
Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно.
Стандарты. Для современных СУБД архитектура «клиент-сервер» стала фактически стандартом. Если предполагается, что проектируемая информация будет иметь архитектуру «клиент-сервер», то это означает, что прикладные программы, реализованные в её рамках, будут иметь распределённый характер, т. е. часть функций приложений будет реализована в программе-клиенте, другая — в программе-сервере.
Принципы. Основной принцип технологии «клиент-сервер» заключается в разделении функций стандартного интерактивного приложения на четыре группы:
функции ввода и отображения данных;
прикладные функции, характерные для предметной области ;
фундаментальные функции хранения и управления ресурсами (базами данных);
служебные функции.
Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Примеры: Oracle, Firebird, Interbase, IBMDB2, Informix, MSSQLServer, SybaseAdaptiveServerEnterprise, PostgreSQL, MySQL, Cachй, ЛИНТЕР.
Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL либо через специальные программные интерфейсы. Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.
1.8 Классификация СУБД по стратегии работы с внешней памятью
Ещё одним критерием выделения СУБД является стратегия работы с внешней памятью.
СУБД с непосредственной записью — это СУБД, в которых все измененные блоки данных незамедлительно записываются во внешнюю память при поступлении сигнала подтверждения любой транзакции. Такая стратегия используется только при высокой эффективности внешней памяти.
СУБД с отложенной записью — это СУБД, в которых изменения аккумулируются в буферах внешней памяти до наступления любого из следующих событий: контрольной точки, конца пространства во внешней памяти, отведенного под журнал, СУБД выполняет контрольную точку и начинает писать журнал сначала, затирая предыдущую информацию, остановки (СУБД ждёт, когда всё содержимое всех буферов внешней памяти будет перенесено во внешнюю память, после чего делает отметки, что останов базы данных выполнен корректно), при нехватке оперативной памяти для буферов внешней памяти.
Такая стратегия позволяет избежать частого обмена с внешней памятью и значительно увеличить эффективность работы СУБД.
1.9 Классификация СУБД по характеру использования.
По характеру использования СУБД делят на однопользовательские (предназначенные для создания и использования БД на персональном компьютере) и многопользовательские (предназначенные для работы с единой БД нескольких компьютеров, объединенных в локальные сети).
Сами же современные СУБД содержат следующие компоненты: ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию, процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода, подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД, а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
Рисунок 7 — Классификация СУБД по характеру использования СУБД организует хранение информации таким образом, чтобы ее было удобно: просматривать, пополнять, изменять, искать нужные сведения, делать любые выборки, осуществлять сортировку в любом порядке.
Современные СУБД дают возможность включать в них не только текстовую и графическую информацию, но и звуковые фрагменты и даже видеоклипы.
Простота использования СУБД позволяет создавать новые базы данных, не прибегая к программированию, а пользуясь только встроенными функциями. СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним.
Популярные СУБД — FoxPro, Access for Windows, Paradox. Для менее сложных применений вместо СУБД используются информационно-поисковые системы (ИПС), которые выполняют следующие функции: хранение большого объема информации, быстрый поиск требуемой информации, добавление, удаление и изменение хранимой информации, вывод ее в удобном для человека виде.
Сегодня известно большое число различных серверов баз данных SQL. Остановимся на следующих трёх ведущих серверных СУБД — Oracle8i, IBM DB2, Microsoft SQL Server — и сравним их в работе на каждом из основных этапов функционирования.
Рисунок 8 — Мировой рынок систем управления базами данных
Раздел 2. Сравнительный анализ
2.1 Oracle
Oracle8i. Пакет Oracle8i, наделенный самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Единственным недостатком данной СУБД является сложность администрирования, однако все затраты на ее внедрение и освоение в последствии окупятся эффективной и надежной работой (сложность и дороговизна-спорны). Среди основных свойств СУБД Oracle следует отметить такие, как:
Высочайшая надежность;
Возможность разбиения крупных баз данных на разделы, что дает возможность эффективно управлять гигантскими гигабайтными базами;
Наличие универсальных средств защиты информации; Эффективные методы максимального повышения скорости обработки запросов;
Индексация по битовому отображению; Свободные таблицы (в других СУБД все таблицы заполняются сразу при создании);
Распараллеливание операций в запрос;
Наличие широкого спектра средств разработки, мониторинга и администрирования.
Ориентация на интернет технологии.
Решения, не уступающие разработкам Oracle можно найти только в DB2 фирмы IBM. Ориентация на интернет технологии — основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia, обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных. Компоненты EnterpriseJavaBeans представляют собой базовые модули из которых складываются Интернет-приложения на языке Java. Фирма Oracle придерживается принципа, что всеми важными функциями необходимо управлять из единого центра, поэтому предлагаемый модуль interMedia предоставляет в распоряжение пользователей самые передовые возможности для работы с мультимедийными объектами:
Очень развитые средства для обработки аудио клипов;
Неподвижных изображений;
Видеофрагментов;
Географических данных.
В Oracle8i реализуются лучшие на сегодняшний день средства для объектно-ориентированного конструирования баз данных, в том числе табличные структуры, допускающие наследование свойств и методов других табличных объектов БД, что позволят избежать ошибок при построении БД и облегчает их обслуживание.
Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioningconcurrency) является одной из важнейших характеристик архитектуры Oracle (подобная функция есть лишь в СУБД InterBase компании InterBase компании Inprise). Данная функция позволяет исключить ситуацию, когда одному пользователю приходится ждать, пока другой завершит изменения в содержимое баз данных. Эта функция позволяет СУБД Oracle8i выполнять за секунду больше транзакций в расчете на одного пользователя, чем любая другая база данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает почетное второе место после СУБД MySQL, при этом значительно превосходя все другие СУБД по надежности и безопасности. Также следующие технологии являются уникальными, реализованными только в СУБД Oracle.
RAC.
Технология RealApplicationCluster, появившаяся в 9-й версии СУБД Oracle, позволяет объединять сервера, обслуживающие СУБД в одну большую базу данных, что позволяет достичь двух ключевых целей:
Повышение производительности системы в целом путем добавления в кластер нового оборудования, без замены оборудования на более мощное. Производительность системы повышается пропорционально мощности подключенного узла. Следствием является сохранение инвестиций в оборудование, часто довольно существенных.
Повышение отказоустойчивости СУБД: при выходе из строя или плановом выключении одного из серверов, входящих в кластер, СУБД полностью сохраняет свою работоспособность.
Похожие технологии реализованы в Microsoft SQL Server 2008, но имеется одно существенное отличие: MicrosoftApplicationCluster позволяет повысить отказоустойчивость системы в целом, но без влияния на производительность.
Таким образом, использование RAC позволяет значительно повысить производительность системы, которая дошла до своего «физического потолка», с сохранением средств, потраченных на это оборудование, и повысить отказоустойчивость системы. Как следствие — надежность и экономия.
ActiveDataGuard.
Эта технология позволяет создать резервный сервер основной базы данных с применением всех изменений, сделанных на основном сервере. Получается система, где работают как минимум два сервера: основной и резервный. В случае выхода из строя или плановой остановки основного сервера в работу автоматически вступает резервный сервер, и все пользователи автоматически переключаются и продолжают работу на резервном сервере. Технология проста в реализации и настройке и не требует больших затрат на развертывание и оборудование. Физически резервный сервер может находиться в другом помещении, здании или даже городе. Все, что требуется, — это обычное сетевое соединение между двумя серверами.
Можно использовать несколько резервных серверов для одного рабочего сервера.
Рисунок 9 — Технология Active Data Guard
Какие преимущества предоставляет использование этой технологии?
Во-первых, очевидное — надежность. Живучесть и отказоустойчивость базы данных повышается на порядок.
Во-вторых, разгрузка рабочего сервера от резервного копирования, которое можно выполнять на резервном сервере, и разгрузка от отчетов и прочих операций только на чтение, которые также можно выполнять на резервном сервере.
В-третьих, плановое выключение резервного сервера, например, для обновлений, не затронет работу пользователей.
Похожие технологии реализованы и в DB2 и в MS SQL Server, но OracleDataGuard выгодно отличается простотой реализации и возможностью использовать резервный сервер в работе и резервном копировании, а также поддержкой различных режимов синхронизации основного и резервного сервера: синхронный, асинхронный, отложенный.
RAT.
Технология RealApplicationTesting позволяет значительно снизить затраты на проведение плановых изменений в конфигурации существующего программного или аппаратного обеспечения.
Рисунок 10 — Технология RAT
Суть технологии RAT заключается в воспроизведении нагрузки на тестовой базе данных в точном соответствии с нагрузкой на рабочем сервере.
Рисунок 11 — Технология RAT
TotalRecall.
Сутью технологии TotalRecall является возможность разгрузки базы данных от информации устаревшей, но которую необходимо хранить потребованиям бизнеса или контролирующих органов с сохранением обычного доступа к этой информации.
Использование TotalRecall позволяет разгрузить таблицы базы данных от накопленной и редко использующейся информации. Но сохраняется возможность выполнить обычный SQL запрос и получить такую информацию на любой момент в прошлом, т. е. не требуется вносить какие-то изменения в существующее приложение, работающее с базой. Помимо этого, TotalRecall обеспечивает неизменность исторической информации и защиту от ее подделки.
Рисунок 12 — Опции Total Recall
Похожих или аналогичных технологий в других СУБД пока не реализовано.
InMemoryDatabaseCache.
Уникальная технология InMemoryDatabaseCache реализована на базе существующей базы данных OracleTimesTeninmemorydatabase. Эта СУБД за счет ряда применяемых уникальных решений позволяет увеличить скорость обработки транзакций и выдачи запросов более чем на порядок (т.е. в 10 раз), чем обычная СУБД OracleDatabase. Эта СУБД ориентирована на хранение и обработку данных только в оперативной памяти сервера.
Начиная с 10-й версии OracleDatabase, СУБД OracleTimesTen может выступать в качестве промежуточного звена между клиентским приложением и OracleDatabase. В этом случае TimesTen реализует функции сверхбыстрого кэша данных, принимая и обрабатывая транзакции и передавая обработанные данные на хранение в OracleDatabase. Такая архитектура позволяет значительно повысить потенциал и расширить сферу применения OracleDatabase. Фактически, в такой архитектуре OracleDatabase способна справиться с любой транзакционной нагрузкой.
Рисунок 13 — Технология In Memory Database Cache
Automatic Storage Management.
Технология ASM приносит принципиально новые концепции в управление дисковой подсистемой сервера базы данных. Суть этой технологии заключается в абстрагировании дисковой подсистемы СУБД от файлов на жестком диске в файловой системе и абстрагировании собственно сервера базы данных от расположения файлов на дисках. В ASM управление осуществляется не файлами на дисках, а разделом диска, не форматированным в файловой системе. Причем, если используется не один жесткий диск, а набор дисков или RAID-массивов, эти диски объединяются в группу ASM и выглядят для СУБД как один жесткий диск.
Рисунок 14 — Технология AutomaticStorageManagement
Решением задачи по распараллеливанию данных по жестким дискам для достижения оптимальной производительности занимается теперь не системный администратор, а экземпляр ASM в автоматическом режиме и эффективней, чем это мог бы сделать администратор БД. Также решается задача по обеспечению надежности за счет избыточности хранимых данных. Уровень избыточности задается системным администратором. Теперь возможно извлекать и добавлять жесткие диски для базы данных налету, путем выполнения простых команд ASM. Поскольку ASM — это отдельный экземпляр, т. е. отдельный программный комплекс, не связанный с СУБД, один экземпляр ASM может обслуживать несколько экземпляров СУБД.
Аналогичных решений в других СУБД пока не предложено. Вместе с тем, трудно оспаривать выгоды по производительности и упрощению (а значит повышению надежности) администрирования СУБД, использующей ASM.
2.2 Microsoft SQL Server
Microsoft SQL Server. Важнейшие характеристики данной СУБД:
простота администрирования;
возможность подключения к Web;
быстродействие и функциональные возможности механизма сервера СУБД;
наличие средств удаленного доступа.
В комплект средств административного управления данной СУБД входит целый набор специальных мастеров и средств автоматической настройки параметров конфигурации. Также данная БД оснащена замечательными средствами тиражирования, позволяющими синхронизировать данные ПК с информацией БД и наоборот. Входящий в комплект поставки сервер OLAP дает возможность сохранять и анализировать все имеющиеся у пользователя данные. В принципе данная СУБД представляет собой современную полнофункциональную база данных, которая идеально подходит для малых и средних организаций.
Необходимо заметить, что SQL Server уступает другим рассматриваемым СУБД по двум важным показателям: программируемость и средства работы. При разработке клиентских БД приложений на основе языков Java, HTML часто возникает проблема недостаточности программных средств SQL Server и пользоваться этой СУБД будет труднее, чем системами DB2, Informix, Oracle или Sybase. Общемировой тенденцией в XXI веке стал практически повсеместный переход на платформу LINUX, а SQL Server функционирует только в среде Windows. Поэтому использование SQL Server целесообразно, только если для доступа к содержимому БД используется исключительно стандарт ODBC, в противном случае лучше использовать другие СУБД.
2.3 IBM DB2
IBM DB2. IBM DB2 — результат почти 30-х опытно-конструкторских и исследовательских работ фирмы IBM. Последнюю на сегодня версию данной СУБД (6.х) отличает один из наиболее продуманных наборов средств управления и оптимизации и механизм БД, допускающий наращивание от портативного ПК с Windows 95 до целого кластера больших ЭВМ S/390, работающих под управлением OS/390. Пакет DB2 выпускается в двух редакциях: DB2 Workgroup и DB2 EnterpriseEdition.
В данной СУБД реализованы все известные по предшествующим версиям DB2 новаторские технологии механизма БД, такие, как распараллеливание обработки запроса, полный набор средств тиражирования, сводные таблицы запросов для повышения производительности БД, возможности объектно-ориентированного конструирования баз данных и средства языка Java. К этому надо добавить, что система DB2 оснащена полым набором мультимедиа-расширений, позволяющих сохранять текст, звук и видеофрагменты, изображения и географические данные и манипулировать ими.
Можно говорить, что по возможностям масштабирования разработанная специалистами IBM технология кластеризации баз данных не имеет аналогов. Эти расширения существенно облегчают процесс разработки приложений для Web, а так же программ, содержащих фотоизображения и объемные текстовые отчеты.
Система DB2 вполне конкурентоспособна и в качестве платформы для разработки приложений т.к. существует средство StoredProcedureBuilder — автоматически преобразовывающее оператор SQL в соответствующий класс Java и включающее его в структуру базы данных. В версии DB2 6.1 значительно улучшена функциональная совместимость с другими СУБД: пакет позволяет использовать разработанную Microsoft спецификацию OLE DB, новый стандарт доступа к базам данных. Средства административного управления СУБД DB2, которые в новой версии переписаны на Java и могут быть получены из Web, заслуживают самой высокой оценки.
Основными недостатками данной СУБД является относительная сложность администрирования и отсутствие (пока) реализаций под популярные серверные ОС, например LINUX. В данной СУБД благодаря IndexSmart-Guide возможно осуществлять настройку, формируя оптимальные индексы для заданного числа обращений, характеризующего типичную нагрузку на БД.
DB2 — единственный пакет позволяющий генерировать сводные таблицы, что значительно эффективность работы СУБД в качестве хранилищ данных. Сводная таблица — это временная рабочая область, используемая базой данных для хранения ответов на часто поступающие запросы. Модель DB2 6.1 превращается в самую недорогую из высокопроизводительных систем. Средства административного управления этой СУБД вполне соответствуют уровню решаемых задач, кроме того, она предоставляет исключительно широкие возможности для работы с мультимедиа-данными и для программирования (чего явно недостает системе Microsoft SQL Server).
Таблица 2.1 — Информация о СУБД
Название | Дата выпуска | Разработчик | Язык | |
DB2 | 1983 г. | IBM | С, С++ | |
Oracle | 1979 г. | Oracle Corporation | С | |
Microsoft SQL Server | 1989 г. | Microsoft | ; | |
2.4 Сравнение производительности
Сравним выбранные СУБД по критерию «Производительность».
Для тестирования производительности применяются различные средства, и существует множество тестовых рейтингов. Одним из самых популярных и объективных является ТРС-анализ производительности систем. Показатель ТРС — это отношение количества запросов, обрабатываемых за некий промежуток времени, к стоимости всей системы. Следует отметить, что для СУБД PostgreSQL не проводится тест ТРС, а система MSSQLServer проводит собственные тесты производительности.
Таблица 2.2 — Результаты теста TPC
Название | Количество транзакций, tpmC | Стоимость транзакции, долл./tpmC | Монитор транзакций | |
MicrosoftSQLServer2005×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+ | |
Производительность, наряду с надежностью, — основной критерий выбора OracleDatabase в качестве системы управления базами данных. Существуют синтетические тесты производительности, такие, например, как TPC (www.tpc.org). В тесте TPC-С, который проверят производительность СУБД в OLTP системе, OracleDatabase занимает одну из лидирующих позиций.
На синтетических тестах и в реальной работе очень часто любят показывать результаты тестирования MySQL или MS SQL Server, в которых при небольшом объеме данных и специализированной нагрузке производительность этих СУБД значительно превосходит производительность OracleDatabase или, например, IBM DB2 UDB, т. е. продуктов, которые считаются СУБД «промышленного уровня». Это означает, что эти СУБД способны обрабатывать фактически неограниченный объем данных и число работающих пользователей. Под словами «неограниченный» следует понимать, что именно эти две СУБД являются лидерами по хранимому объему данных и работающим пользователям, при этом сохраняя весь свой разносторонний функционал.
Кроме того, если внимательно посмотреть на синтетические тесты, то можно заметить тот факт, что производительность OracleDatabase практически не меняется, а то и увеличивается при возрастании обрабатываемого объема данных. Именно это свойство отличает промышленную систему от настольной или системы рабочих групп. В этом — суть промышленного сервера баз данных: устойчивость к нагрузке. Впрочем, это не мешает СУБД Oracle лидировать в тестах и ставить мировые рекорды производительности.
2.5 Сравнение масштабируемости
Сравним выбранные СУБД по пункту «Масштабируемость». Он предполагает возможности рассматриваемой СУБД по увеличению объема данных со временем и в случае необходимости. Необходимо рассмотреть максимально возможный объем хранимых данных для каждой альтернативы (таблица 2.3).
Таблица 2.3 — Анализ СУБД по пункту «Масштабируемость»
Размер БД | Размер таблицы | Размер строки | ||
DB2 | 512ТБ | 512 ТБ | 32 677 В | |
Microsoft SQL Server | 524 258 ТБ | 524 258 ТБ | ||
Oracle | 4Гб* Размер блока | 8KB | ||
В отличие от MS SQL Server, OracleDatabase работает на большинстве известных платформ и операционных систем: Windows (в том числе не серверные версии), Unix, Linux, MacOS. Это существенное преимущество OracleDatabase. Преимущество заключается не только в том, что сейчас Oracle оставляет заказчику выбор операционной системы и аппаратной платформы, но и в том, что в корпорации существует опыт и культура разработки именно кроссплатформенных систем, следовательно, при появлении новой операционной системы, более мощной и эффективной, можно быть уверенным, что под эту операционную систему или платформу появится версия OracleDatabase.
В случае, если СУБД базируется только на одной операционной системе, то заказчик полностью зависит не только от производителя собственно СУБД, но и от производителя операционной системы. Зависимость эта тем более усугубляется, если производитель и СУБД и ОС — один и тот же.
2.6 Триггеры и хранимые процедуры
Сравним выбранные СУБД по критерию «Триггеры и хранимые процедуры». Пункт «Триггеры и хранимые процедуры» определяет наличие в некоторой СУБД класса процедур, функций. Триггерпрограмма базы данных, вызываемая всякий раз при вставке, изменении или удалении строки таблицы. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты. Хранимая процедура — программа, которая хранится на сервере и может вызываться клиентом. Поскольку хранимые процедуры выполняются непосредственно на сервере баз данных, обеспечивается более высокое быстродействие, нежели при выполнении тех же операций средствами клиента БД. Проведем анализ альтернатив по данному пункту.
Таблица 2.4 — Анализ СУБД по пункту «Триггеры и хранимые процедуры»
Триггер | Функция | Процедура | ||
DB2 | ||||
MicrosoftSQLServer | ||||
Oracle | ||||
2.7 Размер блока
Блок базы данных — это наименьшая единица информации, которую СУБД читает или записывает на жесткий диск или в оперативную память. Например, чтобы прочитать одну строку из таблицы, которая занимает 200 байт, требуется прочитать из памяти или жесткого диска блок целиком, размер которого составляет, например, 8000 байт и затем извлечь из прочитанного блока нужную строку. Очевидно, что в этом случае 7800 байт были прочитаны зря. Обратная ситуация, когда требуется прочитать все строки таблицы, СУБД будет вынуждена прочитать тем больше блоков, чем больше строк и больше размер одной строки. Выгодно было бы прочитать 1 блок размером, например 32 килобайта, чем читать 4 блока размером по 8 килобайт. Одной из приоритетных задач по настройке производительности является минимизация количества логических чтений (прочитанных блоков), и в OracleDatabase администратор имеет множество механизмов для решения этой задачи.
Кроме того, в OracleDatabase реализован механизм управления заполнением пространства блока (pct_free, pct_used), что позволяет эффективно настраивать СУБД для решения той или иной задачи.
В SQL Server размер блока (pagesize) равен 8 килобайт и не может быть изменен, что сильно ограничивает возможность настройки системы, особенно DSS систем (хранилища данных). В OracleDatabase размер блока задается во время создания базы данных, и, более того, для каждого табличного пространства может быть задан свой размер блока, например, для табличных пространств с маленькими, часто меняющимися таблицами — меньший размер, для табличных пространств с большими, редко изменяющимися таблицами, содержащими большой объем данных — больший размер, что существенно может повлиять на производительность системы в целом.
2.8 Индексы
В OracleDatabase поддерживаются различные типы индексов, которые не реализованы в MS SQL Server, например: B-treeclusterindexes, Hashclusterindexes, Reversekeyindexes, Bitmapindexes, Bitmapjoinindexes. Каждый из типов индексов может обеспечить существенный прирост производительности в той или иной ситуации.
Таблица 2.5 — Сравнение спектра используемых индексов
Тип индекса | OracleDatabase | MS SQL Server | |
B-tree | Да | Да | |
Function-based | Да | Да | |
Bitmap | Да | Нет | |
Reverse | Да | Нет | |
Использование Bitmapindex позволяет значительно ускорить выбор по полям с низкой селективностью, т. е. небольшим количеством различающихся значений в поле. Использование такого типа индекса — один из путей решения проблемы производительности в системах хранилищ данных.
Использование Reverseindex позволяет уменьшить конкуренцию за блоки БД при вставке в поле монотонно нарастающих значений: например, номеров документов или уникального ключа. Это еще один инструмент администратора базы данных по повышению производительности системы без увеличения мощности оборудования.
2.9 Стоимость обслуживания
Существуют различные исследования на эту тему. Например, в исследованиях, опубликованных на сайте Microsoft, как дважды два доказывается, что обслуживание SQL Server стоит намного дешевле и требует меньше усилий со стороны администратора. На сайте Oracle опубликованы не менее солидные и содержательные исследования, в которых точно также неоспоримо доказывается факт более низкой стоимости обслуживания именно OracleDatabase. Причем оба исследования проводятся независимыми компаниями. Исходя из отзывов пользователей программы, можно сказать, что администрирование SQL Server осуществляется из действительно удобной и логично-простой среды SQL ServerManagementStudio. В OracleDatabase также существует удобная и простая среда выполнения всех административных действий: Enterprisemanager. Начиная с 10-й версии, EM имеет web-интерфейс. Следует отметить, что из Oracle EM можно управлять не только единичным экземпляром базы данных, но и кластером и сетью GRID-серверов.
В 10-й, и в 11-й версии OracleDatabase улучшены и дополнены функции самоадминистрирования и самодиагностики сервера. В 10-й версии появилась функции автоматического сбора статистики, анализа и выдачи рекомендаций. Отслеживание различных показателей, с выдачей сообщения при достижении пороговых или критических величин.
Анализатор SQL запросов позволяет выбрать и настраивать наиболее тяжелые SQL запросы, причем предусмотрен вариант, в котором администратор просто выбирает проблемный SQL запрос, просматривает и применяет рекомендации SQL TuningAdvisor, все это происходит в консоли EM. В MS SQL Server выполнение аналогичной задачи выполняется ручным способом, на порядок дольше, чем в OracleDatabase, за исключением настройки индексов.
Использование появившейся в 10-й версии технологии Flashbacktable позволяет значительно упростить восстановление после пользовательских ошибок. Больше не требуется восстановление из резервной копии, достаточно выбрать удаленный объект и восстановить его из корзины. Следует отметить, что в MS SQL Server также возможно выполнение аналогичной операции, но требует значительно больше времени: требуется восстановление из резервной копии, выбор точки восстановления и накат потерянных транзакций вручную. Тоже самое касается и восстановления после ошибочной транзакции. В OracleDatabase это делается как через консоль EM, так и вручную, SQL операторами, причем требуется просто выбрать момент в прошлом, на который требуется восстановление. В MS SQL Server восстановление также производится из резервной копии с последующим ручным накатом журналов.
Таким образом, OracleDatabase предоставляет пользователю три варианта:
полная самодиагностика и самонастройка, которая совершенствуется от версии к версии, обобщая и базируясь на опыте тысяч администраторов по всему и миру и математических моделях;
мощную и удобную консоль администратора, не требующую установки какого-либо дополнительно ПО на компьютер администратора, и, следовательно, доступную с любого компьютера в сети, в том числе по сети Интернет, если это необходимо;
тонкие средства диагностики и настройки, оставшиеся с прошлых версий и позволяющие администратору в полной мери применить свои знания в области настройки производительности.
Аналогичные средства других СУБД либо жестко ограничивают администратора ввиду полной автоматизации процессов настройки, например, оперативной памяти, либо предоставляют менее богатый функционал для выполнения стандартных операций.
2.10 IBM DB2 UDB и OracleDatabase
IBM DB2 UDB и OracleDatabase имеют неофициальный статус баз данных «промышленного» уровня. Эти две СУБД во многом похожи, но имеются и отличия, влияющие на эффективность и стабильность СУБД. В таблице приведены некоторые отличия в работе внутренних механизмов этих СУБД.
Таблица 2.6 — Сравнение работы внутренних механизмов этих программ
Свойство | Oracle | DB2 | |
Конкурентная модель | Мульти-версия согласованность чтения Не эскалирует блокирование на уровне строк | Нет Эскалирует блокировки | |
Кластерные конфигурации | Прозрачная масштабируемость с технологией RealApplicationClusters (RAC) | Rigid data partitioning required with DB2 EEE | |
Возможности индексирования | Широкий выбор схем индексации | ТолькоB-Tree и dynamic bitmap indexes | |
Опции разметки (секционирования) | По диапазонам ключей, хеш, по списку значений ключа и составное секционирование. Локальные и глобальные индексы. | Только хеш-секционирование Только локальные индексы | |
Возможности складирования дополнительных данных | MERGE Multi-table INSERT | Не поддерживается Не поддерживается | |
Интеллектуальная справка | Index, Summary, Memory, MTTR | Indexadvisory только | |
Возможности самонастройки | Self-tuning memory, free space, and I/O management | Нет эквивалентных или ограниченных возможностей | |
В первой строке сравнивается механизм блокировок и обеспечения целостности чтения. Более подробно в таблице:
Таблица 2.7 — Сравнение механизма блокировки обеспечения целостности
Oracle9i | DB2 | |
Multi-version read consistency | Not available | |
No read locks | Requires read locks to avoid dirty reads | |
No dirtyreads | Dirty reads if not using read locks | |
Non-escalating row-level locking | Locksescalate | |
Readersdon’tblockwriters | Readersblockwriters | |
Writersdon’tblockreaders | Writersblockreaders | |
Nodeadlocksunderload | Deadlocks can be a serious problem under load | |
Во второй строке — работа в кластере, Oracle RAC и IBM EEE:
база данные оracle кластер Таблица 2.8 — Сравнение работы кластеров
Oracle RAC | DB2 EEE | |
No two-phase commit required | Requires two-phase commit | |
Data cached in multiple nodes | IPC for every cross-partition access | |
Singleprobefordata | Multiplepartitionprobes | |
Uniformloaddistribution | Loadskewlikely | |
Более подробно по поддерживаемым типам индексов:
Таблица 2.9 — Сравнение поддерживаемых индексов
Тип индекса | Oracle | DB2 | |
ReverseKeyIndexes | Да | ||
Function-basedIndexes | Да | Partial | |
DynamicBitmapIndexes | Да | Да | |
StoredCompressedBitmapIndexes | Да | ||
BitmapJoinIndexes | Да | ||
Index-organizedTables | Да | ||
В OracleDatabase больше поддерживаемых вариантов партиционирования:
Таблица 2.10 — Сравнение поддерживаемых вариантов патриционирования
Вид партиционирования | Oracle | DB2 | |
Rangepartitioning | Да | ||
Listpartitioning | Да | ||
Hashpartitioning | Да | Да | |
Compositepartitioning | Да | ||
Localindex | Да | Да | |
Globalpartitionedindex | Да | ||
Globalnon-partitionedindex | Да | ||
Как мы видим хоть IBM DB2 UDB и OracleDatabase обе являются СУБД промышленного уровня, несомненно что по функционалу и его возможностям Oracle обходит своего оппонента (таблицы 2.7−2.11). Также наличие намного более полной интеллектуальной справки и возможностей администрирования (эквивалента которым нет в DB2) делают Oracleболее доступной в администрировании, а также позволяют снизить затраты на самообслуживание этой СУБД.
Это в свою очередь делает Oracle менее затратной в самообслуживании, при больших функциональных возможностях и большей доступности для пользователей по сравнению с DB2.
Заключение
Подводя итоги, мы можем сказать, что в плане доступности администрирования пользователями программа Oracle является лидером среди рассматриваемых систем. Конечно мы заметим, что администрирование SQL Server осуществляется из действительно удобной и логично-простой среды SQL ServerManagementStudio, однако Oracle предоставляет как и полную самодиагностику и самонастройку, так и тонкие средства диагностики и настройки, позволяющие администратору в полной мери применить свои знания в области настройки производительности. В результате в MS SQL Server идёт сразу после Oracle, а на последнем месте оказывается DB2, характеризующаяся относительной сложностью администрирования.
Затрагивая стоимость самообслуживания, мы также можем сказать, что Oracle является более предпочтительным по сравнению со своими оппонентами. Несомненно, что Oracle стоит больше чем MSSQLServerи тем более DB2. Однако из-за большей доступности администрирования пользователями затраты на её самообслуживание (обучение работников пользованию программой, интеграция с другим ПО) в дальнейшем соответственно снижаются, что выдвигает её вперёд. Конечно DB2 намного дешевле, но сложность администрирования и менее полная интеллектуальная справка повышают цену самообслуживания этой системы в дальнейшем.
Несомненно, что одним из важных пунктов выбора СУБД является производительность. На синтетических тестах и в реальной работе очень часто любят показывать результаты тестирования MySQL или MS SQL Server, в которых при небольшом объеме данных и специализированной нагрузке производительность этих СУБД значительно превосходит производительность OracleDatabase и IBM DB2 UDB. Однако есть одно но, которое нужно учесть. Производительность DB2 и Oracle практически не меняется, а то и увеличивается при возрастании обрабатываемого объема данных. Это связано с тем, что обе эти СУБД являются СУБД промышленного уровня, особенностью которых является устойчивость к нагрузке. Так как цель своей работы я обозначил как поиск СУБД для предприятия, я соответственно предполагаю, что объёмы данных будут довольно большими, а нагрузка будет различной. Следовательно, я скорее выберу СУБД промышленного уровня для своего предприятия, а не MSSQL. Если же выбирать из DB2 и Oracle, то по производительности следует выбрать именно Oracle.
Ещё одним важным фактором выбора СУБД является разнообразие функциональных возможностей. По этим показателям MSSQL проигрывает своим оппонентам. DB2 и Oracle конечно похожи (обе являются СУБД промышленного уровня), но возможности Oracle разнообразнее (те же возможности складирования дополнительных данных и индексирования). В результате Oracle снова становится победителем.
И последний фактор — наличие собственных уникальных технологий. Тут на самом последнем месте оказывается MSSQL. Дальше идёт DB2 со своими возможностями масштабирования (разработанная специалистами IBM технология кластеризации баз данных не имеет аналогов) и генерирования сводных таблиц (DB2-единственный пакет позволяющий генерировать сводные таблицы, что значительно эффективность работы СУБД в качестве хранилищ данных). На первом же месте оказывается Oracleсо своими технологиями RAC, ActiveDataGuard, RAT, TotalRecall, InMemoryDatabaseCache, AutomaticStorageManagement. Они позволяют увеличить надёжность системы и данных, производительность, дают новые возможности разгрузки базы данных.
В конечном итоге, по-моему мнению Oracle является самым приемлемым и перспективным вариантом для предприятий.
Список используемых источников
1. «Система управления базами данных (СУБД), Назначение и основные функции». [Электронный ресурс]. URL: http://www.infosgs.narod.ru/31.htm
2. «Базы данных — Урок 1. Понятие базы данных». [Электронный ресурс]. URL: http://www.site-do.ru/db/db1.php
3. «Базы данных — Урок 2. Структура базы данных». [Электронный ресурс]. URL: http://www.site-do.ru/db/db2.php
4. «Классификация баз данных». [Электронный ресурс]. URL: http://cs.karelia.ru/studies/filatova_information/CMD_1 996 566_M/my_files/Inform/DataBase/a-2.htm
5. «Основные функции СУБД». Электронный ресурс]. URL: http://citforum.ru/database/osbd/glava6.shtml
6. «Система управления базами данных». Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Система_управления_базами_данных
7. «Преимущества СУБД Oracle». [Электронный ресурс]. URL: http://oracle.axoft.ru/fordev/advantagesOracle.php