Access 2000, занимает промежуточное положение между SQL Server и Jet как по размеру, так и по своим возможностям. Первоначально MSDE появился в период бета-тестирования Office 2000, но вскоре во время Tech Ed 99 корпорация Microsoft объявила о его доступности для разработчиков Visual Studio 6.0. Разработчики вправе распространять решения, базирующиеся на MSDE, без каких-либо авторских отчислений. В данной статье рассказывается о том, какое место MSDE занимает в ряду других процессоров данных корпорации Microsoft, и как он с ними взаимодействует.

Обзор технологии MSDE

Microsoft расценивает MSDE скорее как технологию, а не как продукт. С Microsoft Office 2000 поставляются две версии: одна обеспечивает пользовательский интерфейс для работы из проектов Access, а другая, предназначенная для повторной дистрибуции, помогает в распространении пользовательских решений, базирующихся на технологии MSDE. Интерфейс разработки с MSDE в Visual Studio 6.0 выглядит совершенно иначе, чем в Office 2000. Кроме того, Visual Studio позволяет с помощью повторно дистрибутивной версии внедрять клиентские решения, основанные на применении MSDE. Помимо этого, корпорация Microsoft выпустила пакет отладочных утилит Service Pack 1 (SP1) для SQL Server 7.0 и MSDE 1.0. Он снимает множество проблем, связанных с работой ядра баз данных, включая и услуги OLAP, вошедшие в новую концепцию применения MSDE в составе Office 2000 и Visual Studio. ( Для более детального знакомства с возможностями отладки с помощью SP1 читайте статью Андрея Крючкова "Пакет утилит Service Pack 1 для SQL Server 7.0" в августовском номере журнала за 1999.) Хотя с технической точки зрения это и не является совершенно новой реализацией, тем не менее этот пакет утилит существенно улучшает работу MSDE.

Все версии Office 2000, начиная с предназначенной для профессионального применения Professional Edition, содержат версию MSDE, созданную для работы с проектами Access, и пригодную как для разработки, так и для распространения пользовательских решений по работе с базами данных. Интерфейс быстрой разработки приложений для проектов Access напоминает интерфейс для работы с файлами .mdb. Присущие профессиональной версии административные возможности резервирования и восстановления баз данных, а также средства обеспечения их безопасности очень хорошо приспособлены для проектирования приложений.

Для того чтобы можно было разрабатывать и использовать подобные решения, на рабочих станциях клиентов должна быть установлена профессиональная версия Office 2000 (Professional Edition) и должно быть обеспечено соединение с сервером MSDE, который может находиться или на той же рабочей станции, или может быть доступен через локальную сеть. Базу данных следует установить на сервере, который поддерживает пользовательские приложения.

Доступ к повторно дистрибутивной версии MSDE может осуществляться исключительно через версию Office 2000 для разработчиков, которая сокращенно называется MOD (Microsoft Office Developer Edition). Эта версия предоставляет право пользователям без каких-либо авторских отчислений поставлять MSDE в качестве составной части решения, созданного клиентом. Повторно дистрибутивная версия MSDE не привязана к интерфейсу Access Projects. Разработчики свободны в выборе интерфейса ее представления пользователям, они определяют его с помощью своих собственных форм. Процедура установки этой версии нисколько не похожа на аналогичную процедуру для той версии, которая привязана к интерфейсу Access Projects.

В состав MSDE для Visual Studio 6.0 входят три продукта: версия SQL Server 7.0 для разработчиков (Developer Edition), повторно дистрибутивная версия MSDE и пакет Windows NT SP4. Процессор данных MSDE может работать без каких-либо добавлений на компьютерах с операционными системами класса Windows 9x, но для нормальной работы под управлением NT ему необходим пакет SP4 (или более поздние версии). Компоненты MSDE не поставляются совместно с Visual Studio 6.0 (или с автономными версиями составляющих его продуктов, таких как профессиональный вариант Visual C++). Версия SQL Server 7.0 для разработчиков (Developer Edition) предоставляет пользователям интерфейс ENterprise Manager для администрирования баз данных и создания объектов баз данных. Однако лицензия на этот продукт не разрешает распространять его в составе пользовательских решений. Пакет Visual Studio и Мастер внедрения (Deployment Wizard) поддерживают распространение повторно дистрибутивной версии MSDE.

Пакет SQL Server 7.0 SP1 работает как с SQL Server 7.0, так и с MSDE 1.0. Он содержит 56 утилит, связанных с некоторыми изменениями функционирования ядра процессора баз данных и с введением новых услуг OLAP. Программа установки пакета утилит автоматически определяет, что именно работает на данном компьютере,MSDE или SQL Server, и исходя из этого выбирает соответствующие конфигурации утилиты.

Сравнение MSDE с SQL Server и Jet

