Використання об’єктів управління SQL Server 2005, Інші СУБД, Бази даних, статті

Тим, хто мав досвід роботи з попередніми версіями SQL Server, напевно відомі спеціальні програмні засоби, призначені для виконання адміністративних завдань. Програмні засоби розробки елементів управління OLTP-сервером називалися SQL-DMO (SQL Distributed Management Objects), а програмні засоби, за допомогою яких створюються засоби управління і адміністрування OLAP-сервером, – DSO (Decision Support Objects).


Ці кошти представляли собою функції, скомпільовані в бібліотеки. Однак вони були не особливо зручні в застосуванні, і користувалися ними не дуже активно. У новій версії SQL Server ці бібліотеки принципово перероблені і більше того – переведені на платформу. NЕТ.


Застосування об’єктів управління OLTP-сервером


При використанні SQL Server існує два способи виконання адміністративних завдань. Перший – застосування Transact-SQL з використанням мови визначення даних DDL (data definition language) і вбудованих системних збережених процедур для створення облікових записів і користувачів, баз даних, таблиць і збережених процедур. Другий – використання Microsoft SQL Server Enterprise Manager, що надає більше зручний графічний інтерфейс для управління цими самими об’єктами. Більшість користувачів віддають перевагу другому спосіб, бо його можна освоїти швидше і з меншими зусиллями.


У своїй роботі Enterprise Manager в свою чергу використовує мову Transact-SQL і SQL-DMO. SQL-DMO – це заснований на об’єктної моделі COM (Component Object Model) інтерфейс SQL Server 2000, службовець не для отримання даних, а для управління об’єктами SQL Server. Точніше кажучи, це структурований, організований на основі наборів і простий у використанні програмний інтерфейс, призначений для роботи з SQL Server.


Розробники ж SQL Server 2005 надали нам більш зручне і потужний засіб – SQL Server Management Objects (SMO). SMO є. NET-еквівалентом старого SQL-DMO. Він більш надійний, надає розробникам вдосконалені засоби створення сценаріїв, що визначають структуру бази даних, і підтримує більш повний набір об’єктів і наборів бази даних. Крім того, в ньому реалізовані нові засоби програмування. SMO – це інтерфейс адміністрування SQL Server 2005. З його допомогою можна вирішити будь-яку задачу, пов’язану з керуванням.


Основи SQL Management Object (SMO)


Об’єкти управління SQL (SQL Management Objects, SMO) – це об’єктна модель управління для SQL Server 2005. SMO відображає значні покращення в дизайні та архітектурі об’єктної моделі управління SQL Server. Використовувати її просто, але вона являє собою складну об’єктну модель, засновану на керованому коді. NET Framework. SMO – це головний інструмент для розробки додатків управління базами даних з використанням. NET Framework. SMO використовується кожним діалоговим вікном в SQL Server Management Studio, і будь-яка дія, яка адміністратор може виконати в SQL Server Management Studio, він також здійснить і за допомогою SMO.


Нова об’єктна модель SMO і Microsoft Windows Management Instrumentation (WMI) API замінюють SQL-DMO. Там, де це можливо, SMO включає в себе для простоти використання такі ж об’єкти, як і в SQL-DMO. Можна ще застосовувати SQL Server 2005 Beta 2 з SQL-DMO, але SQL-DMO не буде обновлятися для управління специфічними особливостями SQL Server 2005.


Як співвідносяться SMO і SQL-DMO? Об’єктна модель SMO – це логічне продовження виконану в SQL-DMO роботи. Модель SMO сумісна з SQL-DMO і містить безліч тих же об’єктів. Де це можливо, зберігається вихідний дизайн SQL-DMO, але SMO має кілька додаткових можливостей крім функцій SQL-DMO. Для максимального покриття мови визначення даних і адміністративних можливостей SQL Server 2005 в SMO додано більше 150 нових класів.


