Объектная модель 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) и методы. Некоторые из этих свойств и методов используются в примерах следующего раздела.