В таблице 1 приведены сравнительные характеристики процессоров данных MSDE, Jet и SQL Server, характеризующие масштабируемость, стоимость и простоту использования. Разумеется, эти три процессора данных отличаются друг от друга по множеству других параметров, которые здесь не рассматривались.

Во многих отношениях MSDE может заменить Jet. (Примером обратной ситуации, когда такая замена невозможна, является использование недостаточно мощного компьютера, поскольку MSDE предъявляет более высокие требования к системным ресурсам. Кроме того, у поставляемой с Access 2000 версии Jet 4.0 лучше обратная совместимость, чем у MSDE.) Особенно заметно MSDE и Jet различаются по следующим четырем параметрам. Во-первых, MSDE устраняет необходимость применения Access Upsizing Wizard для перевода клиентских приложений на SQL Server. Базы данных MSDE сами по себе уже полностью совместимы с технологиями SQL Server. Во-вторых, MSDE поддерживает интегрированную систему безопасности NT и Windows 2000 (Win2K), в то время как Jet использует только проверку пароля, то есть реализует минимальную минимальную защиту - на уровне пользователя. В-третьих, MSDE можно масштабировать до конфигурации с двумя параллельно работающими процессорами для компьютеров под управлением NT и Win2K. Однако Jet не допускает использование на сервере нескольких процессоров. В четвертых, MSDE представляет собой базу данных, отвечающую архитектуре клиент/сервер, и обладает настоящим процессором данных. А Jet все же является файловой базой данных без такого процессора.

Для полноты картины при выборе базы данных для проекта следует также сравнить MSDE с SQL Server. Стоит остановиться на двух параметрах, оказывающих влияние на стоимость развертывания разрабатываемого решения. Это потребность в лицензии на доступ пользователей, Client Access License (CAL), а также любые отчисления, связанные с сервером. Лицензия CAL необходима только в тех случаях, когда пользователи будут либо непосредственно обращаться к SQL Server, либо через MSDE. Следует отметить, что SQL Server предлагает гораздо больщие возможности масштабирования: он способен работать с конфигурациями компьютеров, включающими до 32 процессоров. Размер обслуживаемых им баз данных может достигать нескольких терабайтов. У MSDE и уJet имеется одинаковое ограничение на размер файла базы данных, составляющее 2 Гб, кроме того, MSDE в состоянии обеспечить существенно меньшую масштабируемость, чем SQL Server .

Установка, настройка, функционирование и развертывание

Рабработчикам, использующим как Office, так и Visual Studio, доступны обе версии MSDE - для разработчиков и повторно дистрибутивная. Программисты, работающие в среде Office, могут развертывать решения, основанные на обеих версиях (конечно, если для их рабочих станций имеются лицензии уровня Professional Office или более высокого). Поскольку многие организации закупают Office для использования практически всеми сотрудниками, то Office может применяться и в клиентских частях прикладных систем. Microsoft рекомендует проектировщикам, работающим в среде Visual Studio, ориентироваться на применение SQL Server 7.0 для разработчиков (Developer Edition) с тем, чтобы затем развертывать создаваемые системы с помощью повторно дистрибутивной версии MSDE.

Нельзя установить MSDE с помощью стандартной программы установки Office. Установка производится посредством специальных дополнительных программ для Access Projects путем запуска утилиты setupsql.exe, размещенной в директории \SQL\X86\SETUP на первом инсталляционном компакт-диске Office. Эта программа производит установку MSDE на компьютерах с операционными системами Windows 9x, NT и Win2K. Однако имеются нгезначительные различия в установке на компьютерах, управляемых NT, и другими операционными системами. NT SP4 не поставляется вместе с Office 2000, но можно загрузить пакет SP4 с сайта http://support.microsoft.com/Support/NTServer/TSE/ServicePacks/Default.asp и применить его к NT до начала установки MSDE. После завершения установки на компьютеры под управлением NT или Win2K, MSDE стартует автоматически в качестве службы компьютера. На машинах с Win9x первый раз необходимо вручную запустить эту службу. По завершении первоначального запуска MSDE на компьютере под управлением Win2K, для того чтобы обеспечить автоматический запуск MSDE при каждом новом запуске компьютера, следует применить менеджер услуг SQL Server, Service Manager, который поставляется вместе с MSDE. Кроме того, придется обновить сетевую библиотеку для подключения MSDE, когда MSDE работает под управлением Win9x. По умолчанию используется протокол Named Pipes, но Win9x не поддерживает такую возможность. Поэтому при помощи клиентской сетевой утилиты Client Network Utility следует обновить в библиотеке протокол соединения наTCP/IP или другой протокол, принятый в вашей сети. Откройте эту утилиту, воспользовавшись стартовым меню MSDE или SQL Server.

