16+
ComputerPrice
НА ГЛАВНУЮ СТАТЬИ НОВОСТИ О НАС




Яндекс цитирования


Версия для печати

Модуль поиска не установлен.

Сравнительная характеристика СУБД MS SQL Server и Informix OnLine Dynamic Server

08.09.2003

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

Итак, во-первых, проанализируем преимущества, предоставляемые нам профессиональными СУБД по сравнению с их настольными аналогами (FoxPro, Clipper). Какие же преимущества получаем мы, выбирая профессиональный сервер баз данных?

  1. Оптимизированный многопользовательский режим работы с развитой системой транзакционной обработки, что обеспечивает многочисленным пользователям возможность работы с базой данных, не мешая друг другу. Это - одно из важнейших требований, выдвигаемых сегодня к информационной системе;
  2. Надежные механизмы защиты информации (учитывая стандартную трехзвенную архитектуру защиты: на уровне сети - на уровне сервера БД - на уровне клиентской ОС);
  3. Эффективные инструменты для разграничения доступа к БД;
  4. Поддержка широкого диапазона аппаратно - программных платформ;
  5. Реализация распределенной обработки данных;
  6. Возможность построения гетерогенных и распределенных сетей;
  7. Развитые средства управления, администрирования, контроля и мониторинга сервера БД;
  8. Поддержка таких эффективных механизмов, как: триггеры, хранимые процедуры и функции, пакеты, словари данных и т.п;

Все вышеперечисленное обусловило широкое распространение решений на базе профессиональных СУБД в крупных организациях. Однако, несмотря на неоспоримые преимущества использования профессиональных серверов баз данных, многие предприятия продолжают использовать информационные системы третьего и даже второго поколений. Попробуем разобраться, почему же до сих пор такие программные продукты, как FoxPro, Clipper и т.д. остаются привлекательными для некоторых организаций. Как правило, использование ИС предыдущих поколений обусловлено не их преимуществами, а страхом перед новыми технологиями. Ниже я попытаюсь описать наиболее распространенные стереотипы, не позволяющие некоторым структурам перейти на использование профессиональных СУБД при построении информационных систем.

Во-первых, отпугивает относительно высокая цена профессиональных СУБД. Однако в настоящее время поставщики практически всех профессиональных серверов баз данных предлагают масштабируемые решения. К примеру, Enterprise Edition - для крупных систем, WorkGroup Edition и/или Desktop Edition - для средних и малых систем, причем цена последних сегодня сравнима с ценами на локальные СУБД.

Во-вторых, современные СУБД предъявляют высокие требования к аппаратным средствам. В настоящее время, в связи с резким ростом производительности Intel-ориентированных аппаратных платформ, большинство производителей профессиональных СУБД выпустила свои версии и под Intel-сервера, в том числе и под ОС Linux. С учетом того, что эта операционная система, обладая мощностью UNIX, практически бесплатная, то и решение на ее основе как правило не повлечет больших финансовых затрат. Это позволяет при построении системы ориентироваться не только на высокопроизводительные многокластерные RISC сервера, но и использовать серверные Intel-платформы.

В-третьих, часто можно встретить утверждение, что профессиональные автоматизированные информационные системы (АИС) сложны и дороги в администрировании. Как правило, сложность администрирования зависит от конкретной АИС. Кроме этого, при эксплуатации АИС на многопрофильном предприятии на UNIX-платформе снимает многие проблемы, возникающие на местах, за счет широких возможностей удаленного администрирования из центра.

В-четвертых, многие считают, что разработка АИС на базе современной профессиональной СУБД стоит неприемлемо дорого. Действительно, проектирование современных интегрированных систем - трудоемкий и требующий высокой квалификации разработчиков процесс. Это находит отражение в цене и делает информационные системы нового поколения более дорогими, но не настолько, чтобы цена разработки перекрывала бы предоставляемые системой преимущества по сравнению со своими предшественниками.

