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

Особый интерес на этом фоне представляет новая СУБД корпорации Microsoft - SQL Server 2000, известная также под кодовым названием Shiloh. С самого начала SQL Server 2000 разрабатывалась в качестве составной части Windows 2000 DNA, анонсированной как многофункциональная интегрированная платформа для разработки и эксплуатации распределенных Web-приложений и Web-сервисов нового поколения. В основе новой версии СУБД лежит хорошо зарекомендовавшее себя ядро SQL Server 7.0, существенно переработанное для удовлетворения растущих аппетитов разработчиков ПО для Интернета.

Уже в SQL Server 7.0 были сделаны попытки интеграции баз данных с Web-приложениями. Однако сколь-нибудь существенно дальше генерации статических страниц на основе результата выборки из таблиц дело не продвинулось.

Поддержка XML на уровне СУБД

Одним из наиболее интересных нововведений в SQL Server 2000 является поддержка языка XML на уровне самой СУБД. Технология XML значительно снижает стоимость создания завершенных систем и упрощает передачу данных через межсетевые экраны. Механизмы XML доступны как разработчикам Web, так и программистам баз данных. Один из примеров поддержки XML - добавление конструкции FOR XML в тело команды SELECT, при использовании которой сервер автоматически преобразует данные, полученные в результате выборки, в формат документа XML. Это позволяет выкладывать их непосредственно в Web, не прибегая к дополнительной обработке.

Пример использования XML SQL-запроса к СУБД из окна Web-браузера

Форма генерируемого XLM-документа зависит от используемого режима, указываемого непосредственно после FOR XML. Поддерживаются три режима - RAW (плоский текст), AUTO (многоуровневое дерево XML) и EXPLICIT (произвольная комбинация двух предыдущих). Используя XML-документ, можно легко изменять исходные данные. Для реализации этой возможности в Transact-SQL была добавлена команда OPENXML, с помощью которой и происходит просмотр связанных таблиц и их обновление. Кроме того, обеспечивается доступ к данным через URL.

Например, для выборки данных из колонок au_id и au_lname таблицы authors базы данных pubs, результат которой приведен на рисунке, достаточно в окне Web-браузера ввести следующую строку: http://localhost/Pubs?sql=SELECT+au_id,au_lname+FROM+authors+FOR+XML+AUTO.

Помимо простого вывода данных на экран браузера с помощью XML несложно нарисовать произвольное векторное изображение, что открывает простор для внедрения деловой графики. Более подробную информацию о возможностях и использовании XML можно найти по адресу: http://msdn.microsoft.com/library/periodic/period00/sql.htm.

Другим важным усовершенствованием в новой СУБД является возможность объединения с помощью Web существующих многомерных кубов OLAP, что значительно упрощает анализ бизнес-информации. Интеграция SQL Server 2000 с Commerce Server 2000 обеспечивает простые в использовании средства анализа информации, генерируемой пользователями при посещении Web-сайтов. В процессор запросов внесены значительные улучшения, которые, в частности, позволили создавать распределенные разделяемые представления (distributed partitioned views) с возможностью обновления.

Развитие системы безопасности

Активное использование SQL Server 2000 в электронной коммерции и Web предполагает рост требований к системе безопасности. Понимая это, разработчики Microsoft приложили немало усилий для повышения надежности защиты информации. В руках администратора появилась более гибкая и мощная система безопасности на основе ролей, определяющих права доступа к серверу, базе данных и приложениям. Кроме того, существенно усилены средства аудита - появилась возможность отслеживания 18 типов классов, связанных с безопасностью, и дополнительных подклассов. Теперь администратор может отслеживать не только успешные или неудачные попытки установления соединения с SQL Server, но и более детально - доступ к объектам, их создание и удаление, изменение прав доступа и т. д. В SQL Server 7.0 отслеживание этих событий происходило лишь при выполнении трассировки с помощью утилиты SQL Server Profiler или соответствующих хранимых процедур команд, выполняемых в пользовательских сессиях.

Шифрование в SQL Server 2000 поддерживается и на уровне сетевого трафика, и на уровне файлов баз данных, что является серьезным улучшением. В SQL Server 7.0 существовала возможность непосредственного просмотра файлов БД и беспрепятственного использования нелегально скопированных баз данных. Шифрование же на уровне файлов дополнительно повышает безопасность информации. Для обеспечения безопасности сетевых соединений служат протоколы SSL и Kerberos. Кроме того, СУБД SQL Server 2000 представлена на сертификацию по уровню безопасности C2. Ожидается, что к моменту поступления в продажу ее сертификация будет успешно завершена.