Основними перевагами моделі SMO є її продуктивність і масштабованість. SMO використовує кешовану об’єктну модель, яка дозволяє змінювати кілька властивостей об’єкта перед збереженням змін в SQL Server. В результаті виконується менше звернень до сервера. SMO також має оптимізовану завантаження об’єктів. Це означає, що можна завантажувати об’єкти частково або повністю. Можна швидко завантажувати безліч об’єктів, не завантажуючи всі їхні властивості.


На відміну від набору SQL-DMO, який має єдину кореневу папку програми, яка містить посилання на всі створені об’єкти на сервері бази даних, SMO дозволяє створити безліч кореневих папок для серверів без установки нового з’єднання. SMO також має керований об’єкт, який спрощує інтерфейс з WMI для підтримки моніторингу WMI і настройки сервера через інтерфейс об’єкта SMO.








 
Рисунок 1. Спрощена структура об’єктів SMO  

На рис. 1 показана сильно спрощена структура об’єктів SMO. Як можна помітити, об’єкти згруповані по колекціях, що значною мірою спрощує розробку додатків, роблячи звернення до об’єктів більш звичним.


Оскільки SMO-об’єкти в більшості своїй представляють реальні об’єкти сервера баз даних, для спрощення викладу ми подивимося на них на підставі прикладів програмного коду, що виконує різні завдання. Такий підхід, на мій погляд, здатний дати найбільш повне уявлення про можливості цих елементів нової версії SQL Server.


SMO забезпечує роботу з двома типами класів для автоматизації виконання адміністративних завдань: примірник сервера і утиліти. Класи примірника сервера представляють об’єкти сервера, такі як база даних, таблиця, подання і т. д., а класи утиліт призначені для резервного копіювання, відновлення, написання сценаріїв і перенесення даних.


Для реалізації прикладів нам знадобиться MS SQL Server 2005 і Microsoft Visual Studio 2005 Beta 2. Перш ніж приступати до виконання наведених нижче практичних завдань, необхідно додати посилання на бібліотеки Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.Smo, Microsoft. SqlServer.SmoEnum, Microsoft. SqlServer.SqlEnum.


Давайте створимо проект консольного додатку. Звичайно, можна і графічного, але ж наша мета – навчитися користуватися об’єктами, а в консольному додатку це зробити простіше.


Підключення до сервера починається з імпорту простору імен:






Imports
Microsoft.SqlServer.Management.Smo
Imports
Microsoft.SqlServer.Management.Common

Далі йде формування з’єднання з сервером, з використанням або аутентифікації Windows:






Dim myServer As New Server(“(local)”)
Dim conn As ServerConnection =
myServer.ConnectionContext
conn.LoginSecure = True
conn.Connect()

або аутентифікації SQL Server:






Dim myServer As New Server(“(local)”)
Dim conn As ServerConnection =
myServer.ConnectionContext
conn.LoginSecure = False
conn.Login = “sa”
conn.Password = “P@ssw0rd”
conn.Connect()

Для отримання інформації про сервер застосовується спеціальний метод Information:






Console.WriteLine(myServer.Name & ” ” &
myServer.Information.VersionString)
Console.WriteLine(“Eddition ” &
myServer.Information.Edition)
Console.WriteLine(“Language ” &
myServer.Information.Language)
Console.WriteLine(“OS Version ” &
myServer.Information.OSVersion)
Console.WriteLine(“Platform ” &
myServer.Information.Platform)
conn.Disconnect()

Виконання резервного копіювання можна здійснити як засобами мови Transact-SQL, так і за допомогою об’єктів SMO. Виконання повного резервного копіювання ілюструється наступним кодом:






Dim bkp As Backup = New Backup()
bkp.Action = BackupActionType.Database
bkp.Initialize = True
bkp.Incremental = False
bkp.Database = “AdventureWorks”
bkp.DeviceType = DeviceType.File
bkp.Devices.Add(“c:SMO.bak”)
bkp.SqlBackup(myServer)

Виконання відновлення бази даних з резервної копії також можливо за допомогою об’єктів SMO.