В-пятых, сопровождение систем на базе профессиональной платформы неоправданно дорого, а качественные характеристики такой АИС зачастую оставляют желать лучшего. Во многом это предубеждение сложилось на основании опыта эксплуатации АИС зарубежного производства. Можно указать целый ряд случаев, когда зарубежные фирмы поставщики либо отказывались своевременно вносить изменения, обусловленные изменениями в законодательстве, либо требовали за эти изменения неоправданно крупные суммы. Однако это совсем не относится к отечественным системам нового поколения, изначально рассчитанным на необходимость форсированного изменения принципов расчетов. Лично я столкнулся с такой ситуацией при разработке информационной системы по учету расхода электроэнергии.

Итак, современная АИС должна представлять собой интегрированный комплекс аппаратно-программных средств, реализующих мультипредметную информационную систему, обеспечивающую современные финансовые, управленческие, проектирующие, производственные и сбытовые технологии в режиме реального времени при транзакционной обработке данных. В принципе, это достаточно закономерно. Персональные СУБД (Clipper, Clarion, FoxPro) совершенно не приспособлены для создания интегрированных систем, работающих с общей базой. В принципе эти СУБД вообще не поддерживают понятие "база данных", работая на уровне индивидуальных таблиц-файлов.

Итак, существует достаточное количество аргументов за то, чтобы использовать профессиональные реляционные СУБД при разработке информационных систем. Однако выбрать путь использования таких серверов баз данных сегодня намного легче, чем отдать предпочтение какому-либо одному программному продукту.

Выбор конкретной архитектуры построения информационной системы включает два основных компонента: выбор серверной платформы (выбор серверной ОС и СУБД) и выбор платформ для клиентских рабочих мест. При выборе сервера баз данных очень важно выбрать такое программное обеспечение, которое в наибольшей степени соответствуют предъявляемым к информационной системе требованиям, т.е. необходимо определиться, какая модель автоматизации реализуется (автоматизация документооборота или бизнес - процессов). В первую очередь при выборе СУБД необходимо принимать во внимание следующие факторы:

  • максимальное число пользователей, одновременно обращающихся к базе;
  • характеристики клиентского ПО;
  • аппаратные компоненты сервера;
  • серверную операционную систему;
  • уровень квалификации персонала.

Сегодня известно большое число различных серверов баз данных SQL. В рамках данной статьи мы остановимся на следующих ведущих серверных СУБД - Informix OnLine Dynamic Server и Microsoft SQL Server. К СУБД, претендующим на роль информационной основы современных предприятий, предъявляются все новые и более жесткие требования. К числу важнейших можно отнести следующие:

  • высокая производительность;
  • масштабируемость;
  • непрерывная доступность данных;
  • функциональные возможности сервера;
  • средства безопасности;
  • средства разработки.

В первую очередь мы будем рассматривать СУБД Microsoft SQL Server. На его примере я более подробно поясню, что означают перечисленные выше параметры.

Microsoft SQL Server 7.0

Не секрет, что к продукции формы Microsoft большинство из нас испытывает двоякое чувство: с одной стороны, программное обеспечение от Microsoft - одно из наиболее распространенных, а с другой - никогда не знаешь, действительно ли то или иное приложение работает именно так, как описано в документации. Тем не менее, рассмотрим характеристики SQL Server 7.0 по перечисленным выше параметрам.

Высокая производительность

Такую характеристику дает своим программным продуктам любая фирма-разработчик. Однако в каждом конкретном случае производительность является результатом реализации некоторых оптимизирующих механизмов, индивидуальных для каждой СУБД. Рассмотрим, благодаря чему достигается высокая производительность в MS SQL Server.

Кроме возможностей индексации, параллельного и распределенного выполнения запросов, в состав SQL Server входят такие механизмы, как процессор запросов и производительный / интеллектуальный Ввод/Вывод (Big/Smart I/O). Рассмотрим их более подробно.

