Oracle и Microsoft SQL Server: прошлое, настоящее и будущее
Некоторые важные особенности Oracle и SQL Server
Настольные и однопользовательские версии
Краткий обзор особенностей СУБД
Службы трансформации данных (DTS)
Не секрет, что Oracle и Microsoft SQL Server, разработанные лидерами мирового рынка программного обеспечения, сегодня являются одними из наиболее широко используемых СУБД. В настоящей статье мы расскажем, как развивались оба этих продукта, прежде чем приобрели особенности, характерные для их последних версий.
Немного истории
Корпорация Oracle была основана в 1977 году (в то время она носила название Software Development Laboratories, а в 1978 году она была переименована в Relational Software, Inc.) как компания, специализирующаяся на создании реляционных СУБД, и предсказать, как она будет развиваться в течение последующих трех десятилетий, было в то время непросто. Нынче Oracle поставляет на мировой рынок огромное количество продуктов, услуг и решений, ее штат насчитывает более 43 тыс. человек, и доход этой компании, превысивший в 2000 году 10 млрд. долл., определяется не только продажами СУБД. На сегодняшний день это вторая по величине доходов компания, специализирующаяся на производстве программного обеспечения.
Корпорация Microsoft также была основана в середине 70-х годов. Ее история хорошо известна, впрочем, как и тот факт, что до 1987 года эта компания не имела никакого отношения к производству серверных СУБД. Сейчас SQL Server — один из сотен продуктов, производимых Microsoft. Штат этой компании насчитывает 32 тысячи человек, а ее доход за 2000 год превысил 22 млрд. долл.
Ниже мы перечислим основные события, относящиеся к развитию СУБД Oracle и Microsoft SQL Server, начиная со времени основания обеих компаний.
1975 — основана компания Microsoft.
1977 — основана компания Software Development Laboratories (ныне — Oracle Corporation).
1978 — Software Development Laboratories переименована в Relational Software, Inc.
1979 — выпущена первая официальная версия СУБД Oracle — V2.
1980 — выпущена версия Oracle 2 для операционной системы VAX/VMS.
1982 — выпущена версия Oracle 3, которая стала первой СУБД, поддерживающей обработку транзакций и способной выполняться на разных платформах, в том числе на мэйнфреймах и мини-ЭВМ.
1983 — Relational Software, Inc. переименована в Oracle Corporation.
1984 — выпущена и перенесена на несколько различных платформ версия Oracle 4.
1986 — выпущена версия Oracle 5, поддерживающая возможности создания приложений в архитектуре «клиент-сервер», распределенную обработку данных, кластеры VAX.
1987 — заключено соглашение между Microsoft и Sybase о лицензировании СУБД Sybase (Sybase DataServer). Oracle становится крупнейшим в мире производителем СУБД.
1988 — выпущена версия Oracle 6, а чуть позже объявлено, что Oracle 6.2 будет поддерживать симметричные кластеры с применением Oracle Parallel Server. Oracle выпустила Unix Relational Financial Applications. В том же году Microsoft и Ashton-Tate анонсировали первую версию Microsoft SQL Server — реляционную СУБД для локальных вычислительных сетей. Новый продукт носил название Ashton-Tate/Microsoft SQL Server и представлял собой версию Sybase DataServer для OS/2. Роль Ashton-Tate заключалась в том, что эта фирма предоставила dBASE IV, используемую для разработки приложений.
1989 — Oracle реализовала поддержку OLTP, продукты фирмы стали доступны в 86 странах мира. В мае этого года увидела свет первая версия Ashton-Tate/Microsoft SQL Server.
1990 — выпущен SQL Server v1.1 с поддержкой как OS/2, так и новой графической оболочки фирмы — Microsoft Windows 3.0.
1991 — Microsoft получила доступ к исходному коду SQL Server и начала работу над новой версией продукта. В мае Microsoft и IBM объявили о завершении совместной работы над OS/2.
1992 — выпущена версия Oracle 7 для Unix. Эта СУБД поддерживала распределенные запросы, удаленное администрирование, осуществляла поддержку различных сетевых протоколов. В этом же году был выпущен SQL Server 4.2 — 16-разрядная СУБД, результат совместной работы Microsoft и Sybase. В этой СУБД были реализованы клиентские библиотеки для MS-DOS, Windows и OS/2, помимо этого в нее впервые были включены средства администрирования с графическим интерфейсом под управлением Windows. Компания Microsoft приняла решение сосредоточиться на развитии версий SQL Server только для Windows NT и остановить развитие версий для Unix. В октябре была выпущена бета-версия SQL Server для Windows NT.
1994 — выпущена версия Oracle 7 для IBM PC (до этого времени компания Oracle не рассматривала данную платформу как серверную, ограничиваясь лишь созданием для нее клиентских частей своих СУБД). В этом же году году закончилось сотрудничество Microsoft и Sybase, и далее эти две компании стали разрабатывать свои серверные СУБД независимо друг от друга. В конце года был выпущен сервер Sybase SQL Server System 10.
1995 — в начале года выпущен Microsoft SQL Server 6.0. Oracle объявила о выпуске Discoverer2000 — набора средств для анализа корпоративных данных.
1996 — выпущен SQL Server 6.5, обладавший встроенной поддержкой Web-приложений, средствами распределенного администрирования, наличием динамических блокировок. Oracle выпустила Oracle 7.3 Universal Server.
1997 — выпущена версия Oracle 8, основными особенностями которой стали более высокая надежность по сравнению с предыдущей версией, а также поддержка большего числа пользователей и больших объемов данных. Выпущены версии Oracle Designer/2000 2.1 и Oracle Developer/2000, которые существенно облегчили создание приложений, работающих с базами данных, а также Oracle Applications for theWeb.
1998 — выпущен Microsoft SQL Server 7.0 с радикально измененной архитектурой. Это была первая версия SQL Server, не содержавшая унаследованного кода, оставшегося со времен сотрудничества с Sybase. Особо стоит отметить появление в этой версии OLAP-служб в составе продукта (до этого серверные OLAP-средства, производимые поставщиками серверных СУБД, включая и Oracle, продавались исключительно как отдельные продукты и относились к категории весьма дорогостоящего программного обеспечения).
1999 — выпущена версия Oracle8i (Oracle 8.1), которая во многом была основана на применении Java: виртуальная Java-машина находится в самой СУБД, на этом же языке написаны клиентские утилиты, инсталлятор, средства администрирования. В конце того же года выпущена вторая версия Oracle 8i (Oracle 8.1.6), поддерживающая XML и содержащая некоторые новшества, связанные с созданием хранилищ данных.
2000 — выпущена третья версия Oracle8i (Oracle 8.1.7), содержащая Java Virtual Machine Accelerator, а также Internet File System (об этой особенности мы расскажем ниже). В этом же году выпущен Microsoft SQL Server 2000, поддерживающий Web-приложения, XML, а также содержащий множество нововведений в административных утилитах.
2001 — анонсирована Oracle9i (возможно, она уже будет выпущена к тому моменту, когда вы будете читать эту статью). Эта СУБД отличается новыми средствами для обеспечения масштабируемости (Oracle9i Real Application Clusters), упрощения администрирования (в частности, для автоматизации конфигурирования серверов, управления ресурсами используемых компьютеров, мониторинга загрузки и производительности), обеспечения безопасности данных, восстановления данных после сбоев (в том числе из-за ошибок персонала), новыми средствами интеграции приложений. Кроме того, в составе СУБД имеется OLAP-сервер (ранее серверные OLAP-средства Oracle, такие как Oracle Express, поставлялись в виде отдельных продуктов, но, похоже, теперь в этом отношении Oracle последовала примеру Microsoft).
Некоторые важные особенности Oracle и SQL Server
А теперь рассмотрим некоторые особенности СУБД обеих фирм, которые, на наш взгляд, наиболее важны при принятии решения о том, какую из СУБД выбрать.
Поддержка различных платформ
Одним из главных событий, определивших дальнейшую судьбу Microsoft SQL Server, стало решение Microsoft сосредоточить усилия исключительно на поддержке только платформы Windows NT. Можно найти немало аргументов, подтверждающих как правильность, так и ошибочность такого решения. В результате его принятия популярность SQL Server определяется в первую очередь популярностью платформы, которую он поддерживает, в данный момент — Windows 2000 и ее будущих потомков. Эта СУБД настолько связана с операционной системой, что ее надежность, масштабируемость и производительность определяются надежностью, масштабируемостью и производительностью самой платформы, и положение SQL Server на рынке будет зависеть от выпуска новых версий Windows.
Подход Oracle к поддержке различных операционных систем радикально отличается от подхода Microsoft — СУБД этой фирмы существуют для огромного количества платформ. Хотя поддержка большого количества платформ (а не нескольких наиболее прибыльных, как это характерно для других производителей СУБД) требует немалых вложений, переход к широкому применению Java, который сейчас происходит в Oracle, позволяет существенно сократить затраты на разработку и поддержку продуктов.
Настольные и однопользовательские версии
Чем шире используются распределенные вычисления, тем более важной оказывается возможность хранить данные где угодно, в частности на рабочей станции или переносном компьютере. Несмотря на утверждения некоторых аналитиков о том, что в эпоху Интернет-приложений настольные СУБД уже не нужны, они по-прежнему широко применяются во всех областях бизнеса.
И Oracle, и Microsoft многое делают для поддержки настольных версий своих СУБД или применения их в указанном режиме. SQL Server можно применять на любых Intel-совместимых компьютерах под управлением Windows 9x, Windows NT, Windows 2000, но SQL Server более не поддерживает компьютеры на базе процессора Alpha (видимо, ввиду ухудшения отношений между Microsoft и Digital Equipment Corporation). Имеется также версия SQL Server 2000 для Windows CE, предназначенная для применения в мобильных устройствах.
Microsoft Data Engine (MSDE) — это продукт фирмы Microsoft, специально предназначенный для настольных приложений. Эта СУБД по существу представляет собой ограниченный вариант SQL Server, который можно применять в Windows 9x, NT, Windows 2000 и администрировать с помощью Microsoft Access. Подобно Access на рынке MSDE позиционируется как однопользовательская СУБД. Отметим также, что Microsoft встроила в этот продукт специальные средства, снижающие его производительность при попытке одновременной работы с ним более пяти пользователей.
Среди продуктов Oracle также имеются две СУБД, позиционируемые в качестве настольных. Продукт Personal Oracle, известный уже много лет, представляет собой однопользовательскую, но полнофункциональную версию Oracle, требующую некоторых навыков администрирования при ее применении. Вторая настольная СУБД этой компании, Oracle Lite, может применяться в качестве однопользовательской СУБД на обычных рабочих станциях, но в действительности она предназначена для применения в мобильных устройствах. В отличие от других СУБД этот продукт поддерживает только язык Java, но не поддерживает PL/SQL (язык, на котором создается серверный код в других СУБД Oracle).
Полная стоимость владения
Когда IT-менеджеры и руководители компаний сравнивают те или иные программные продукты, их всегда интересует такая важная характеристика, как полная стоимость владения (total cost of ownership, TCO). Полная стоимость владения включает не только стоимость приобретения самого продукта и необходимого для его эксплуатации аппаратного обеспечения, но и стоимость сопровождения, технической поддержки, обучения пользователей и технического персонала.
Взгляды Oracle и Microsoft на пути снижения полной стоимости владения их СУБД существенно различаются. Oracle рассматривает этот вопрос с позиции надежности продукта, в то время как Microsoft — с позиции цен на отдельные продукты, дополнительные утилиты, сервисы и услуги. Цена на продукты Oracle обычно намного превышает цены на аналогичные продукты Microsoft, особенно с учетом того, что в составе Microsoft SQL Server имеются утилиты и сервисы, которые при выборе Oracle следует приобретать отдельно (и, разумеется, за дополнительную плату). Считается, что надежность СУБД Oracle может быть выше, нежели надежность SQL Server, особенно при эксплуатации Oracle под управлением операционной системы с высокой надежностью и отказоустойчивостью. На практике вычислить полную стоимость владения тем и другим продуктом можно, только сведения о том, что представляет собой конкретное предприятие, в чем заключается его деятельность и какова его инфраструктура, то есть необходимо всесторонне рассмотреть использование продукта в контексте проекта, в котором он будет применяться.
Инструменты и утилиты
Одним из преимуществ SQL Server является простота его применения, в частности администрирования. SQL Server Enterprise Manager, входящий в состав всех редакций Microsoft SQL Server (за исключением MSDE), представляет собой полнофункциональное и достаточно простое средство для администрирования этой СУБД. Oracle Enterprise Manager во многих отношениях превосходит SQL Server Enterprise Manager по своим возможностям, однако процесс его установки довольно сложен, к тому же, что более существенно, он входит в состав далеко не всех редакций СУБД Oracle, а некоторые его компоненты можно приобрести только как отдельные продукты. Эта ситуация несколько улучшилась с появлением одной из последних версий Oracle Enterprise Manager — DBA Studio для Oracle8i Release 2, то есть версий 8.1.6 и 8.1.7).
Административные утилиты и другие инструменты для ранних версий Oracle обычно производились независимыми компаниями (выпускались как дорогие продукты, так и бесплатные), а основные усилия самой корпорации Oracle были сосредоточены на разработке самой СУБД. Однако сейчас ситуация существенно изменилась, и в настоящее время Oracle поставляет на рынок немалое количество разнообразных инструментов, среди которых помимо средств администрирования имеются средства разработки приложений, проектирования данных, моделирования бизнес-процессов, серверы приложений, корпоративный портал. Впрочем, и в арсенале Microsoft также имеются многие из подобных продуктов, правда, не все они позиционируются как таковые (например, Microsoft Visio Enterprise, обладающий функциональностью средства моделирования бизнес-процессов и проектирования данных, но позиционируемый как средство создания диаграмм).
Производительность
Трудно ответить на вопрос, какая из СУБД обрабатывает запросы быстрее, — слишком многое здесь зависит от того, на каком оборудовании производится тестирование, каков состав выполняемых запросов. По данным Transaction Processing Performance Council (TPC;http://www.tpc.org/), SQL Server сейчас является рекордсменом по производительности, однако и Oracle стабильно входит в пятерку лидеров. Отметим, однако, что подобного рода тесты не могут дать однозначного ответа на вопрос, какая из СУБД будет производительнее при решении конкретной задачи: в одних случаях производительность СУБД Oracle превосходит производительность SQL Server, а в других наоборот. Реально проверить это можно только с помощью тестирования, основанного на запросах, типичных именно для конкретной задачи.
Итак, мы видим, что история развития этих двух СУБД довольно любопытна. Обе компании, начавшие свою деятельность в совершенно разных областях производства программного обеспечения, значительно расширили сферу своего влияния, и в конечном итоге стали производителями двух конкурирующих между собой продуктов, лидирующих на рынке и «обрастающих» все новыми и новыми возможностями по мере выпуска очередных версий. Довольно сложно предсказать, какая СУБД окажется лидером этого рынка через несколько лет. Хотя сейчас имеется огромное количество компаний, использующих Oracle в течение многих лет, не стоит недооценивать возможности Microsoft на этом рынке. Эта компания, как показывает опыт, умеет завоевывать лидирующие позиции на рынке в необычайно короткие сроки.
Краткий обзор особенностей СУБД
Ниже мы кратко рассмотрим особенности последних версий обеих СУБД, как появившиеся недавно, так и унаследованные от прежних версий. В связи с этим следует отметить, что лидерство того или иного продукта, если смотреть на это с точки зрения поддержки тех или иных технологий либо других технологических особенностей, во многом определяется тем, продукт какой фирмы был выпущен последним. Это вполне понятно, поскольку производители программного обеспечения внимательно изучают продукты конкурирующих компаний и нередко заимствуют друг у друга какие-либо идеи. Поэтому говорить о стабильном лидерстве в этой области довольно сложно.
Oracle8i и Oracle9i
Последние три вышедшие на момент написания данной статьи версии Oracle носят общее официальное название — Oracle8i (в маркетинге они позиционируются как СУБД для Internet). Oracle8i Release 1 (версия 8.1.5) была выпущена в 1999 году, Release 2 — в начале 2000-го, Release 3 — в конце прошлого года. Их предшественница, Oracle8, была выпущена в 1998 году, но в мире до сих пор имеется немало пользователей Oracle7: многим из них просто не нужна поддержка больших баз данных и объектных типов, отличающая Oracle8 от Oracle7, равно как и новшества, появившиеся в Oracle8i.
Ниже перечислены основные особенности последних версий Oracle.
Поддержка Internet
- Для поддержки Internet в Oracle8i существенно расширено применение языка Java. В частности, в состав серверной части этой СУБД входит виртуальная Java-машина, в дополнение к имевшимся ранее средствам выполнения кода на языках SQL и PL/SQL.
- Создан Oracle Portal — инструмент для создания корпоративных решений и интеграции корпоративных приложений на базе Web-технологий.
- Созданы средства поддержки мультимедиа-контента в базе данных Oracle — Oracle8i interMedia, которые можно с успехом применять как в обычных приложениях, так и в Internet-приложениях.
- В Oracle8i впервые появилась Internet File System (iFS) — Java-приложение, выполняющееся внутри виртуальной Java-машины Oracle8i и позволяющее пользователям обращаться с базой данных как с сетевым диском. Вследствие этого в Oracle8i можно теперь хранить данные практически любых типов.
- В Oracle8i Release 2 (8.1.6) появилась поддержка XML как средства интеграции данных и реализации транзакций в приложениях business-to-business (B2B).
- В Oracle9i, выпуск которой ожидается в этом году, должны присутствовать средства интеграции SQL, XML и Java, а также средства интеграции приложений Oracle9i Dynamic Services, представляющие собой инструменты и утилиты для создания сервисов на базе уже существующих приложений.
Администрирование
- Oracle Enterprise Manager в последних версиях Oracle8i содержит разделяемый репозитарий, который позволяет координировать доступ пользователей к данным, хранящимся в различных серверах Oracle, с помощью Oracle Management Server — компонента среднего звена, предназначенного для централизации управления доступом клиентов к серверам.
- Oracle 8i поддерживает индексы, основанные на функциях и выражениях (эта полезная особенность существовала когда-то в dBASE и его клонах и позже была благополучно забыта производителями серверных СУБД; поистине, новое — это хорошо забытое старое). Кроме того, в этой СУБД можно строить индексы в порядке не возрастания, а убывания, и, что более существенно, для создания индексов в этой версии Oracle не требуется полная блокировка таблицы.
- Oracle8i позволяет модифицировать план выполнения SQL-запроса и сохранить его в базе данных, что во многих случаях оказывается весьма полезным.
- В Oracle8i появилась возможность создавать табличные пространства, управляемые локально, а также создавать переносимые табличные пространства, что позволяет переносить данные с одного сервера на другой без применения экспорта и импорта данных.
- Имеется также возможность копировать статистику из одной базы данных в другую, что бывает полезно при тестировании приложений.
- В Oracle9i много сделано для упрощения администрирования. Новый продукт будет содержать средства автоматизации конфигурирования серверов, утилиты для управления ресурсами используемых компьютеров, а также мониторинга загрузки и производительности.
Разработка приложений
- Последние версии Oracle содержат объектные расширения (в частности, объектно-ориентированные типы данных и соответствующие расширения SQL), причем эти расширения входят в состав продукта.
- В Oracle8i и Oracle9i входят средства интеграции со средствами разработки Microsoft, включая Visual Studio Application Wizard, поддержку COM/DCOM и MTS/COM+, а также OLEDB-провайдер для доступа к данным этой СУБД.
Безопасность данных
- В Oracle8i впервые была применена концепция Virtual Private Database для упрощения управления доступом: теперь средства защиты данных встроены в саму базу данных, а не в приложения.
- В средства Oracle Advanced Security (известные ранее как Advanced Networking Option) добавлены поддержка протоколов Secure Socket Layer (SSL) и Remote Authentication Dial-In User Service (RADIUS). Это сделано с целью поддержки безопасности транзакций, проводимых через Internet.
Прочее
- Последние версии Oracle поддерживают управление базами данных большого объема. Для этой цели в сервере имеется поддержка так называемых материализованных представлений (materialized views).
- С целью обеспечения масштабируемости поддерживается не только параллельная обработка данных, но и параллельное сопровождение и обслуживание баз данных.
- Для обеспечения надежности и доступности в последних версиях Oracle имеются средства восстановления после сбоев (а в версии Oracle9i — также и после сбоев, вызванных ошибками персонала или пользователей).
- В состав Oracle9i войдет OLAP-сервер, ранее поставлявшийся как отдельный продукт.
Microsoft SQL Server 2000
Версия Microsoft SQL Server 2000 построена на основе ядра Microsoft SQL Server 7.0. Ее отличительными особенностями являются повышенная масштабируемость, производительность и интеграция с Internet. Ниже мы рассмотрим некоторые нововведения, появившиеся в данной версии (более подробно о нововведениях в SQL Server 2000 можно прочесть в статьях «Microsoft SQL Server 2000. Краткий обзор новинок» и «Microsoft SQL Server 2000 Analysis Services», КомпьютерПресс № 9’2000).
Сервер баз данных
- SQL Server 2000 позволяет использовать на одном компьютере несколько одновременно работающих серверов. Помимо этого можно использовать несколько SQL Server 2000 и один SQL Server 7.0.
- В версии SQL Server 2000 появилась поддержка пользовательских функций, которые можно создавать средствами языка Transact SQL. Помимо скалярных значений такие функции могут возвращать и таблицы.
- В рамках поддержки ссылочной целостности, в SQL Server 2000 реализованы каскадные удаления и обновления (CASCADE DELETE, CASCADE UPDATE).
- Добавлена поддержка языка XML, включая ключевое слово FOR XML для извлечения данных в виде XML-потоков (более подробно об этом см. в статье «Microsoft SQL Server 2000: поддержка XML», КомпьютерПресс № 6’2001).
- Для повышения производительности теперь можно создавать индексы для представлений (Indexed Views).
- В этой версии SQL Server поддерживается создание индексов в убывающем порядке.
- Улучшенная поддержка распределенных запросов через интерфейс OLE DB позволяет использовать статистику с удаленного сервера для построения более эффективных планов выполнения (execution plans).
Утилиты
- Появилась возможность присоединять и отсоединять базы данных прямо из Enterprise Manager.
- Стало возможным перемещение протоколов транзакций с одного сервера на другой в целях полной поддержки отсоединенных баз данных (standby databases).
- Интерфейсные улучшения в Query Analyzer включают Object Browser — средство для поиска объектов баз данных и шаблоны для построения запросов.
- Добавлено множество опций для автоматического запуска и остановки трассировки, включая опцию для задания максимального размера файла трассировки.
Репликация
- Реализована поддержка изменений в схеме базы данных без повторного создания публикаций и подписчиков.
- Расширены возможности фильтрации публикуемых данных, появилась возможность трансформации публикуемых данных с применением сервисов трансформации данных (Data Transformation Services).
- В SQL Server 2000 поддерживается возможность задания альтернативных публикаторов информации, что позволяет синхронизировать данные даже в тех случаях, когда первичный публикатор недоступен.
Службы трансформации данных (DTS)
- В программной модели DTS реализованы новые функции и объекты.
- Информация вроде идентификатора пользователя, пароля и даже источника данных может быть определена в процессе выполнения — это возможно благодаря использованию файлов связи данных (data link files).
- SQL Server 2000 позволяет создавать и распространять DTS-шаблоны, на основе которых можно создавать различные DTS-задачи.
Средства анализа данных
Как мы уже отмечали, в Microsoft SQL Server 7 были впервые включены средства анализа данных (OLAP) в качестве компонента сервера. В SQL Server 2000 эти средства получили дальнейшее развитие: компонент Analysis Services включает как средства анализа данных, так и средства поиска закономерностей (Data Mining).
Среди основных новшеств в средствах анализа данных можно отметить следующие:
- новые типы кубов и расширения функциональности кубов;
- новые типы измерений и типов иерархий;
- средства Data Mining интегрированы непосредственно в аналитические средства и могут использоваться как для поиска информации в OLAP-кубах, так и в реляционных базах данных;
- возможность построения MDX-запросов с помощью MDX Builder, расширенные MDX-функции, редактор виртуальных кубов, поддержка Active Directory и т.д. (более подробно см. в статье «Microsoft SQL Server 2000 Analysis Services», КомпьютерПресс № 9’2000).
Заключение
В данной статье мы рассмотрели историю развития двух лидирующих СУБД и ознакомились с основными характеристиками новейших версий. Мы рассказали вам, как постепенно каждый продукт, начавшись с небольшого, но амбициозного проекта, превращался в то, с чем пользователи имеют дело сегодня. Основные функции в последних версиях продуктов еще раз подтверждают тот факт, что и Oracle, и Microsoft продолжают развивать свои продукты, стараясь удовлетворить возрастающие требования потребителей.
КомпьютерПресс 7'2001