Можно установить повторно дистрибутивную версию MSDE и для разработки, однако это будет не идеальным решением, поскольку не обеспечит интерфейс Access Project. Интерфейс Access Project напоминает традиционное окно базы данных Access. Он в состоянии существенно снизить время разработки решений для клиентов. Вы сможете развернуть то решение, которое строите с использованием Access Project, на другие рабочие станции с установленными Access Projects. Прежде всего, следует присоединить клиентскую базу данных к серверу, так что клиенты получат к ней доступ. После этого следует распространить файл (.adp), в котором содержится Access Projects, на рабочие станции клиентов.

В тех случаях, когда происходит разработка коммерческих продуктов при помощи Access, или производится развертывание решений на рабочие станции, где не установлены Access Projects, предпочтительнее применять повторно дистрибутивную версию MSDE. Для создания клиентского приложения по такому сценарию необходимо использовать MOD, поскольку в него входит и лицензия на применение как повторно дистрибутивной версии MSDE, так и Мастера упаковки и развертывания (Package and Deployment Wizard). Последний понадобится для подготовки разработанного вами решения к автоматической установке конечными пользователями. При развертывании решений с применением повторно дистрибутивной версии MSDE разработчикам, использующим среду Office, придется сначала установить MSDE на клиентских рабочих станциях, затем стартовать MSDE, после чего загрузить в MSDE базу данных клиентов.

Повторно дистрибутивная версия MSDE устанавливается с помощью программы msdex86.exe (доступной на компакт-диске MOD). Как правило, эта программа выполняется молча и требует только файла инициализации установки (.iss). Этот файл определяет возможности, которые следует задать при установке MSDE или SQL Server. Для запуска MSDE и загрузки в него базы данных на рабочей станции можно прибегнуть к распределенным объектам управления, (SQL-Distributed Management Objects, SQL-DMO). О том, как произвести такую установку, рассказано в специальной статье, подготовленной сотрудниками корпорации Microsoft. Статья расположена в сети по адресу http://msdn.microsoft.com/library/msdedeploy.htm .

Поставка MSDE для пакета Visual Studio 6.0 включает повторно дистрибутивную версию MSDE, предназначенную для процессоров Alpha (msdealpha.exe), а также версию для процессоров Intel (msdex86.exe). (В ноябрьском выпуске журнала за 1999 год помещена статья Майкла Оути "От альфы до омеги". В ней содержится информация о том, каким образом Microsoft поддерживает работу микросхемы Alpha.) Версия MSDE для Visual Studio поставляется с принятой по умолчанию версией файла инициализации установки.

Процедуры миграции от MSDE к SQL Server

Ключом к миграции решений на базе MSDE из окружения разработки в производственную среду на машины, на которых установлены процессоры данных SQL Server или с MSDE, является программирование объектов SQL-DMO. Объекты SQL-DMO позволяют присоединить файл базы данных к серверу, в качестве которого может выступать и процессор данных MSDE. Модель объектов SQL-DMO дает возможность разработчикам программным путем выполнять администрирование SQL Server или MSDE. Эта объектная модель обладает огромной мощью: программисты корпорации Microsoft построили такой известный продукт как ENterprise Manager, программируя объекты SQL-DMO.

Развертывание созданных клиентами решений и перенос их из окружения разработки в производственную среду часто предполагает отсоединение базы данных MSDE и последующее подсоединение ее к другому процессору данных MSDE или SQL Server. Одним из преимуществ использования программирования объектов SQL-DMO является то, что для выполнения переноса данных не придется останавливать работу серверов.

В листинге 1 приведен текст процедур отсоединения базы данных от MSDE. Для того чтобы можно было запустить вторую процедуру, необходимо установить ссылку вашего модуля на объектную библиотеку Microsoft SQL-DMO Object Library. Для создания ссылки последовательно выберите пункты Инструменты (Tools), Ссылки (References) из меню пункта Файл любого приложения Office, включая проекты Access. Первая процедура передает имя базы данных в другую базу. Вторая процедура, detachMyDB, освобождает файл базы данных (.mdf), так что теперь его можно будет присоединитьк другому серверу .

Процедура отсоединения базы данных очень проста. Она начинается с того, что указатель oSvr устанавливается в положение MSDE. Приведенный в примере код создает соединение с местным экземпляром MSDE. Если используется местное имя сервера, то процедура предполагает, что MSDE размещен на той же рабочей станции, где запущена данная процедура. В противном случае следует указать имя удаленного сервера. Не забывайте, что вход в систему должен быть произведен лицом, обладающим достаточными полномочиями для отсоединения базы данных от сервера. После установки указателя в положения MSDE и соединения с ним процедура инициирует метод Отсоединить базу данных (DetachDB). Этот метод освобождает файл базы данных от текущего сервера. Обратная связь с пользователем осуществляется с помощью окна, в котором появляется сообщение о результатах завершения попытки отсоединить базу данных от сервера. В завершение процедура отключается от сервера и освобождает ресурсы указателя сервера.