Процессор запросов обеспечивает обработку команд на языке Transact-SQL - диалекта стандартного языка SQL применительно к SQL Server. Перечислим наиболее важные возможности этого механизма.

  • Использование более одного индекса на таблицу. Отсутствие такого ограничения в версиях начиная с 7.0 позволяет оптимизатору пользоваться несколькими индексами, например, если условие поиска в запросе задано одновременно по нескольким полям. Над индексами могут осуществляться теоретико-множественные операции, например, объединение или пересечение индексов, что упрощает обработку предикатов фильтрации с операторами or или and, а также может применяться для динамического создания покрывающего индекса.
  • Наряду с традиционным алгоритмом разрешения соединения таблиц (JOIN) - вложенным циклом (nested loop), оптимизатор может применять зачастую более эффективные стратегии - слияние (merge join) и хеширование (hash join). Слияние применяется, когда обе соединяемые таблицы отсортированы по ключу соединения. Хеширование применяется, в том случае, если индексы задействовать не удается. Наиболее эффективная стратегия для каждого запроса определяется оптимизатором самостоятельно в каждом конкретном случае.
  • В версии 7.0 процессор запросов обращается за данными к системе хранения (Storage Engine) через интерфейс OLE DB. Через этот же интерфейс он может обращаться за данными и к любым другим OLE DB-совместимым источникам данных, как локальным (находящимся на этом же компьютере), так и удаленным. Таким образом, стандартные операторы SELECT, INSERT, UPDATE и DELETE могут теперь в одном запросе соединять таблицы из разных источников данных. Этими источниками данных могут быть как Microsoft SQL Server, так и другие СУБД, а также нереляционные источники (например Exchange Server, Index Server и т.д.). В зависимости от возможностей OLE DB-провайдера возможны три варианта обращения к удаленным данным - только чтение удаленных данных, их изменение и включение изменений в распределенную транзакцию. При этом изменение локальных данных возможно в рамках распределенного запроса в любом случае.
  • Полнотекстовый поиск. SQL Server обеспечивает возможности полнотекстового поиска за счет интеграции с системой полнотекстового индексирования. Взаимодействие с этой системой осуществляется через OLE DB. Управление построением и поддержкой индексов осуществляется из главного средства администрирования SQL Server - SQL Enterprise Manager. Полнотекстовые индексы хранятся за пределами баз данных SQL Server - в специально отведенных файловых каталогах. Обновление индексов осуществляется вручную или по расписанию. Построение индекса возможно по символьным и текстовым полям таблиц.

Под Big/Smart I/O. понимается совокупность приемов, позволяющих обмениваться нужными данными с дисковой подсистемой как можно скорее.

  • Опережающее чтение - процессор запросов подсказывает подсистеме хранения, как это делать.
  • Сканирование строк в порядке физического размещения - при оценке затрат на выполнение запроса может быть сочтено более эффективным не использовать индексы, а просто читать данные в порядке их физического размещения и хешировать их для реляционного соединения, затем соединять и, наконец, сортировать небольшое число получившихся в результате строк.
  • Неупорядоченное сканирование - когда данные расположены на нескольких дисководах, неупорядоченное сканирование их организуется параллельно и доступ происходит быстрее.
  • Параллельные запросы - используют усовершенствованный механизм организации очереди, позволяющий поднять производительность даже в тех случаях, когда данные хранятся вместе.
  • Управление кэшированием - переработано с целью повышения производительности при чтении большого количества данных.

Масштабируемость

Этот термин означает возможность улучшение системных характеристик сервера путем увеличения доступных вычислительных ресурсов (количества или быстродействия процессоров, числа дисков). К улучшениям системных характеристик можно отнести, например:

  • рост числа обслуживаемых пользователей с сохранением среднего времени отклика;
  • ускорение обработки одного запроса;
  • сохранение того же времени обработки запроса при увеличении объема участвующих в нем таблиц.