Код лістингу 2 виробляє ті ж дії, які виконуються командою






RESTORE FILELISTONLY
FROM DISK = N”C:SMO.bak”

з тією лише різницею, що в лістингу 2 виводяться тільки логічні імена файлів.


У SQL Server є кілька команд, пов’язаних з викликом утиліти DBCC, які дозволяють перевіряти і коригувати (якщо це можливо) фізичну цілісність об’єктів сервера.


Докладна інформація про них може бути отримана з довідкової системи SQL Server.


Можна використовувати SMO ​​для створення об’єктів бази даних, таких як таблиці, представлення, збережені процедури і т. д. Ці дії виконуються в певній послідовності: спочатку створюються змінні, представляють відповідні об’єкти, такі як стовпці або таблиці, потім встановлюються відповідні властивості об’єктів і далі дочірні об’єкти додаються до їх батьківським об’єктах.


Об’єкти SMO ​​використовуються і для модифікації об’єктів бази даних, таких як таблиці, представлення, збережені процедури і т. д. Для модифікації потрібно виконати наступні кроки: створити змінні, що представляють посилання на відповідні об’єкти, такі як стовпці або таблиці; змінити відповідні властивості об’єктів і викликати метод ALTER для внесення змін.


Сподіваюся, наведені приклади достатньо переконливі, щоб показати, що можна робити за допомогою SMO. Хоча цей інтерфейс програмування і об’ємний, використовувати його зовсім нескладно. SMO надає адміністратору все, що потрібно для управління SQL Server. Можна керувати будь-якими службами, що мають відношення до SQL Server, запускати і зупиняти їх, управляти об’єктами на рівнях сервера та бази даних, а також засобами забезпечення безпеки.


Виникає логічне запитання: “Навіщо створювати такі додатки, якщо SQL Server Management Studio вже вміє все це і навіть більше?” Можливо, хтось захоче розробити програмне забезпечення і включити в нього прості засоби управління базою даних, такі як інструменти управління користувачами. У будь-якому випадку кошти, надані SMO, будуть корисні, і ви не раз згадаєте про них при експлуатації SQL Server 2005.


Використання об’єктів управління OLAP-сервером


Отже, ми вже розглянули спеціальні класи, призначені для розробки власних коштів управління сервером баз даних. Це класи SMO, за своєю суттю є. NET-еквівалентом старого SQL-DMO. Для управління і адміністрування OLAP-сервером в SQL Analysis Service 2005 також розроблено новий варіант старих засобів розробки, званих Decision Support Object (DSO) і призначених для створення керуючих консолей аналітичного сервера. Це Analysis Management Object (AMO), інтерфейс адміністрування SQL Analysis Service 2005. З його допомогою можна вирішити будь-яку задачу, пов’язану з керуванням аналітичними службами SQL Server 2005.


Основи AMO








 
Рисунок 2. Структура АМО  

AMO представляє об’єктну модель нового покоління (див. рис. 2), що включає в себе бази даних, аналітичні моделі, а також об’єкти OLAP-сервера. Коли користувач працює з об’єктами AMO, він може безпосередньо маніпулювати цілим діапазоном різних об’єктів та їх властивостей.


За допомогою AMO він може отримати доступ до всіх типів моделей аналізу, підтримуваних сервером, в тому числі Microsoft Association Rules, Microsoft Clustering, Microsoft Decision Trees, Microsoft Naive Bayes, Microsoft Neural Network, Microsoft Sequence Clustering і Microsoft Time Series. Також корисним застосуванням AMO може стати розробка власних коштів управління сервером аналітики.


Принцип використання цієї об’єктної моделі дуже схожий на вже розглянутий вище принцип роботи з об’єктами SMO. Для роботи з ними необхідно виконати декілька кроків. При цьому частина кроків буде завжди однакова і не буде залежати від типу об’єкта, з яким доведеться працювати, а частина кроків визначається видом об’єкта.