В листинге "Процедуры подключения баз данных к серверу" показана вторая пара процедур, которые присоединяют отсоединенные ранее файлы базы данных к другому серверу (MSDE или SQL Server). Эти процедуры можно загрузить из сети, они находятся вместе с оригиналом данной статьи (ID 7840) по адресу http://www.sqlmag.com.Первая процедура передает путь к исходному MSDE, а также имена файла базы данных и файла ее журнала. Вторая процедура принимает информацию и выполняет две важные задачи. Во-первых, она использует объект файловой системы (File System Object) из библиотеки Microsoft Scripting Runtime для копирования отсоединенного файла из старого сервера в текущий местный сервер. (Обновите записи с указанием путей и имен серверов, чтобы они отражали действительное состояние вычислительной среды). Метод Копировать файл (CopyFile) объекта Файловая система (File System Object) выдаст отрицательный результат, если все еще существует файл журнала пердыдущей версии. Поэтому процедура проверяет наличие такого файла, и если он будет найден, то процедура удалит его.

Вторая часть процедуры рапараллеливает процедуру detachMyDB. Сначала она устанавливает соединение с местным сервером. В этом месте вновь следует заменить имя местного сервера на имя удаленного, если в качестве рабочей станции и сервера выступают разные машины. Метод Присоединить базу данных единым файлом (AttachDBWithSingleFile) присоединяет скопированный в первой части процедуры файл базы данных к новому серверу базы данных. Процедура закрывается, освобождая ресурсы указателей.

MSDE представляет собой замечательный по возможностям процессор данных. У него множество очень интересных свойств. Но его цена (точнее ее отсутствие, $0),и возможность бесплатного распространения с одной стороны, а с другой, все приемущества технологий SQL Server, делают его безусловно заслуживающим внимания. Корпорация Microsoft не ввела ограничений на количество пользователей, но рекомендует применять MSDE для не очень больших групп одновременно работающих пользователей. Однако автор статьи слышал об использовании MSDE десятками пользователей. Построение решений на базе MSDE кажется привлекательным, поскольку при этом облегчается окончательный переход от MSDE к SQL Server.

Таблица 1. Сравнение Jet, MSDE и SQL Server

/От перев. - данные приведены по строкам/

Свойства / Jet / MSDE /

SQL Server (настольная версия) /

SQL Server (промышленная версия) /

Операционная система / ..... / ..... / ..... / ..... /

Максимальный размер базы данных / / / терабайты / терабайты /

Максимальное число процессоров / 1 / 2 / 2 / 4 или 32* /

Обновление до уровня сервера или до промышленной версии SQL Server / Применить Мастер Расширения (Upsizing Wizard) с ручным контролем / Прикрепить базу данных к SQL Server / Прикрепить базу данных к серверу или к промышленной версии SQL Server / Уже является сервером или промышленной версией SQL Server /

Наличие интегрированной с Windows NT/2000 службы безопасности / Нет / Да / Да / Да /

Доступность совместно с Office 2000 или Visual Studio 6.0 / Да / Да / Нет / Нет /

Требуется лицензия клиента Access / Нет / Нет / Да / Да /

/От перев. - сноска/

* 4 - для SQL Server, 32 - для промышленной версии SQL Server

Листинг 1. Процедура отстыковки базы данных от сервера

`Запускается из сервера MSDE

`Необходимо наличие связи с объектной библиотекой

`Microsoft SQL DMO

Sub .....

`Запустить процедуру для отстыковки базы данных от

`локального сервера MSDE

.....

End Sub

Sub .....

Dim .....

Dim .....

`Подсоединение к локальному серверу MSDE

`Отсоединение базы данных

`Убрать ресурсы указателя сервера

End Sub

Рик Добсон (http://www.programmingmsaccess.com) возглавляет консалтинговую компанию специализирующуюся на Microsoft Office, базах данных и разработках для Web.

TABLE 1: Comparison of Jet, MSDE, and SQL Server
Features Jet MSDE Desktop SQL Server SQL Server (and Enterprise version)
Operating systems 9x/NT/2000 9x/NT/2000 9x/NT/2000 NT/2000
Maximum database size 2GB 2GB terabytes terabytes
Maximum number of processors 1 2 2 4 or 32*
Upgrade to server or enterprise version of SQL Server Upsizing Wizard with manual verification Attach database to SQL Server Attach database to SQL Server or enterprise version of SQL Server Already server or enterprise version
Integrated Windows NT/2000 security No Yes Yes Yes
Available with Office 2000 or Visual Studio 6.0 Yes Yes No No
Client Access License required? No No Yes Yes

*4 for SQL Server and 32 for Enterprise SQL Server