SQL Server обеспечивает достаточно высокие уровни масштабируемости и доступности. Однако в данном случае здесь отсутствует масштабируемость сервера в чистом виде, поскольку рост производительности сервера зависит не только от аппаратного обеспечения, но и операционной среды, под управлением которой работает данная СУБД.

Доступность данных

Если сервер остановлен с целью выполнения определенных административных действий или просто произошел сбой в работе системы, данные могут стать недоступны пользователям.

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

Функциональные возможности сервера

В состав Microsoft SQL Server входит достаточно мощный язык работы с данными: Transact SQL, который является расширением стандартного SQL. Однако совместимость со стандартом ANSI/ISO SQL-92 не является полной, хотя он и рассматривается как предпочтительный диалект SQL. Transact-SQL поддерживает такие объекты БД, как хранимые процедуры, триггеры, представления, поддержка целостности и т.д. К сожалению, отсутствуют механизмы каскадного удаления и обновления данных по внешним ключам.

Средства безопасности

SQL Server может авторизовать пользователей двумя путями:

  • на основе собственного списка пользователей (в версии SQL Server 6.5 это называлось "стандартный режим");
  • на основе базы пользователей Windows NT (в версии SQL Server 6.5 это называлось "интегрированный режим").

Если организация использует Windows NT в качестве основной сетевой платформы, то применение авторизации Windows NT, безусловно, более эффективно. Во-первых, пользователи осуществляют однократный вход в сеть и получают доступ ко всем ресурсам, в том числе и к SQL Server. Во-вторых, управление доступом пользователей и групп становится более простым с точки зрения администратора. В-третьих, в этом случае задействуются механизмы секретности Windows NT (устаревание паролей и т.п.).

При управлении правами пользователей в базах данных применяются роли. Пользователь может входить в одну или несколько ролей. Роль может включать в себя другие роли. Существует такой механизм, как "роль приложения" (application role), который определяет контекст прав любого пользователя данного приложения, независимо от его прав в базе данных.

В каждой базе данных имеется несколько встроенных ролей, которые могут использоваться администратором. Имеются также встроенные роли на уровне сервера. Такие роли сервера и баз данных, как dbcreator, diskadmin и sysadmin, обеспечивают высокий уровень гибкости и безопасности.

Открытость

Это понятие включает оценки по многим направлениям. Степень открытости определяет степень интегрируемости СУБД и продуктов, созданных на ее основе, в разнообразных аппаратных, программных, административных, национальных и других средах, что чрезвычайно важно как для построения ИС в настоящем, так и для ее развития в будущем.

Открытость данного продукта также, как и масштабируемость, весьма относительная. MS SQL Server "открыт" для других продуктов Microsoft: MS Office, MS Visual Studio, MS Internet Information Server и т.д. При этом делается упор на то, что поскольку все эти программные комплексы разработаны одной компанией, то взаимодействие между ними осуществляется более эффективно, чем с аналогичными продуктами других фирм.

Средства разработки

MS SQL Server предоставляет широкие возможности для разработчика баз данных.

SQL Server Query Analyzer. Используется для разработки и оптимизации запросов. Позволяет просмотреть подробный план выполнения запроса. План отображается в графическом виде при помощи пиктограмм и всплывающих текстовых подсказок. Конструкции языка SQL в тексте запроса выделяются разными цветами на основе синтаксического анализа. Показываются относительные (в процентах) стоимости выполнения этапов, а также отдельных запросов по отношению к общей стоимости пакета. Результаты запроса могут быть представлены в табличной форме. Query Analyzer может также выдать рекомендации по построению индексов, оптимизирующих выполнение данного запроса.

SQL Server Profiler. Этот инструмент, пришедший на смену SQL Trace из версии 6.5, позволяет собрать самые подробные данные для всестороннего анализа работы пользователей и приложений. Отслеживается до 50 типов событий, в том числе транзакции, блокировки, исполняемые команды и т.д. Входной поток команд может быть захвачен и сохранен в файле или серверной таблице для дальнейшего анализа. Этот поток также может быть вновь воспроизведен, например, чтобы при тестах имитировать реальную работу пользователей, в том числе на другом сервере.