Полнотекстовый поиск в информационных хранилищах

Одно из важных направлений работы с информационными хранилищами, активно развиваемое Microsoft, - полнотекстовый поиск нужной информации среди огромного объема данных *1. Значительная часть электронной информации Интернета хранится в виде неструктурированных текстовых файлов и отформатированных документов. В корпорациях большая часть данных хранится в отдельных файлах на жестких дисках пользователей. К недостаткам этого подхода относятся сложность поиска документов в масштабе предприятия и трудности с оперативным обменом информацией между множеством пользователей. В составе SQL Server 2000 имеется служба Full-Text Search, предоставляющая эффективные механизмы поиска, поэтому SQL Server 2000 можно с успехом использовать для хранения документов различных типов. Пользователи могут выполнять поиск не только в обычном тексте, но и в отформатированных материалах, сохраненных в полях BLOB. В распоряжении разработчиков имеются высокоэффективные интерфейсы доступа к информации, обеспечивающие быстрый поиск нужных данных. Кроме того, повышена безопасность удаленного доступа. Механизмы полнотекстового поиска в SQL Server 2000 подверглись серьезной переработке по сравнению с предыдущей версией. Full-Text Search стал неотъемлемой частью SQL Server и устанавливается по умолчанию. Индексирование отформатированных документов выполняется с помощью специальных фильтров спецификации IFilter, которые в соответствии с форматом документа производят выборку слов, отсеивая служебную и несущественную информацию. Сразу после установки пользователи получают доступ к фильтрам для HTML-файлов, текстовых файлов и документов Microsoft Office. Возможно создавать и использовать и собственные фильтры.

_____

*1. Очевидно, только англоязычный. - прим. ред.

В отличие от SQL Server 7.0, требовавшего принудительного обновления полнотекстовых каталогов, в SQL Server 2000 их обновление при изменении данных можно выполнять в автоматическом режиме, хотя не исключается и принудительное обновление с помощью агента управления SQL Server Agent. Полнотекстовые запросы встроены в Transact-SQL, что позволяет в обычном запросе комбинировать стандартные средства поиска и полнотекстовые запросы. В одном запросе можно выполнять поиск по всем индексированным столбцам таблицы, допускается также ограничение поиска первыми N совпадениями. Помимо прочего полнотекстовые индексы теперь поддерживают многоязычный поиск и могут использоваться любым узлом кластера.

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

Масштабируемость и поддержка кластеров

Новая версия SQL Server гарантирует высокую масштабируемость и надежность. SQL Server 2000 Enterprise Edition при работе под управлением Windows 2000 Data Center обеспечивает поддержку до 32 процессоров при объеме оперативной памяти до 64 Гб и возможность работы в составе четырехузловых отказоустойчивых кластеров.

Скорость обмена данными между серверами кластера увеличена за счет встроенной поддержки технологии SAN (system area network). Упростилось и управление узлами кластера. Теперь эту операцию можно выполнять непосредственно с помощью Enterprise Manager, не прибегая к использованию специального мастера. Администратор может повторно инсталлировать или перестроить отдельный узел кластера, не затрагивая другие серверы. Кластер SQL Server 2000 поддерживает репликацию и работу приложений, зависящих от имени сервера.

Одно из основных требований, которые Microsoft предъявляет к своим продуктам, - снижение стоимости владения и сопровождения системы. Применительно к SQL Server это касается процедуры динамической конфигурации сервера. В SQL Server 2000 некоторые статически определенные в предыдущей версии параметры конфигурации дополнены динамическими алгоритмами, позволяющими снизить затраты на администрирование и призванными обеспечить оптимизацию работы системы в целом. Эти алгоритмы дают возможность более эффективно использовать аппаратные ресурсы компьютера - большие объемы оперативной памяти, высокопроизводительные дисковые подсистемы, SAN и т. д., что обеспечивает хорошую масштабируемость.

