Введение в базы данных. Часть 3. Серверные СУБД
Наиболее популярные серверные СУБД
На сегодняшний день известно более двух десятков серверных СУБД, однако наиболее популярными, исходя из числа продаж и инсталляций, следует признать Oracle, Microsoft SQL Server, Informix, Sybase, DB2.
Сведения о производителях перечисленных выше СУБД педставлены в следующей таблице:
СУБД | Производитель | Url |
---|---|---|
Oracle | Oracle Corp. | http://www.oracle.com |
Microsoft SQL Server | Microsoft | http://www.microsoft.com |
Informix | Informix | http://www.informix.com |
Sybase | Sybase | http://www.sybase.com |
DB2 | IBM | http://www-4.ibm.com |
Далее мы рассмотрим каждую из этих СУБД в отдельности. Начнем с Oracle — семейства СУБД, популярности и престижности которого могут позавидовать многие производители.
Oracle
Oracle была первой коммерческой реляционной СУБД, поддерживающей ставший ныне индустриальным стандартом язык SQL; ее первая версия появилась в 1979 году. Фактически все это время Oracle является бессменным лидером на рынке производителей коммерческих СУБД и второй (после Microsoft) по величине компанией, производящей программное обеспечение.
Ранние версии этой СУБД были предназначены для мэйнфреймов, а в качестве рабочих мест использовались «неинтеллектуальные» терминалы. Однако со временем появились версии Oracle, предназначенные для использования в архитектуре «клиент-сервер» (первой такой версией была Oracle 5, выпущенная в 1985 году). Первоначально эти версии были предназначены для различных серверных платформ — различных версий UNIX, VMS и др. Позже были выпущены версии сервера Oracle для Novell NetWare. Первые версии этого сервера для персональных компьютеров появились в середине 90-х (Personal Oracle 7 for Windows 3.1, Personal Oracle 7 for Windows 95, Personal Oracle Lite, Oracle Workgroup Server 7 for Windows NT). До появления этих версий персональные компьютеры могли использоваться исключительно в качестве клиентских рабочих станций — в состав Oracle для серверных платформ обычно входила клиентская часть для DOS.
Отметим, что Oracle была первой компанией, создавшей СУБД, использовавшую предоставляемые некоторыми серверными платформами средства параллельных вычислений — Oracle Parallel Server (до его появления параллельные вычисления использовались только для решения научных задач). При использовании параллельных вычислений Oracle Parallel Server дает возможность нескольким процессорам обращаться к одной базе данных, что позволяет обеспечить высокую скорость обработки транзакций, а более поздние его версии дают возможность осуществить декомпозицию операций с большими объемами данных с целью параллельного выполнения их на нескольких процессорах.
На сегодняшний день последней версией Oracle является версия Oracle 8i, отличительными свойствами которой являются:
- наличие объектных расширений и соответствующих типов данных, таких как вложенные таблицы, массивы, объекты и др. Иными словами, Oracle 8 и Oracle 8i являются объектно-ориентированными СУБД;
- наличие функций аналитической обработки данных (например, вычисления процентных соотношений, ранжирования, сравнения временных периодов);
- возможность создания таблиц, содержащих агрегатные данные (materialized views) и возможность частичного их обновления при изменении данных, на основании которых они вычислены;
- поддержка Java, в частности JDK 1.2 и JDBC 2.0;
- поддержка XML, в частности в Oracle 8i включены XML Parser for Java, C/C++, PL/SQL, превращающие XML-данные в вид, пригодный для использования в Oracle 8;
- поддержка HTML- и XML-страниц с включенным в них кодом PL/SQL (для их выполнения требуются дополнительные продукты, например WebDB PL/SQL Gateway или Oracle Application Server PL/SQL Cartridge);
- поддержка хранения мультимедиа-данных с возможностью индексации, построения контекстных запросов, поддержки разных языков для хранимых документов;
- набор процедур и функций для обработки пространственной информации (Oracle Spatial);
- дополнительные возможности обеспечения безопасности, например шифрование данных, поддержка SSL, использование ролей уровня базы данных и уровня предприятия;
- возможность создания систем, устойчивых к сбоям, с использованием нескольких параллельных процессов;
- поддержка Microsoft Cluster Server;
- наличие OLE DB-провайдера для доступа к данным.
Oracle 8i существует в трех редакциях: Oracle 8i, Oracle 8i Enterprise Edition, Oracle 8i Personal Edition.
Для создания многомерных хранилищ данных существует и отдельный продукт — Oracle Express OLAP.
Помимо различных версий сервера баз данных среди продуктов Oracle имеется также Designer/2000 — ориентированное на эту СУБД CASE-средство для анализа бизнес-процессов и проектирования данных, а также средства разработки клиентских приложений. Одно из них — Developer/2000 (называвшееся ранее Oracle*Forms) — весьма популярно среди пользователей Oracle; были и другие средства разработки (например, Oracle Power Objects). Отметим, что приложения, созданные с помощью Developer/2000, могут выполняться на различных платформах. Язык PL/SQL, используемый в этом средстве разработки, является интерпретируемым и представляет собой тот же самый язык, что используется в Oracle для написания серверного кода. Это позволяет отлаживать с помощью Developer/2000 серверный код.
Производя собственные средства разработки, Oracle предоставляет своим пользователям возможность создавать клиентские приложения с помощью других средств. В частности, помимо стандартного в таких случаях клиентского API (Oracle Call Interface) клиентская часть Oracle содержит также объектную модель (Oracle Objects for OLE), позволяющую использовать клиентскую часть Oracle как набор COM-объектов для доступа к данным. Кроме того, обычно клиентская часть Oracle содержит также ODBC-драйвер для доступа к данным этой СУБД.
Отметим, что и многие другие компании производят ODBC-драйверы и OLE DB-провайдеры для доступа к Oracle (в частности, Microsoft). Компании, производящие средства разработки, использующие собственные библиотеки доступа к данным (такие как Inprise или Gupta/Centura), также включают библиотеки доступа к Oracle в состав наиболее дорогих версий своих продуктов.
Из готовых информационных систем на базе Oracle следует особо отметить несколько крупных систем управления предприятием, в частности SAP/R3. На Западе также нередко используются готовые решения от самой Oracle Corporation, объединенные под общим названием Oracle Applications, такие как Oracle Financials, Oracle Human Resources, Oracle Market Management, Oracle Project Systems и др.
Microsoft SQL Server
Первая версия Microsoft SQL Server, совместно разработанная в 1988 году компаниями Microsoft и Sybase, предназначалась для платформы OS/2. Последующие версии этого сервера баз данных предназначались для платформы Windows NT и со временем были тесно интегрированы с этой операционной системой. Для других платформ версии этого сервера не выпускались и не выпускаются.
Удобный пользовательский интерфейс утилит администрирования в сочетании с достаточно высокой производительностью и относительно невысокой стоимостью эксплуатации сделал эту серверную СУБД второй по популярности — после Oracle. Наибольший рост популярности этой СУБД пришелся на конец 90-х годов, когда были выпущены Microsoft SQL Server 6.0 (1995 год), обладавший централизованными функциями администрирования и встроенными возможностями репликации данных, Microsoft SQL Server 6.5 (1996 год) и Microsoft SQL Server 6.5 Enterprise Edition, поддерживающий параллельные вычисления в многопроцессорных системах.
На сегодняшний день наиболее широко используемой является выпущенная в 1998 году версия Microsoft SQL Server 7.0. Эта версия отличается от предыдущих тем, что была полностью переписана фирмой Microsoft исключительно под платформу Windows NT. В состав Microsoft SQL Server 7.0 входят еще более простые утилиты администрирования (Enterprise Manager), сервисы преобразования данных (Data Transformation Services), облегчающие перенос данных в SQL Server из других типов СУБД, поддержка распределенных запросов и транзакций, OLAP-сервер и утилиты для создания хранилищ данных (в том числе данных из других серверных СУБД), расширенная поддержкой функций для создания Web-приложений.
Помимо собственно Microsoft SQL Server 7.0 в качестве встроенной СУБД для настольных приложений и приложений для небольших рабочих групп можно также использовать Microsoft Data Engine (MSDE) — настольный сервер баз данных, совместимый с Microsoft SQL Server и предназначенный для использования в настольных системах или в сетевых приложениях с небольшим (до 2 Гбайт) объемом данных и небольшим количеством пользователей. Базы данных MSDE полностью совместимы с базами данных Microsoft SQL Server и могут при необходимости управляться этим сервером. Подробнее об MSDE и правилах его лицензирования можно прочесть в предыдущей статье данного цикла.
Клиентские приложения для Microsoft SQL Server и MSDE можно создавать как с помощью средств разработки Microsoft — Visual Basic, Visual C++, Access и Visual FoxPro, так и с помощью средств разработки других производителей. Для этой цели имеются ODBC-драйвер и OLE DB-провайдер, а также содержащий их набор библиотек Microsoft Data Access Components (MDAC), позволяющий использовать в средствах разработки объекты ActiveX Data Objects (ADO) — COM-объекты для доступа к данным. MDAC является составной частью Windows 2000, а для пользователей других Windows-платформ доступен отдельно на Web-сайте Microsoft.
В отличие от Oracle, Microsoft не производит средств разработки, использующих тот же самый язык программирования, что и язык для создания кода триггеров и хранимых процедур, однако производит средства отладки серверного кода (например, SQL Server Debugger входит в состав Visual Basic и Visual C++).
Sybase
Серверные продукты компании Sybase происходят от двух «предков». Первым из них является одна из ранних версий Microsoft SQL Server, созданная совместно Microsoft и Sybase. Начиная с 1994 года Microsoft и Sybase разрабатывают свои серверные продукты независимо друг от друга, и результатом деятельности компании Sybase в этом направлении является продукт под названием Adaptive Server Enterprise (в настоящее время используются его версии 11 и 12). Этот продукт существует для Windows NT и некоторых версий UNIX (включая Linux) и предназначен для обслуживания крупных предприятий. В настоящее время этот сервер поддерживает:
- упреждающее асинхронное чтение, что повышает скорость выполнения сложных запросов;
- использование кластерных систем;
- распределенную обработку запросов, в том числе к базам данных других производителей;
- расширенные хранимые процедуры, позволяющие осуществить легкий доступ к не-SQL функциям (Java, 3GL-системы, функции операционной системы и т.д.);
- параллельную обработку запросов в многопроцессорных системах;
- параллельную работу утилит администрирования;
- интеграцию с популярными системами безопасности, такими как Kerberos.
Еще одна линия серверных продуктов Sybase ведет свое начало от сервера баз данных Watcom SQL Anywhere, отличавшегося компактностью и простотой администрирования. Последняя версия этого продукта называется Adaptive Server Anywhere 6.0.3. Этот сервер предназначен для обслуживания небольших рабочих групп, для применения в портативных компьютерах в качестве персонального сервера с периодической репликацией, а также в мобильных устройствах — существуют версии этого сервера для Windows CE 2.1 и версия UltraLite для разнообразных мобильных устройств (исключая разве что тамагочи).
Для управления распределенными транзакциями Sybase выпускает монитор транзакций — Jaguar CTS.
Для создания многомерных хранилищ данных у Sybase существует еще один серверный продукт — Adaptive Server IQ, позволяющий создавать хранилища на основе данных не только из СУБД производства Sybase, но и из СУБД других производителей. Отметим также, что существует ряд продуктов под общим названием Sybase Industry Warehouse Studio, ориентированных на обслуживание конкретных предметных областей: торговли (Retail Warehouse Studio), здравоохранения (Healthcare Warehouse Studio), страхования (Life Insurance Warehouse Studio) и др.
Помимо серверных продуктов Sybase производит средства разработки, ориентированные на создание клиентских приложений для них (PowerBuilder, PowerJ, PowerSite; последнее предназначено для создания Web-приложений), и средства проектирования данных и генерации кода приложений. Последние можно отнести к универсальным средствам — CASE-средство DataArchitect поддерживает широкий спектр СУБД различных производителей, а генератор приложений AppModeler способен генерировать код не только для PowerBuilder и Optima++, но и для Delphi, Visual Basic, Web-приложений с использованием ASP.
Informix
Ведущий продукт фирмы Informix — Informix Dynamic Server, последняя версия которого называется Informix Dynamic Server.2000 (выпущена в сентябре 1999 года). Данный продукт поддерживает платформы UNIX и Microsoft Windows NT и обеспечивает эффективную работу как на одно-, так и на многопроцессорных системах, а также в кластерах. Сервер построен по архитектуре Dynamic Scalable Architecture (DSA), обеспечивающей мощные средства для параллельной обработки данных. В числе основных характеристик Informix Dynamic Server следует отметить:
- использование для управления дисковым пространством как средств операционной системы (UNIX или Microsoft Windows NT), так и собственных функций, позволяющих обойти ограничения операционной системы и добиться более высокой производительности, — такое управление дисковым пространством называется Raw Disk Management;
- управление разделением памяти — поддержку одновременного доступа к данным, находящимся в памяти, несколькими приложениями;
- динамическое управление потоками;
- поддержку фрагментации таблиц и индексов на нескольких дисках;
- распараллеливание запросов (parallel database query, PDQ);
- зеркалирование данных.
Сервер поддерживает двухфазное завершение транзакций, гетерогенные транзакции (в этом случае в транзакциях может принимать участие и не-Informix сервер, доступный через Informix Enterprise Gateway).
Расширения функциональности сервера реализуются на базе DataBlade — коллекций объектов баз данных и подпрограмм на языке С, подключаемых к базе данных. Для разработки DataBlades необходимо использовать DataBlade Developer’s Kit. Фирма Informix и целый ряд независимых производителей выпускают модули DataBlade, такие, например, как Excalibur Text DataBlade Module, Informix Geodetic DataBlade Module, Informix TimeSeries DataBlade Module, Excalibur Image DataBlade Module, Informix Web DataBlade Module и ряд других.
Входящие в состав Informix Dynamic Server клиентские утилиты предназначены для подключения к серверу и обработки информации (DB-Access) и для выполнения функций администрирования (DB/Cockpit).
Клиентские приложения могут создаваться с использованием языков Informix ESQL (средство для разработки на языке С, позволяющее включать в приложения запросы к данным на языке SQL), а также С, С++, Java, Visual Basic и Delphi. Помимо этого существует собственное средство разработки — Informix-4GL и Informix Client Software Developer’s Kit.
Фирма Informix выпускает Informix ODBC Driver, OLE DB Provider для Informix Dynamic Server и Informix JDBC Driver.
В состав продукта входят собственно сервер, а также Informix Connect 2.30, DataBlade Developer’s Kit 4.0 и Informix Server Administrator 1.0.
Для генерации отчетов предлагается Informix-ViewPoint — визуальное средство, рассчитанное на пользователей. Версия Pro также содержит средства администрирования.
Говоря о сервере фирмы Informix, следует упомянуть и поддержку OLAP: продукт под названием Informix MetaCube поставляется как часть Informix Decision Frontier — комплексного решения для создания хранилищ данных.
Среди других продуктов фирмы Informix следует отметить:
- Informix Internet Foundation.2000 — специально разработанный для Internet вариант Informix Dynamic Server;
- i.Reach — корпоративный репозитарий для хранения данных различного типа, интеллектуального управления информацией и извлечения данных. Основное назначение данного продукта — поддержка включения в содержимое корпоративных сайтов электронных документов и их последующее обслуживание;
- i.Sell — комплексное решение для электронной коммерции на базе Informix Dynamic Server.
DB2
Семейство серверных СУБД фирмы IBM, известное под названием DB2 Universal Database, представляет собой стратегию IBM по объединению продуктов DB2 для различных платформ в единую линию. Впервые появившееся в 1996 году семейство DB2 Universal Database объединяло в себе функциональные возможности таких продуктов фирмы, как DB2 Common Server, DB2 Parallel Edition (DB2 PE), Net.Data, Data Propagator и технологии DataHub, и предназначалось для платформ UNIX, OS/2 и Microsoft Windows NT.
Отметим, что при переносе DB2 на не-IBM-платформы фирма старается максимально использовать уникальные функциональные возможности конкретной платформы. Например, в DB2 for Windows 2000 для обеспечения безопасности используется Windows NT LAN Manager, полностью поддерживается Windows Performance Monitor, Systems Management Server, интеграция с Active Directory для каталогизации баз данных, а также такие интерфейсы доступа к данным, как ODBC, ADO и OLE DB. Помимо этого DB2 for Windows 2000 поддерживает Microsoft Transaction Services (MTS) в качестве координатора при создании приложений, использующих распределенные транзакции.
Для разработчиков, использующих Microsoft Visual Studio, становятся доступными дополнительные модули, например Stored ProcedureBuilder, включаемый непосредственно в среду Visual Studio. IBM также предлагает собственные средства разработки, например IBM VisualAge for Java, позволяющие создавать приложения, работающие с данными в DB2. Продукт также поддерживает создание хранимых процедур на языке Java (Java Stored Procedure Builder).
Помимо этого IBM предлагает бесплатное средство для миграции данных из Microsoft Access в DB2, а также средства для миграции данных из Oracle, Microsoft, Sybase и Informix.
К основным характеристикам СУБД можно отнести поддержку реляционных и комплексных данных через объектные расширения, возможность работы на мультипроцессорных платформах, поддержку кластеров, 64-битную архитектуру памяти и распараллеливание запросов, возможность создания Web-приложений (поддерживаются такие технологии, как Java, JDBC, SQLJ, XML) и наличие средства для гетерогенного администрирования и обработки данных.
Семейство DB2 функционионирует на системах AS/400 и RISC System/6000, мэйнфреймах IBM, машинах от Hewlett-Packard и Sun Microsystems и на таких операционных системах, как Windows NT и Windows 95/98, OS/2, AIX, HP-UX, SCO UnixWare, Linux, NUMA-Q и Sun Solaris, и сейчас поддерживает портативные устройства под управлением Windows CE и Palm OS.
DB2 Universal Database выпускается в редакциях DB2 Universal Database Enterprise — Extended Edition (платформы AIX, Solaris и Windows NT), DB2 Universal Database Enterprise Edition (платформы AIX, HP-UX, Linux, OS/2, Solaris и Windows NT), DB2 Universal Database Workgroup Edition (платформы Linux, OS/2 и Windows NT) и DB2 Universal Database Personal Edition (платформы OS/2, Linux, Windows 9x и Windows NT).
К дополнительным продуктам можно отнести:
- DB2 OLAP Server — средство для онлайновой аналитической обработки данных и реализации хранилищ данных, интегрирующее ядро Hyperion Essbase с семейством DB2 Universal Database. Работает с Hyperion Integration Server (Hyperion), Hyperion Wired for OLAP (Hyperion), Brio.Insight (Brio Technology), BUSINESSOBJECTS (Business Objects), PowerPlay (Cognos), Lotus 1-2-3 (Lotus), Excel, Internet Explorer, Visual Basic (Microsoft) и Crystal Info (Seagate);
- DB2 Connect — средство для управления соединениями различных клиентов с DB2 на AS/400;
- DB2 Universal Developer’s Edition — рассчитанное на разработчиков средство для создания и тестирования приложений в архитектуре «клиент-сервер», работающих с данными DB2;
- DB2 DataJoiner — средство для доступа к реляционным и нереляционным данным, расположенным на различных платформах как к единому «образу» данных;
- DB2 Data Links Manager — средство для управления дополнительными файлами, подключаемыми к СУБД;
- DB2 Query Patroller — набор средств для создания запросов и управления ресурсами для систем принятия решений. DB2 Query Patroller получает ODBC-запросы от клиента, анализирует их и динамически распределяет запросы по различным узлам DB2 UDB Enterprise — Extended Edition;
- DB2 Net.Data — приложение, позволяющее Web-разработчикам создавать динамические Internet-приложения, используя Web Macros;
- DB2 Universal Database Satellite Edition — средство для внедрения масштабируемых мобильных решений, для управления удаленными пользователями. Поддерживает функции репликации, централизованное администрирование и средства управления через Web — DB2 Web Control Center;
- DB2 Everywhere — СУБД для Palm OS и Windows CE, обеспечивающее SQL-функции и синхронизацию данных с другими реляционными базами данных, с данными Lotus Notes/Domino и PIMs.
Заключение
В данной статье мы рассмотрели преимущества архитектуры «клиент-сервер». Мы узнали, что по сравнению с информационными системами, основанными на настольных СУБД, системы, использующие серверные СУБД, обладают более высокой производительностью, меньшим сетевым трафиком, более совершенными средствами обеспечения безопасности, а также возможностями перенести на сервер баз данных часть кода, связанную с реализацией бизнес-правил и обработкой данных. Кроме того, мы обсудили возможные проблемы, которые могут возникнуть в процессе перехода от настольной СУБД к серверной, а также задачи, стоящие перед разработчиками, осуществляющими такой переход.
Мы также рассмотрели наиболее популярные на сегодняшний день серверные СУБД и признаки, которыми они характеризуются. Как правило, все или почти все данные СУБД:
- реализованы для нескольких платформ;
- обладают удобными административными утилитами;
- позволяют осуществлять резервное копирование данных;
- поддерживают несколько сценариев репликаций;
- поддерживают параллельную обработку данных в многопроцессорных системах;
- поддерживают OLAP и создание хранилищ данных;
- поддерживают выполнение распределенных запросов и транзакций;
- позволяют использовать различные средства проектирования данных для создания своих объектов;
- поддерживают средства разработки и генераторы отчетов как собственного производства, так и других производителей;
- поддерживают как минимум публикацию данных в Internet.
Иными словами, существующие на сегодняшний день возможности наиболее популярных серверных СУБД отражают современные тенденции развития информационных систем, такие как использование многопроцессорных систем и распределенной обработки данных, создание распределенных систем, в том числе с использованием технологий Internet, применение средств быстрой разработки приложений, создание систем поддержки принятия решений с использованием аналитической обработки данных, а также все более повышающиеся требования к надежности и отказоустойчивости информационных систем.
Следующая статья данного цикла будет посвящена различным механизмам доступа к данным, используемым в приложениях.
КомпьютерПресс 5'2000