Index Tuning Wizard. Поток команд, захваченный SQL Server Profiler, так же как и последовательность SQL-операторов, может быть проанализирован при помощи мастера Index Tuning Wizard, который выдаст рекомендации по построению индексов, оптимизирующих выполнение всего потока команд (а не одного запроса, как в SQL Server Query Analyzer). При этом будут выданы оценки выигрыша в производительности.

Visual Database Tools. Набор графических инструментальных средств Microsoft Visual Database Tools предназначен для рисования диаграмм "сущности-связи" и разработки сложных запросов. С помощью Microsoft Visual Database Tools вы сможете:

  • присоединить и исследовать любую базу данных, совместимую с ODBC (Open Database Connectivity);
  • создавать и изменять базы данных, используя диаграммы;
  • разрабатывать, выполнять и сохранять сложные запросы;
  • добавлять, изменять и стирать данные, хранящиеся в таблицах баз данных;
  • проектировать объекты, такие как таблицы, триггеры, хранимые процедуры для систем управления базами данных Microsoft SQL Server и Oracle;
  • "перетаскивать объекты баз данных на проектируемые носители интерфейсов (например, на заготовки страниц HTML) и связывать их с элементами управления с помощью наглядных манипуляций.

Необходимо заметить, что SQL Server уступает другим рассматриваемым СУБД по двум важным показателям: программируемость и средства работы. При разработке клиентских БД приложений на основе языков Java, HTML часто возникает проблема недостаточности программных средств SQL Server и пользоваться этой СУБД будет труднее, чем системами DB2, Informix или Oracle.

По моему мнению, одним из серьезнейших недостатков данной СУБД является ее зависимость от операционной среды. Сегодня общемировой тенденцией стал практически повсеместный переход на платформу LINUX, а SQL Server функционирует исключительно в среде Windows. Поэтому использование SQL Server целесообразно только в том случае, когда для доступа к содержимому БД используется стандарт ODBC, в противном случае лучше использовать другие СУБД. С другой стороны, такая зависимость может положительно сказаться (я не утверждаю, что сказывается) на производительности системы, поскольку SQL Server является "родным" продуктом для операционных систем семейства Windows.

В комплект средств административного управления данной СУБД входит целый набор специальных мастеров и средств автоматической настройки параметров конфигурации. Как и любой другой продукт от Microsoft, SQL Server выглядит красиво и при первом знакомстве у начинающего администратора не возникает мысли, что с этой СУБД могут возникнуть какие-нибудь проблемы. К сожалению, проблемы возникают (как, впрочем, и при работе с другими серверами баз данных). Также MS SQL Server оснащен замечательными средствами тиражирования, позволяющими синхронизировать данные ПК с информацией БД и наоборот. Входящий в комплект поставки сервер OLAP дает возможность сохранять и анализировать все имеющиеся у пользователя данные. В принципе данная СУБД представляет собой современную полнофункциональную базу данных, которая идеально подходит для малых и средних организаций.

Informix

Работы над системой управления базами данных Informix были начаты в 1980 г. Первоначально программный комплекс Informix рассматривался как СУБД, специально ориентированная для работы в среде ОС UNIX. Для организации хранения данных был выбран реляционный подход. С тех пор Informix стал одной из основных СУБД, работающих в среде UNIX. Среди других платформ Informix поддерживает NetWare, Windows, Windows NT и DOS.

Программное обеспечение Informix состоит из серверов баз данных, средств разработки и отладки, коммуникационных средств. Характерной особенностью Informix является наличие нескольких типов серверов.

Одним из достижений фирмы является выпуск сервера базы данных OnLine Dynamic Server. Этот продукт основан на так называемой "динамической масштабируемой архитектуре" (Dynamically Scalable Architecture - DSA), которая специально ориентирована на работу с многопроцессорными системами.