Які ж дії завжди виконуються при роботі з цими об’єктами? Які кроки необхідно виконати для створення керуючих об’єктів аналітичного сервера? Про це піде мова далі.


Оскільки AMO-об’єкти являють реальні об’єкти сервера, для простоти ми розглянемо їх на основі прикладів програмного коду, що виконує різні завдання. Такий підхід дасть повне уявлення про можливості цих елементів.


AMO працює з одним кореневим класом – примірником сервера. Класи примірника представляють об’єкти сервера, такі як база даних, куби, джерела даних і т. д. Для реалізації прикладів нам знадобиться MS SQL Server 2005 і Microsoft Visual Studio 2005 Beta 2.


Перш ніж приступати до виконання практичних завдань, необхідно додати посилання на бібліотеки System.Data, System.Data.OleDb, Microsoft.AnalysisServices.


Давайте ще раз створимо проект консольного додатку, хоча, повторюся, можна і графічного, але наша мета – навчитися користуватися об’єктами, а в консольному додатку це зробити простіше.


Всі дії починаються зі створення об’єкта класу Server і підключення до нього.






Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.AnalysisServices
Dim srv As New Server
srv.Connect(“Local”)

Оскільки посилання на сервер створена, тепер можна виконувати і інші дії.


Створення бази даних проводиться в рамках того ж сервера, який був створений (див. лістинг 7). Після виконання коду, наведеного в лістингу 7, слід відкрити Microsoft SQL Management Studio, підключитися до аналітичного серверу, і там буде видно новостворена база даних.


Одна база даних може мати кілька підключень до джерел даних. Джерела даних можуть бути як реляційні, так і нереляційні, що показано в лістингу 8.


Об’єкт Data Source View – це, по суті, сукупність запитів, які виконуються до джерела даних. У показаному нижче прикладі створюється Data Source View і далі в нього додається таблиця фактів. Ця ж таблиця фактів буде використовуватися як таблиця розмірностей (див. лістинг 9).


Всі об’єкти бази даних зібрані в колекції, перегляд вмісту яких проводиться за одним і тим же принципом. Спочатку отримуємо посилання на колекцію і далі, використовуючи ітерацію, отримуємо доступ до вмісту колекції (див. лістинг 10).


У свою чергу всі об’єкти куба, як і було описано вище, також зібрані в колекції, перегляд вмісту яких проводиться теж шляхом ітерації по колекції (див. лістинг 11).


Для виконання резервного копіювання бази даних необхідно просто по відношенню до бази даних виконати метод Backup, а для відновлення бази з копії слід для сервера застосувати метод Restore (див. листинги 12 і 13).


Звертаю увагу читачів на те, що в лістингу 12 розширення файлу повинна бути тільки *. Abf. У лістингу 13 зверніть увагу на третій параметр в методі Restore. Установка його в положення True переписує відновлювану базу поверх існуючої.


Знову ж таки, як ми переконалися, користуватися новою об’єктною моделлю зовсім нескладно. Для цього треба лише розібратися з архітектурою класів, що лежать в основі AMO, а далі вже все перетворюється у виконання досить простих однотипних операцій, синтаксис і зміст яких зрозумілий. Використання об’єктів AMO дозволяє без особливих зусиль розробляти свої елементи управління аналітичним сервером.


Підіб’ємо підсумки. Щоб використовувати об’єкти для розробки власних рішень, необхідно: по-перше, мати уявлення про роботу з платформою. NET, а по-друге, розібратися зі структурою класів, використовуваних для створення об’єктів.


На жаль, на момент підготовки статті в довідковій системі SQL Server 2005 не було достатньої кількості інформації, що значною мірою ускладнює вивчення і використання об’єктів. Багато чого з того, що показано в статті, отримано методом численних спроб і помилок, що, безумовно, не сприяє прискоренню процесу навчання та розробки. Залишається сподіватися, що корпорація Microsoft при випуск остаточного релізу забезпечить його докладними описами і підручниками.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*