Объектная модель SQL Server

Исключительно важным компонентом SQL Server является SQL Server Distributed Management Objects — объектная модель на основе СОМ, которая позволяет разработчикам обеспечивать свои приложения средствами администрирования SQL Server. Хотя некоторые административные функции выполняются при помощи хранимых процедур или языков определения данных (Data Definition Languages), SQL-DMO упрощает реализацию этих операций за счет объектной модели.

SQL-DMO — это интересная и довольно объемная тема, которую, конечно, нельзя описать в одной главе. Целью написания данной главы является только заинтересовать вас в дальнейших поисках материала по данной тематике.

Microsoft SQL Server разработан cовместно с набором объектов управления, которые могут быть вызваны из любого языка программирования, поддерживающего технологию СОМ (Component Object Model). MS SQL Server предоставляет интерфейс OLE Automation с множеством объектов, обладающих большим количеством свойств[1]. Любая из административных задач, включая операции над базами данных, таблицами, представлениями, полями, индексами, пользователями и пр., может быть выполнена как вызов некоторого метода соответствующего объекта и выполнена (при наличии прав доступа) из Visual Basic, Visual C++, Visual J++, Visual FoxPro и т. д.

Важно понимать, что DMO — объекты управления, их основное назначение — управление серверами и объектами серверов (хотя здесь имеются методы для извлечения данных с сервера). Например, SQL-DMO имеет методы контроля серверов, позволяющие запускать или останавливать сервер.

Подобно объектной модели DAO модель SQL-DMO — это иерархическая структура объектов SQL Server, предназначенная для программирования интерфейса сервера с помощью OLE Automation. Например, как вы можете помнить, на вершине модели DAO находится объект DBEngine, являющийся «родительским» по отношению ко всем другим объектам. В модели SQL-DMO на вершине иерархии находится объект Application, который содержит коллекцию объектов SQLServer, относящихся к отдельным серверам. Объектов модели SQL-DMO так много, что их невозможно разместить на одной странице справочной системы. На рис. 23.1 показана примерно одна треть всей схемы объектной модели SQL-DMO в окне справочной системы Microsoft SQL Server 2000, а на рис. 23.2 приведена та же, но очень упрощенная объектная модель.

Рис. 23.1

Часть объектной модели SQL-DMO в справочной системе Microsoft SQL Server 2000

 

Рис. 23.2

Упрощенная объектная модель SQL-DMO

На рис. 23.2 коллекции отмечены вертикальной чертой справа. В следующей таблице приведены описания объектов коллекций модели SQL-DMO.

 

ОБЪЕКТЫ
Объект Описание
SQLServer Основной объект, включает все другие коллекци объектов и предоставляет атрибуты выполняющегося экземпляра Microsoft SQL Server.
Configuration Объект, позволяющий возвращать и устанавливать параметры конфигурации Microsoft SQL Server.
FullTextService Предоставляет атрибуты сервиса Microsoft Search full-text indexing.
IntegratedSecurity Предоставляет конфигурируемые параметры, которые воздействуют на все logins для Microsoft SQL Server.
JobServer Предоставляет атрибуты, связанные с SQL Server Agent, который, в частности, «отвечает» за выполнение работ по графику.
Registry Предоставляет атрибуты Microsoft Windows NT или Microsoft Windows 95 настроек регистра, определяющих параметры установки и run-time-параметры Microsoft SQL Server.
Replication Представляет полную систему репликации для сервера, выполняющего Microsoft SQL Server. Является корневым для всех объектов репликации.
КОЛЛЕКЦИИ
SQLServers Содержит объекты типа SQLServer, созданные приложением SQL-DMO.
Databases Содержит объекты типа Database, поддерживающие базы данных Microsoft SQL Server.
BackupDevices Содержит объекты типа BackupDevice, представляющие backup-устройства, найденные на выполняющемся Microsoft SQL Server.
Languages Содержит объекты типа Language, ссылающиеся на language-записи установки Microsoft SQL Server.
LinkedServers Содержит объекты типа LinkedServer, предоставляющие свойства источника данных OLE DB.
Logins Содержит объекты типа Login, ссылающиеся на login-записи, которые составляют один из элементов безопасности Microsoft SQL Server.
RemoteServers Содержит объекты типа RemoteServer, представляющие атрибуты установки Microsoft SQL Server, которая отображаются как удаленный сервер.
ServerRoles Содержит объекты типа ServerRole.

Как коллекции, так и объекты модели могут содержать другие объекты. Например, коллекция Databases (коллекция баз данных сервера) содержит объекты Database, DBOption и TransactionLog, а также коллекции DatabaseRoles, Defaults, Tables и другие (рис. 23.3). В свою очередь, коллекция Tables (рис. 23.4) содержит объекты ClusteredIndex и PrimaryKey и коллекции Checks, Columns, Indexes, Keys и Triggers —элементы для работы с таблицами.

Рис. 23.3

Структура коллекции Databases

Рис. 23.4

Структура коллекции Tables

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

Поскольку объектная модель SQL-DMO является очень большой и многие из ее объектов вряд ли понадобятся вам в течение долгого времени, начните (при помощи справочной системы) изучать работу с наиболее понятными вам объектами, такими как SQLServer, Database,Table,Columnи другими. Эти объекты имеют такие же понятные свойства (например, Name дляSQLServer, Database,Table,Column и InPrimaryKey для Column) и методы. Некоторые из этих свойств и методов используются в примерах следующего раздела.