OnLine Dynamic Server обеспечивает повышение производительности за счет гибкости использования ресурсов СУБД и многопоточной архитектуры. Фактически OnLine Dynamic Server берет на себя многие связанные с распределением ресурсов функции операционной системы. Как результат имеем уменьшение нагрузки на операционную систему, что, в конечном счете приводит к росту производительности.

В рамках данной статьи я не буду рассматривать всю линейку продуктов Informix, а остановлюсь на OnLine Dynamic Server.

Высокая производительность

Рассмотрим, какие особенности архитектуры Informix OnLine DS влияют на производительность информационной системы. К ним относятся:

  • многопотоковая архитектура;
  • параллельная обработка;
  • фрагментация таблиц и индексов;
  • оптимизация выполнения запросов;
  • разделяемая память;
  • кеши словарей данных и хранимых процедур;
  • собственное управление дисковой памятью;
  • асинхронный ввод-вывод;
  • опережающее чтение.

Масштабируемость

Масштабируемость СУБД Informix обеспечивается за счет многопотоковой архитектуры с поддержкой многопроцессорной обработки (обслуживание клиентов равномерно распределяется между всеми имеющимися в наличии процессорами) и технологии PDQ (Parallel Data Query - параллельная обработка запросов). Обработка больших таблиц ускоряется пропорционально числу фрагментов, располагаемых на разных дисковых устройствах. Очень удобна возможность динамического изменения объема и конфигурации ресурсов, используемых сервером - числа виртуальных процессоров, дисковых пространств баз данных. В соответствии с наличием ресурсов и потребностями можно оперативно регулировать интенсивность параллельной обработки, изменять правила фрагментации таблиц. Производительность информационной системы может наращиваться путем распределения данных и их обработки между несколькими серверами, связанными сетью.

Доступность данных

Сервер Informix OnLine DS обладает рядом возможностей, которые позволяют повысить надежность ИС и практически отказаться от плановых простоев:

  • зеркалирование дисковых областей;
  • восстановление некритичных для работы сервера данных в оперативном режиме;
  • полное тиражирование данных сервера;
  • развитые средства сохранения данных;
  • фрагментация таблиц (при отказе одного диска сохраняется частичная доступность таблицы);
  • инструменты слежения за состоянием сервера;
  • выполнение большинства административных задач, в оперативном режиме.

Функциональные возможности сервера

Помимо рассмотренных выше, включают следующие средства: хранимые процедуры, триггеры, курсоры, каскадные удаления данных, поддержку целостности, в том числе, целостности по ссылкам, уровни изоляции чтения (грязное чтение, подтвержденное чтение, стабильное чтение, повторяемое чтение).

Средства безопасности

В сервере Informix OnLine DS эти средства соответствуют стандарту класса C2.

Открытость

Перечислим некоторые свойства, характеризующие открытость Informix:

  • доступность на множестве платформ, включая Sequent, HP, Sun, IBM, Siemens Nixdorf, NCR;
  • поддержка, помимо UNIX, операционных систем Windows NT и NetWare;
  • переносимость прикладных систем между платформами;
  • возможность включения баз данных Informix в распределенные разнородные ИС, построенные на основе аппаратно-программных платформ и СУБД разных производителей;
  • интегрируемость Informix с системами централизованного управления и администрирования, такими как Tivoli Management Environment (TME), HP OpenView, IBM NetView;
  • поддержка национальных языков.

Средства разработки

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

Резюме

Итак, подведем итог нашим рассуждениям. По большинству параметров Informix OnLine Dynamic Server опережает MS SQL Server. Ему-то и следует отдавать предпочтение при выборе СУБД для информационной системы уровня предприятия. Использование же MS SQL Server целесообразно при создании информационных систем для небольших организаций или если политика вашей фирмы - использование программного обеспечения исключительно от Microsoft.

Сергей Кривошеев
sergk@mail.spbnit.ru



статьи
статьи
 / 
новости
новости
 / 
контакты
контакты