Подобно всем новым продуктам Microsoft, в SQL Server 2000 активно применяются встроенные в Windows 2000 средства службы каталогов Active Directory, благодаря чему повышается управляемость серверами в масштабах предприятия. Active Directory используется как единое хранилище информации о конфигурации баз данных и ее местонахождении в сети. Информация о SQL Server и базах данных автоматически регистрируется в Active Directory при старте сервера. Это позволяет создавать эффективные распределенные приложения, которые, независимо от их местонахождения в сети, легко подключаются к базе данных. Такое подключение доступно даже в случае изменения имени базы данных или при ее переносе на другой сервер.

Централизованное хранение информации о самом сервере снижает затраты на администрирование баз данных. Администраторы могут без каких-либо затруднений получать информацию о новых базах данных и кубов OLAP, созданных пользователями, об установленном программном обеспечении, а также отыскивать данные, доступные для репликации, не используя при этом имен серверов и баз данных.

Усовершенствование средств архивирования

СУБД SQL Server 2000 внесла ряд изменений в систему резервного копирования. Реализована технология “легких” моментальных снимков (server-less snapshot), позволяющая создавать резервные копии баз данных без значительной загрузки сервера. В основе технологии лежит использование приложениями интерфейса виртуальных устройств (Virtual Device Interface, VDI), с помощью которого можно обращаться к системе хранения, поддерживающей разделяемые зеркальные разделы или операции “копия - запись”. Наиболее часто технология создания “легких” моментальных снимков находит применение в системах с тройными зеркальными разделами. Приложение, поддерживающее VDI, может отключить одно из зеркал и создать резервную копию или предоставить отключенный раздел другим приложениям. Такой подход весьма эффективен, когда приходится прибегать к помощи резервных (standby) серверов, так как отключенный раздел может быть легко использован резервным сервером. Отключенный раздел можно использовать для генерации отчетов на другом сервере или проведения экспериментов, не затрагивающих основные данные.

Новые функции программирования и отладки

Позитивные изменения коснулись и сферы программирования. SQL Server 2000 разрешает создавать пользовательские функции, не ограничиваясь одними лишь хранимыми процедурами, как это было в предыдущих версиях. Процедура создания этих функций и механизм назначения прав доступа аналогичны хранимым процедурам. В распоряжении разработчиков появились три новых типа данных:

- Bigint - “большой” integer размером 8 байт, обеспечивающий хранение целочисленных значений.

- Sql_variant - принципиально новый тип данных, обеспечивающий совместное хранение данных любого простого типа: целочисленных, дробных, символьных и т. д.

- Table - этот тип данных предназначен для временного хранения сложных наборов данных. В SQL Server 2000 поддерживаются переменные типа table. Пользовательские функции также могут возвращать значения типа table, что открывает широкие возможности для разработчиков.

Существенной переработке подвергся и популярный диалог SQL-запросов Query Analyzer. Теперь разработчики могут выполнять трассировку хранимых процедур с использованием всех стандартных операций: установка контрольных точек (breakpoint), просмотр значений переменных, пошаговое исполнение хранимых процедур и т. д. Кроме того, Query Analyzer оснащен браузером объектов и дополнительными шаблонами, что делает его мощным инструментом создания SQL-запросов как для начинающих пользователей, так и для опытных администраторов баз данных.

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

В плане производительности внедрение SQL Server 2000 также сулит заманчивые перспективы. 23 февраля Microsoft объявила об абсолютном мировом рекорде SQL Server 2000 при проведении теста TPC-C - 227 029 транзакций в минуту. По этому показателю новая СУБД практически в два раза опередила своего ближайшего конкурента. Кроме того, был достигнут лучший результат среди СУБД, работающих на платформе Windows, в тесте “SAP R/3 Sales and Distribution (SD) 4.0 B”. Установлены мировые рекорды в эталонном тесте TPC-H и эталонном тесте для систем CRM. Мировые рекорды для всех платформ установлены для тестов PeopleSoft HRMS и PeopleSoft Financials (http://www.microsoft.com/rus/general/press/2000/february/new_world_record.htm).

Все это позволяет говорить об отличных перспективах SQL Server 2000. Низкая суммарная стоимость владения системой наряду с ее широкими возможностями привлечет внимание многих ИТ-специалистов. Информация о SQL Server доступна на сайте Microsoft по адресу: http://www.microsoft.com/sql.

С Евгением Мамаевым, автором книги “SQL Server 7.0. Для профессионалов”, системным инженером Microsoft (MCSE+I и MCDBA), можно связаться по адресу: emamaev@khakasnet.ru. В настоящее время он работает над книгой, посвященной SQL Server 2000.