Система керування базами даних Microsoft Servers SQL. Підключення до сервера. Зручне середовище для спільної роботи

Моя компанія щойно пройшла свій щорічний процес огляду, і я нарешті переконав їх, що настав час знайти краще рішеннядля керування нашою схемою/сценами SQL. В даний час ми маємо лише кілька сценаріїв для ручного оновлення.

Я працював з VS2008 Database Edition в іншій компанії, і це приголомшливий продукт. Мій бос попросив мене подивитися на SQL Compare by Redgate і шукати будь-які інші продукти, які можуть бути кращими. Порівняння SQL також є чудовим продуктом. Проте, схоже, вони не підтримують Perforce.

Ви використовували для цього багато продуктів?

Які інструменти ви використовуєте для управління SQL?

Що має бути включено до вимог, перш ніж моя компанія здійснить покупку?

10 відповідей

Я не думаю, що є інструмент, який може обробляти усі частини. VS Database Edition не дозволяє створити гідний механізм випуску. Запуск окремих скриптів із браузера рішень недостатньо масштабується у великих проектах.

Як мінімум вам потрібно

  • IDE/editor
  • репозиторій вихідного коду, який може бути запущений з IDE
  • угоду про імена та організацію різних сценаріїв у папках
  • процес обробки змін, управління релізами та виконання розгортань.

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

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

2 варіанти, які я використав:

    Крім збереження всіх окремих об'єктів бази даних у файлах, у вас є сценарії випуску, які є конкатенацією окремих скриптів. Недолік цього: у вас є код у 2 місцях з усіма ризиками та недоліками. Потенціал: запуск випуску так само просто, як виконання одиночного script.

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

Я перебуваю в таборі "script it yourself", оскільки сторонні продуктибудуть лише доводити вас до керування кодом бази даних. У мене немає одного script для кожного об'єкта, тому що об'єкти змінюються з часом, а дев'ять разів з десяти просто оновлюють мою "таблицю створення" script, щоб мати три нові стовпці були б неадекватними.

Створення баз даних за великим рахунком очевидно. Налаштуйте купу скриптів CREATE, впорядкуйте їх правильно (створіть базу даних перед схемами, схеми перед таблицями, таблиці перед процедурами, викличте процедури перед викликами і т.д.) І зробіть це. Управління зміною бази даних не так просто:

  • Якщо ви додасте стовпець до таблиці, ви не зможете просто відкинути таблицю і створити її з новим стовпцем, тому що це призведе до знищення всіх цінних виробничих даних.
  • Якщо Fred додає стовпець у таблицю XYZ, а Mary додає інший стовпець у таблицю XYZ, який стовпець додається першим? Так, порядок стовпців у таблицях не має значення [тому що ви ніколи не використовуєте SELECT *, правильно?], якщо ви не намагаєтеся керувати базою даних та відстежувати керування версіями, після чого у вас є дві "дійсні" бази даних, які не виглядають як один одного, стають справжнім головним болем. Ми використовуємо SQL-порівняння не для управління, а для огляду та відстеження речей, особливо під час розробки, і небагато "вони різні (але це не magger)", ситуації, які ми можемо, можуть завадити нам помітити відмінності, які мають значення.
  • Аналогічно, коли кілька проектів (розробників) працюють одночасно і окремо у загальній базі даних, це може стати дуже складним. Можливо, всі працюють над проектом Next Big Thing, коли раптом хтось має розпочати роботу над виправленнями помилок у проекті Last Big Thing. Як ви керуєте необхідними модифікаціями коду, коли порядок випуску є змінним та гнучким? (Дійсно кумедні часи.)
  • Зміна структур таблиць означає зміну даних, і це може стати дуже складним, коли вам доводиться мати справу зі зворотною сумісністю. Ви додаєте стовпець "DeltaFactor" добре, так що ви робите, щоб заповнити це езотеричне значення для всіх ваших існуючих (прочитаних: застарілих) даних? Ви додаєте нову таблицю пошуку та відповідний стовпець, але як ви заповнюєте її для існуючих рядків? Такі ситуації можуть траплятися не часто, але, коли вони це роблять, ви повинні робити це самі. Сторонні інструменти просто не можуть передбачати потреб вашої бізнес-логіки.

По суті, у мене є CREATE script для кожної бази даних, за якою слідує серія сценаріїв ALTER, оскільки наша база коду змінюється з часом. Кожен script перевіряє, чи він може бути запущений: це правильний "вид" бази даних, були виконані необхідні попередні сценарії, цей script вже запущений. Тільки коли пройдено перевірку, script виконає свої зміни.

Як інструмент ми використовуємо SourceGear Fortress для керування базовим вихідним кодом, Redgate SQL Compare для загальної підтримки та усунення несправностей, а також ряд домашніх сценаріїв на основі SQLCMD для "масового" розгортання скриптів із змінами на кілька серверів та бази даних та відстежувати, хто застосовував які скрипти до баз даних у який час. Кінцевий результат: всі наші бази даних є стабільними та стабільними, і ми можемо охоче довести, яка версія є чи була в будь-який момент часу.

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

Зазвичай я використовую MS Server Management Studioдля управління sql, роботи з даними, розробки баз даних та налагодження його, якщо мені потрібно експортувати деякі дані в sql script або мені потрібно створити якийсь складний об'єкт у базі даних, я використовую EMS SQL Management Studio для SQL Server, тому що там я можу чіткіше бачити, що вузькі розділи мого коду та візуальний дизайн у цьому середовищі дають мені легше

Я маю проект з відкритим вихідним кодом (ліцензований під LGPL), який намагається вирішити проблеми, пов'язані з правильною версією схеми DB для (і більше) SQL Server (2005/2008/Azure), bsn ModuleStore . Весь процес дуже близький до поняття, поясненого повідомлення Філіпа Келлі тут.

В принципі окрема частина набору інструментів скриптує об'єкти бази. даних SQL Server схеми БД у файли зі стандартним форматуванням, тому вміст файлу змінюється тільки в тому випадку, якщо об'єкт дійсно змінився (на відміну від сценаріїв зроблений VS, який також створює скрипти і т.д., відзначаючи всі змінені об'єкти, навіть якщо вони фактично ідентичні ).

Але набір інструментів виходить за рамки цього, якщо ви використовуєте .NET: він дозволяє вбудовувати скрипти SQL в бібліотеку або програму (у вигляді вбудованих ресурсів), а потім порівнювати вбудовані скрипти з поточним станом у базі даних. Зміни, не пов'язані з таблицею (ті, які не є "деструктивними змінами" щодо визначення Мартіна Фаулера), можуть застосовуватися автоматично або за запитом (наприклад, створення та видалення об'єктів, таких як уявлення, функції, процедури, типи, індекси, що зберігаються) і сценарії зміни (які необхідно записати вручну) можуть бути застосовані у тому самому процесі; також створюються нові таблиці, і навіть їх установчі дані. Після оновлення схема БД знову порівнюється зі сценаріями, щоб забезпечити успішне оновлення БД до того, як зміни будуть здійснені.

Зверніть увагу, що весь код сценаріїв та порівняння працює без SMO, так що у вас немає хворобливої ​​залежності SMO при використанні модуля bsn ModuleStore у додатках.

Залежно від того, як ви хочете отримати доступ до бази даних, набір інструментів пропонує ще більше - він реалізує деякі можливості ORM і пропонує дуже хороший і корисний інтерфейсний підхід для виклику процедур, що зберігаються, включаючи прозору підтримку XML з власним.NET XML класів, а також для TVP (Table-Valued Parameters) як IEnumerable

Ось мій script для відстеження збережених proc і udf і тригерів у таблиці.

    Створіть таблицю для зберігання існуючого вихідного коду proc

    Ввести таблицю з усіма існуючими даними тригера та script

    Створіть тригер DDL для відстеження змін на них

    /****** Object: Table . Script Date: 9/17/2014 11:36:54 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE . ( IDENTITY(1, 1) NOT NULL , (1000) NULL , (1000) NULL , (1000) NULL , (1000) NULL , NULL , NTEXT NULL ,CONSTRAINT PRIMARY KEY CLUSTERED ( ASC) WITH ( OFF ,IGNORE_DUP_KEY = OFF ,ALLOW_ROW_LOCKS = ON ,ALLOW_PAGE_LOCKS = ON) ON) ON GO ALTER TABLE . ADD CONSTRAINT DEFAULT("") FOR GO INSERT INTO . ( , , , , ,) SELECT "sa" ,"loginitialdata" ,r.ROUTINE_NAME ,r.ROUTINE_TYPE ,GETDATE() ,r.ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES r UNION SELECT "sa" ,"loginitialdata "view" ,GETDATE() ,v.VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS v UNION SELECT "sa" ,"loginitialdata" ,o.NAME ,"trigger" ,GETDATE() ,m.DEFINITION FROM sys.objects o JOIN sys.sql_modules m ON o.object_id = m.object_id WHERE o.type = "TR" GO CREATE TRIGGER ON DATABASE FOR CREATE_PROCEDURE ,ALTER_PROCEDURE ,DROP_PROCEDURE ,CREATE_INDEX ,ALTER_INDEX ,DROP_INDEX ,CREATE _TABLE ,ALTER_VIEW ,CREATE_VIEW ,DROP_VIEW AS BEGIN SET NOCOUNT ON DECLARE @data XML SET @data = Eventdata() INSERT INTO sysupdatelog VALUES (@data.value("(/EVENT_INSTANCE/LoginName)", "nvarchar(255)") ,@data.value("(/EVENT_INANCE) /EventType)", "nvarchar(255)") ,@data.value("(/EVENT_INSTANCE/ObjectName)", "nvarchar(255)") ,@data.value("(/EVENT_INSTANCE/ObjectType)", " nvarchar(255)") ,getdate() ,@data.value("(/EVENT_INSTANCE/TSQLCommand/CommandText)", "nvarchar(max)")) SET NOCOUNT OFF END GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIEROFF OFF ON DATABASE GO

05.01.15 28.1K

Часом так хочеться упорядкувати свої думки, розкласти їх по поличках. А ще краще в алфавітній та тематичній послідовності, щоб нарешті настала ясність мислення. Тепер уявіть, який би хаос творився в електронних мізках» будь - якого комп'ютера без чіткої структуризації всіх даних та Microsoft SQL Server :

MS SQL Server

Даний програмний продуктявляє собою систему управління базами даних (СУБД) реляційного типу, розроблену корпорацією Microsoft. Для маніпуляції даними використовується спеціально розроблена мова Transact-SQL. Команди мови для вибірки та модифікації бази даних побудовані на основі структурованих запитів:


Реляційні бази даних побудовано взаємозв'язку всіх структурних елементів, зокрема і з допомогою їх вкладеності. Реляційні бази даних мають вбудовану підтримку найпоширеніших типів даних. Завдяки цьому в SQL Server інтегрована підтримка програмного структурування даних за допомогою тригерів і процедур, що зберігаються.

Огляд можливостей MS SQL Server


СУБД є частиною довгого ланцюжка спеціалізованого програмного забезпечення, яке корпорація Microsoft створила для розробників. І це означає, що це ланки цього ланцюга (додатки ) глибоко інтегровані між собою.

Тобто їх інструментарій легко взаємодіє між собою, що значно спрощує процес розробки та написання програмного коду. Прикладом такого взаємозв'язку є середовище програмування MS Visual Studio. У її інсталяційний пакет вже входить SQL Server Express Edition.

Звісно, ​​це єдина популярна СУБД на світовому ринку. Але саме вона є більш прийнятною для комп'ютерів, що працюють під керуванням Windows, завдяки своїй спрямованості саме на цю операційну систему. І не лише через це.

Переваги MS SQL Server:

  • Має високий ступінь продуктивності та відмовостійкості;
  • Є розрахована на багато користувачів СУБД і працює за принципом «клієнт-сервер»;

    Клієнтська частина системи підтримує створення запитів користувача і їх відправку для обробки на сервер.

  • Тісна інтеграція з операційною системою Windows;
  • Підтримка віддалених підключень;
  • Підтримка популярних типів даних, а також можливість створення тригерів і процедур, що зберігаються;
  • Вбудована підтримка ролей користувачів;
  • Розширена функція резервного копіюваннябаз даних;
  • високий рівень захищеності;
  • Кожен випуск включає кілька спеціалізованих редакцій.

Еволюція SQL Server

Особливості цієї популярної СУБД найлегше простежуються при розгляді історії еволюції всіх її версій. Детальніше ми зупинимося лише на тих випусках, в які розробники вносили вагомі та кардинальні зміни:

  • Microsoft SQL Server 1.0 – вийшов ще 1990 року. Вже тоді експерти відзначали високу швидкістьобробки даних, що демонструється навіть при максимальному навантаженні в розрахованому на багато користувачів режимі роботи;
  • SQL Server 6.0 – вийшов 1995 року. У цій версії вперше у світі була реалізована підтримка курсорів та реплікації даних;
  • SQL Server 2000 – у цій версії сервер отримав повністю новий двигун. Більшість змін торкнулася лише користувача сторони докладання;
  • SQL Server 2005 - збільшилася масштабованість СУБД, багато в чому спростився процес управління та адміністрування. Був впроваджений новий APIдля підтримки програмної платформи .NET;
  • Наступні випуски - були спрямовані на розвиток взаємодії СУБД на рівні хмарних технологійта засобів бізнес-аналітики.

У базовий комплект системи входить кілька утиліт для налаштування SQL Server. До них відносяться:


Менеджер конфігурації. Дозволяє керувати всіма мережними налаштуваннямита службами сервера бази даних. Використовується для налаштування SQL Server всередині мережі.
  • SQL Server Error and Usage Reporting:


Утиліта дає змогу настроїти надсилання звітів про помилки до служби підтримки Microsoft .


Використовується для оптимізації сервера бази даних. Тобто ви можете налаштувати функціонування SQL Server під свої потреби, увімкнувши або вимкнувши певні можливості та компоненти СУБД.

Набір утиліт, що входять до Microsoft SQL Server, може відрізнятися залежно від версії та редакції програмного пакета. Наприклад, у версії 2008 року ви не знайдете SQL Server Surface Area Configuration.

Запуск Microsoft SQL Server

Для прикладу буде використано версію сервера баз даних випуску 2005 року. Запуск сервера можна зробити кількома способами:

  • Через утиліту SQL Server Configuration Manager. У вікні програми ліворуч вибираємо "SQL Server 2005 Services", а праворуч - потрібний нам екземпляр сервера БД. Зазначаємо його і підменю правої кнопки миші вибираємо «Start».

  • За допомогою середовища SQL Server Management Studio Express. Вона не входить в інсталяційний пакет редакції Express. Тому її потрібно завантажувати окремо з офіційного сайту Microsoft.

Для запуску сервера баз даних запускаємо програму. У діалоговому вікні « З'єднання з сервером» у полі «Ім'я сервера» вибираємо потрібний нам екземпляр. В полі " Перевірка автентичності» залишаємо значення « Перевірка автентичності Windows». І натискаємо на кнопку «З'єднати»:

Основи адміністрування SQL Server

Перед запуском MS SQL Server потрібно коротко ознайомитися з основними можливостями його налаштування та адміністрування. Почнемо з більш детального огляду кількох утиліт зі складу СУБД:

  • SQL Server Surface Area Configuration– сюди слід звертатися, якщо потрібно увімкнути або вимкнути будь-яку можливість сервера баз даних. Внизу вікна знаходяться два пункти: перший відповідає за мережеві параметри, а в другому можна активувати вимкнену за промовчанням службу або функцію. Наприклад, включити інтеграцію з платформою .NET через запити T-SQL:

Середовище SQL Server Management Studio має два основних призначення: адміністрування серверів баз даних та управління об'єктами баз даних. Ці функції розглядаються далі.

Адміністрація серверів баз даних

Завдання адміністрування, які можна виконувати за допомогою середовища SQL Server Management Studio, включають, серед інших, такі:

    реєстрація серверів;

    підключення до сервера;

    створення нових груп серверів;

    керування множинними серверами;

    пуск та зупинка серверів.

Ці завдання адміністрування описуються у наступних підрозділах.

Реєстрація серверів

Середовище SQL Server Management Studio відокремлює діяльність із реєстрації серверів від діяльності з дослідження баз даних та його об'єктів. (Дії цих обох типів можна виконувати за допомогою оглядача об'єктів.) Перш ніж можна використовувати бази даних та об'єкти будь-якого сервера, чи то локального, чи віддаленого, його потрібно зареєструвати.

Сервер можна зареєструвати під час першого запуску середовища SQL Server Management Studio або пізніше. Щоб зареєструвати сервер бази даних, клацніть правою кнопкоюпотрібний сервер у браузері об'єктів і в контекстному меню виберіть Register. Якщо панель браузера об'єктів прихована, відкрийте її, виконавши команду меню View --> Object Explorer. Відкриється діалогове вікно New Server Registration (Реєстрація нового сервера), як це показано на малюнку нижче:

Виберіть ім'я сервера, який потрібно зареєструвати, та тип автентифікації для цього сервера (тобто автентифікація Windows або автентифікація SQL Server), після чого натисніть кнопку Save.

Підключення до сервера

Середовище SQL Server Management Studio також поділяє завдання реєстрації сервера та підключення до сервера. Це означає, що під час реєстрації сервера автоматичного підключення сервера не відбувається. Щоб підключитися до зареєстрованого сервера, потрібно клацнути правою кнопкою потрібний сервер у вікні інспектора об'єктів і в контекстному меню вибрати пункт Connect (Підключитися).

Створення нової групи серверів

Щоб створити нову групу серверів на панелі зареєстрованих серверів, клацніть правою кнопкою. вузол Local Server Groups (Групи локальних серверів) у вікні Registered Server і в контекстному меню виберіть New Server Group (Створення групи серверів). У діалоговому вікні New Server Group Properties (Властивості) новий гуртсерверів) введіть однозначне ім'я групи та, на вибір, її опис.

Управління множинними серверами

За допомогою браузера об'єктів середовище SQL Server Management Studio дозволяє адмініструвати множинні сервери баз даних (звані екземплярами) на одному комп'ютері. Кожен екземпляр компонента Database Server має свій власний набір об'єктів баз даних (системні та бази даних користувача), який не розділяється між екземплярами.

Для керування сервером та його конфігурацією клацніть правою кнопкою ім'я сервера в браузері об'єктів і в контекстному меню виберіть пункт Properties (Властивості). Відкриється діалогове вікно Server Properties (Властивості сервера), що містить кілька сторінок, таких як General (Загальні), Security (Безпека), Permissions (Дозволи) тощо.

На сторінці General відображаються загальні властивості сервера:

Сторінка Security містить інформацію про режим автентифікації сервера та метод аудиту входу. На сторінці Permissions відтворюються всі облікові записи та ролі, які мають доступ до сервера. У нижній частині сторінки відображаються всі дозволи, які можна надавати цим обліковим записам та ролям.

Можна змінити ім'я сервера, надавши йому нове ім'я. Для цього клацніть правою кнопкою потрібний сервер у вікні браузера об'єктів і в контекстному меню виберіть Register. Тепер можна присвоїти серверу нове ім'я та змінити його опис. Сервери не слід перейменовувати без особливої ​​потреби, оскільки це може вплинути на інші сервери, які посилаються на них.

Запуск та зупинення серверів

Сервер Database Engine за замовчуванням запускається автоматично при запуску операційної системи Windows. Щоб запустити сервер за допомогою середовища SQL Server Management Studio, клацніть правою кнопкою потрібний сервер в інспекторі об'єктів і в контекстному меню виберіть пункт Start (Запустити). Це меню також містить пункти Stop (Зупинити) та Pause (Зупинити) для виконання відповідних дій із сервером.

Керування базами даних за допомогою браузера об'єктів Object Explorer

Завдання адміністрування, які можна виконувати за допомогою середовища SQL Server Management Studio, включають:

    створення баз даних, не вдаючись до використання мови Transact-SQL;

    модифікація баз даних, не вдаючись до використання Transact-SQL;

    керування таблицями, не вдаючись до використання мови Transact-SQL;

    створення та виконання інструкцій SQL(Описується в наступній статті).

Створення баз даних без використання T-SQL

Нову базу даних можна створити за допомогою браузера об'єктів Object Explorer. Як можна судити за назвою, оглядач об'єктів також можна використовувати для дослідження об'єктів сервера. З панелі цього інструмента можна переглядати всі об'єкти сервера та керувати сервером та базами даних. Дерево ієрархії об'єктів сервера містить, серед інших папок, папку Databases (Бази даних). Ця папка, у свою чергу, містить кілька підпапок, включаючи папку для системних баз даних, та папку для кожної бази даних, створеної користувачем.

Щоб створити базу даних за допомогою браузера об'єктів, клацніть правою кнопкою вузол Databases і виберіть пункт меню New Database (Створити базу даних). У діалоговому вікні New Database у полі Database name введіть ім'я нової базиданих, після чого натисніть кнопку ОК.

Кожна база даних має декілька властивостей, таких як тип файлу, початковий розмір і т.п. Список сторінок властивостей бази даних розташований у лівій панелі діалогового вікна New Database. Сторінка General (Загальні) діалогового вікна Database Properties містить, серед іншого, таку інформацію, як ім'я, власник та параметри сортування бази даних:

Властивості файлів даних певної бази даних перераховуються на сторінці Files (Файли) та містять таку інформацію, як ім'я та початковий розмір файлу, розташування бази даних, а також тип файлу (наприклад, primary). База даних може зберігатися у кількох файлах. У SQL Server застосовується динамічне керуваннядисковим простором. Це означає, що можна налаштувати розмір бази даних для автоматичного збільшення та зменшення при необхідності.

Щоб змінити властивість Autogrowth(Автозбільшення) на сторінці Files, у стовпці Autogrowth натисніть значок три крапки (...) та внесіть відповідні зміни у діалоговому вікні Change Autogrowth. Щоб дозволити автоматичне збільшення розміру бази даних, необхідно встановити прапорець Enable Autogrowth. Кожен раз, коли існуючий розмірфайлу недостатній для зберігання даних, що додаються, сервер автоматично запитує систему виділити файлу додатковий дисковий простір. Об'єм додаткового дискового простору(у відсотках або мегабайтах) вказується в поле File Growth (Збільшення розміру файлу)у тому ж діалоговому вікні. А в розділі Maximum File Size (Максимальний розмір файлу)можна або обмежити максимальний розмір файлу, встановивши перемикач Limited to (MB) (Обмеження (Мбайт)), або зняти обмеження на розмір, встановивши перемикач Unlimited (Без обмежень) (це стандартне налаштування). При обмеженому розмірі файлу потрібно вказати допустимий максимальний розмір.

На сторінці Filegroups (Файлові групи) діалогового вікна Database Properties відображаються імена файлових груп, до яких належить файл бази даних, розділ файлової групи (за замовчуванням або заданий явно), а також операції, дозволені для виконання з файловою групою (читання та запис або тільки читання).

На сторінці Options (Параметри) діалогового вікна Database Properties можна переглянути та модифікувати всі параметри рівня бази даних. Існують такі групи параметрів: Automatic (Автоматично), Containment (Включення), Cursor (Курсор), Miscellaneous (Допоміжні), Recovery (Відновлення), Service Broker (Компонент Service Broker) та State (Стан). Група State містить, наприклад, такі чотири параметри:

Database Read-Only (База даних доступна лише для читання)

Дозволяє встановити доступ до бази даних повний доступабо доступ лише для читання. У разі користувачі не можуть модифікувати дані. Значення за промовчанням - False.

Restrict Access (Обмеження доступу)

Встановлює кількість користувачів, які можуть одночасно використовувати базу даних. Значення за промовчанням - MULTI_USER.

Database State (Стан бази даних)

Визначає стан бази даних. Стандартне значення цього параметра - Normal.

Encryption Enabled (Шифрування увімкнено)

Визначає режим шифрування бази даних. Значення за промовчанням - False.

На сторінці Extended Properties (Розширені властивості) відображаються додаткові властивості поточної бази даних. На цій сторінці можна видаляти існуючі властивості та додавати нові.

На сторінці Permissions (Дозволи) відображаються всі користувачі, ролі та відповідні дозволи.

Інші сторінки Change Tracking (Відстеження змін), Mirroring (Дзеркальне відображення) та Transaction Log Shipping (Доставка журналів транзакцій) описують можливості, пов'язані з доступністю даних.

Модифікація баз даних

За допомогою браузера об'єктів можна модифікувати існуючі бази даних, змінюючи файли та файлові групи бази даних. Щоб додати нові файли до бази даних, клацніть правою кнопкою потрібну базу даних і виберіть пункт Properties у контекстному меню. У діалоговому вікні Database Properties, що відкрилося, виберіть сторінку Files і натисніть кнопку Add, розташовану внизу розділу Database files. У розділ буде додано новий рядок, в полі Logical Name якої слід ввести ім'я файлу бази даних, що додається, а в інших полях задати необхідні властивості цього файлу. Також можна додати вторинну файлову групу для бази даних, вибравши сторінку Filegroups (Файлові групи) і натиснувши кнопку Add.

Згадані раніше властивості бази даних може модифікувати лише системний адміністратор чи власник бази даних.

Щоб видалити бази даних за допомогою браузера об'єктів, клацніть правою кнопкою ім'я потрібної бази даних і в контекстному меню виберіть Delete (Видалити).

Управління таблицями

p align="justify"> Наступним завданням після створення бази даних є створення всіх необхідних таблиць. Подібно до створення бази даних, таблиці в ній також можна створити або за допомогою мови Transact-SQL, або за допомогою оглядача об'єктів. Як і у разі створення бази даних, тут ми розглянемо створення таблиць тільки за допомогою оглядача об'єктів.

Для практики створення таблиць у базі даних SampleDb створимо таблицю Department. Щоб створити таблицю бази даних за допомогою браузера об'єктів, розгорніть в ньому вузол Databases, а потім вузол необхідної бази даних, клацніть правою кнопкою папку Tables і в контекстному меню виберіть пункт New Table. У верхній частині з правої сторониУ вікні засобу Management Studio відкриється вікно для створення стовпців нової таблиці. Введіть імена стовпців таблиці, їх типи даних та роздільну здатність значень null для кожного стовпця, як це показано у правій верхній панелі на малюнку нижче:

Щоб вибрати один із підтримуваних системою типів даних для стовпця, у стовпці Data Type (Тип даних) виберіть, а потім натисніть спрямований вниз трикутник у правого краю поля (цей трикутник з'являється після того, як буде обрано комірку). В результаті в списку, що відкривається, виберіть потрібний тип даних для стовпця.

Тип даних існуючого стовпця можна змінити на вкладці Column Properties (Властивості стовпця) (нижня панель малюнку). Для одних типів даних, таких як char, потрібно вказати довжину рядка Length, а для інших, таких як decimal, на вкладці Column Properties потрібно вказати масштаб і точність у відповідних рядках Scale (Масштаб) і Precision (Точність). Для деяких інших, таких як int, не потрібно вказувати жодну з цих властивостей. (Недійсні значення для конкретного типуданих виділені затіненим шрифтом у списку всіх можливих властивостей стовпця.)

Щоб дозволити значення nullдля даного стовпця слід встановити для нього відповідний прапорець поля. Також, якщо для стовпця потрібне значення за промовчанням, його слід ввести в рядок Default Value or Binding (Значення за умовчанням або прив'язка) на панелі Column Properties. Значення за замовчуванням присвоюється комірці стовпця автоматично, якщо для неї не введено значення.

Стовпець Number є первинним ключем таблиці Department. Щоб зробити стовпець первинним ключем таблиці, клацніть його правою кнопкою та в контекстному меню виберіть Set Primary Key (Вставити первинний ключ).

Завершивши всі роботи зі створення таблиці, натисніть на хрестик вкладки конструктора таблиць. Відкриється діалогове вікно із запитом, чи зберегти зроблені зміни. Натисніть кнопку Yes, після чого з'явиться діалогове вікно Choose Name (Вибір імені) із запитом ввести ім'я таблиці. Введіть ім'я таблиці та натисніть кнопку OK. Таблиця буде збережена під вказаним ім'ям. Щоб відобразити нову таблицю в ієрархії бази даних, на панелі інструментів браузера об'єктів клацніть значок Renew (Оновити).

Для перегляду та зміни властивостей існуючої таблиці розгорніть вузол бази даних, що містить потрібну таблицю, розгорніть вузол Tables у цій базі даних та клацніть правою кнопкою потрібну таблицю, а потім у контекстному меню виберіть Properties. В результаті для цієї таблиці відкриється діалогове вікно Table Properties. Наприклад, на малюнку нижче показано діалогове вікно Table Properties на вкладці General для таблиці Employee бази даних SampleDb.

Щоб перейменувати таблицю, у папці Tables клацніть її правою кнопкою у списку таблиць і в контекстному меню виберіть Rename. Щоб видалити таблицю, клацніть її правою кнопкою та виберіть Delete.

Створивши всі чотири таблиці бази даних SampleDb (Employee, Department, Project та Works_on - докладну структуру таблиць ви можете знайти у вихідниках), можна використовувати ще одну можливість середовища SQL Server Management Studio, щоб відобразити діаграму типу "сутність - відношення" - діаграму (ER) (entity-relationship)цієї бази даних. (Процес перетворення таблиць бази даних на діаграму "сутність - ставлення" (ER) називається зворотним проектуванням.)

Щоб створити діаграму ER для бази даних SampleDb, клацніть правою кнопкою її підпапку Database Diagrams (Діаграми баз даних) і в контекстному меню виберіть New Database Diagram (Створити діаграму бази даних). Якщо відкриється діалогове вікно, в якому запитується, чи створювати допоміжні об'єкти, виберіть відповідь Yes.

Після цього відкриється діалогове вікно Add Table, у якому потрібно вибрати таблиці для додавання діаграми. Додавши всі необхідні таблиці (в даному випадку всі чотири), натисніть кнопку Close, і майстер створить діаграму, подібну до показаної на малюнку нижче:

На малюнку показана тільки проміжна, а не кінцева діаграма ER бази даних SampleDb, оскільки, хоча на ній і показані всі чотири таблиці з їх стовпцями (і відповідними первинними ключами), на ній все ж таки відсутні відносини між таблицями. Відношення між двома таблицями ґрунтується на первинному ключіоднієї з таблиць та можливим відповідним стовпцем (або стовпцями) іншої таблиці.

Між таблицями бази даних SampleDb є три відносини. Таблиця Department має відношення типу 1:N з таблицею Employee, оскільки кожному значення первинного ключа таблиці Department (стовпець Number) відповідає одне або більше значень стовпця DepartmentNumber таблиці Employee (в одному відділі може працювати кілька співробітників).

Аналогічно існує відношення між таблицями Employee і Works_on, оскільки тільки значення, які є у стовпці первинного ключа таблиці Employee (Id) також є у стовпці EmpId таблиці Works_on. Третє відношення існує між таблицями Project та Works_on, т.к. тільки значення, які присутні у первинному ключі таблиці Project (Number), також присутні в стовпці ProjectNumber таблиці Works_on.

Щоб створити ці три відносини, діаграму ER потрібно реконструювати, вказавши кожної таблиці стовпці, які відповідають ключовим стовпцям інших таблиць. Такий стовпець називається зовнішнім ключем (foreign key). Щоб побачити, як це робиться, визначимо стовпець DepartmentNumber таблиці Employee, як зовнішній ключтаблиці Department. Для цього виконаємо такі дії:


Подібно створюються й інші два відносини. На малюнку нижче показано діаграму ER, що відображає всі три відносини між таблицями бази даних SampleDb:

« » - це єдине універсальне середовище для доступу, налаштування та адміністрування всіх компонентів MS SQL Server, а також для розробки компонентів системи, редагування текстів запитів, створення скриптів та ін. Завдяки наявності великої кількості візуальних засобів управління, « Середовище SQL Server Management Studioдозволяє виконувати безліч типових операцій з адміністрування MS SQL Server адміністраторам з будь-яким рівнем знань SQL Server. Зручне середовище розробки, вбудований веб-браузер для швидкого звернення до бібліотеки MSDN або отримання довідки в мережі, докладний підручник, що полегшує освоєння багатьох нових можливостей, вбудована довідка від спільнот в Інтернеті та багато іншого дозволяють максимально полегшити процес розробки в SQL Server, а також дає багаті можливості створення різних сценаріїв SQL Server. Про встановлення та запуск програми « Середовище SQL Server Management Studio» і йтиметься у цій статті.

1. Встановлення програми «Середовище SQL Server Management Studio»

Програма « Середовище SQL Server Management Studio» поставляється разом із дистрибутивом MS SQL Server. Для її встановлення необхідно відзначити компоненти

  • Засоби управління - основні (Management Tools - Basic)
    • Засоби управління - повний набір (Management Tools - Complete)

на сторінці вибору компонентів програми установки MS SQL Server.

Докладно про встановлення компонентів MS SQL Server я писав у статті.

2. Запуск програми «Середовище SQL Server Management Studio»

За промовчанням файли програми « SQL Server Management Studio» встановлюються в «C: Program Files (x86) Microsoft SQL Server 110 Tools Binn Management Studio». Для запуску " SQL Server Management Studio» слід запустити Вихідний файл Ssms.exe, що у даній директорії.

Також у Microsoft Windows Server 2012 (R2) ярлик для запуску « SQL Server Management Studio» можна знайти у списку всіх програм.

А в Microsoft Windows Server 2008 (R2) у меню « Пуск» (Start) - « Microsoft SQL Server 2012» - «Середовище SQL Server Management Studio».

Після запуску програма запропонує ввести ім'я SQL сервера, до якого слід здійснити підключення та дані для авторизації на цьому сервері. Рядок з'єднання з сервером необхідно вводити у форматі:

  • <АдресаСервера> — ім'я або IP-адреса сервера для екземпляра за замовчуванням
  • <АдресаСервера>\<Ім'яЕкземпляра> - для іменованого екземпляра SQL Server
  • <Ім'яПсевдоніма> - якщо застосовуються SQL Server

У разі автентифікації Windows (Windows Authentication), використовуються дані поточної облікового запису Windows. Якщо потрібно використовувати облікові дані іншого користувача, то потрібно і програму запустити . У разі використання автентифікації SQL Server (SQL Server Authentication), необхідно ввести ім'я користувача та пароль існуючого користувача SQL Server.

Введіть ім'я екземпляра сервера та дані для авторизації необхідно натиснути « З'єднати» (Connect) для підключення до вибраного SQL-сервера.

З виходом SQL Server 2005 розробники та адміністратори баз даних (DBA) отримають цілий набір нових засобів управління. Версія SQL Server 2005 відрізняється не лише набором доданих до неї нових служб; розробки цього продукту створення нових інструментів управління для DBA теж було однією з найважливіших завдань. На зміну SQL Server 2000 Enterprise Manager та Query Analyzer прийшов новий програмний інструмент- SQL Server Management Studio. Ще необхідно згадати про два нові допоміжні засоби: SQL Server Configuration Manager і Surface Area Configuration tool. Перш ніж приступати до розгляду можливостей SQL Server Management Studio, давайте познайомимося з кожним із цих інструментів.

Засоби управління конфігурацією

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

SQL Server Configuration Manager.Цей інструмент допомагає керувати обліковими записами різних служб SQL Server 2005 на сервері, а також самими службами. Безпосередньо з SQL Server Management Studio можна запускати та встановлювати служби SQL Server 2005, подібно до того, як це раніше робилося за допомогою Enterprise Manager, так що заново вивчати SQL Server Configuration Manager не доведеться. Ця програмаможе бути викликана через меню Start у Windows або через Computer Management у меню Administrative Tools. Щоб запустити SQL Server Management Studio, який ми розглянемо в наступному розділі, можна скористатися діалоговим вікном Management Studio Registered Servers.

SQL Server Configuration Manager використовується для керування службами SQL Server, мережевими бібліотеками та SQL Native Client (див. екран 1). Тут можна встановлювати та змінювати установки облікових записів служб, а також вмикати або вимикати ці служби. Цей інструментчастково перекриває функції двох інших засобів, які здійснюють управління цими службами та іншими функціями з погляду управління захистом від загроз.

Засоби налаштування.У SQL Server 2005 з'явилося багато нових служб. Тепер, на додаток до стандартних служб, таких як SQL Server, SQL Agent та Analysis Server, можна ще керувати параметрами служби SQL Server Integration Services (раніше Data Transformation Services, DTS), Reporting Services, Full-Text Search та SQL Browser.

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

За допомогою програми Surface Area Configuration for Services and Connections можна запускати та вимикати різні служби(Див. екран 2). Тут же можна керувати статусом служби SQL Browser, яка працює через порт UDP 1434 і перетворює з'єднання на іменовані об'єкти.

Програма Surface Area Configuration for Features, вікно якої показано на екрані 3, дозволяє керувати з'єднаннями, у тому числі спеціалізованими віддаленими запитами, налаштуваннями CLR, збереженими процедурами Database Mail (SMTP), віддаленими виділеними адміністративними підключеннями (Dedicated Administrator Connections), кінцевими точками служб Web (SOAP), OLE-автоматизацією розширених збережених процедур, кінцевими точками Service Broker, збереженими процедурами SQL Mail (MAPI), xp_cmdshell та Web Assistant. Всі ці функції за замовчуванням відключені та повинні активізуватися вибірково, за необхідності. Для включення багатьох з цих функцій можна використовувати системну процедуру sp_configure, що зберігається, з її допомогою також можна задіяти найбільш важливі команди T-SQL на кінцевих точках.

Management Studio

У SQL Server 2005 з'явився новий консолідований засіб керування – SQL Server Management Studio. Це всеосяжний інструмент, в якому об'єднані функції, актуальні для DBA та розробників. Management Studio є комплексним програмним засобом, який містить стільки можливостей, що для них докладного описуоднієї статті явно замало. Що стосується найбільш значних нововведень та змін, що є в даному продукті, то їх можна описати трьома фразами: керування сервером, редагування запитів та аналіз продуктивності.

Management Studio - це величезна «скринька з інструментами»: розробники Microsoft ретельно відібрали найкращі функції адміністрування з Enterprise Manager та найкращі функції аналізу та редагування запитів із Query Analyzer, а потім з'єднали їх у новому програмному засобі. Далі у статті ми кинемо погляд на ці нові можливості.

Запустивши оболонку Management Studio вперше, ви виявите у ній схожість з Visual Studio. Але незважаючи на те, що Management Studio базується на оболонці Visual Studio і має з нею деяку зовнішню подібність, це оманливе враження: Management Studio є абсолютно новим програмним засобом, розробленим з використанням керованого коду.

Відразу стає очевидно, що це два типи діалогів: центральна частина вікна Management Studio Window, що не переміщається, називається областю вікна документа, а об'єкти, що розміщуються по краях, називаються компонентами. Спочатку у вікні документа за замовчуванням відображається сторінка зведення (Summary), що містить деякі звітні дані про зареєстровані серверах SQL Server. При першому запуску Management Studio у лівій частині відображатимуться діалоги компонентів Registered Servers та Object Explorer, а вікно документа, праворуч, міститиме сторінку Summary (див. екран 4). Тут відображається пропонований за замовчуванням набір компонентів, але його можна змінити, додавши потрібні компонентиу вибрані місця. Сторінка Summary може містити перелік компонентів вузла Object Explorer або формувати звіт за вибраним вузлом. Якийсь час попрацювавши з компонентами, ви познайомитеся з третім типом діалогів, так званими немодальними діалоговими вікнами, які не пов'язані з основним вікном Management Studio.

Як і в Visual Studio, кожне з вікон компонентів фіксується і приховується (hideable). За допомогою значка канцелярської кнопки, що є в панелі кнопок кожного з вікон, можна ввімкнути функцію автоматичного приховування (auto-hide), ще до неї можна дістатися, клацнувши правою кнопкою миші у верхній частині вікна. Приховані вікна автоматично зручні в тих випадках, коли потрібен додатковий екранний простір для розширення Object Browser, авторизуючих запитів (authoring queries) і т. д. Характер представлення цих вікон можна змінити, натиснувши кнопку Window Position (кнопка із зображенням невеликої трикутної стрілки, спрямованої вниз) , яка є у верхньому правому куті кожного з вікон компонентів).

Через меню View можна використовувати багато інших вікон компонентів. Для цілей адміністрування найбільш актуальними є активні за замовчуванням вікна Registered Servers і Object Explorer. Що стосується вікон компонентів Solution Explorer, Template Explorer і Properties, то вони більше стануть у нагоді для редагування запитів та аналізу. У Management Studio запам'ятовується останнє відображення та параметри конфігурації вікна, тому всі вони збережуться під час наступного запуску програми. Якщо потрібно скинути налаштування вікна у стан за замовчуванням, то в меню Window слід вибрати Reset Window.

У Management Studio реалізовано підтримку адміністрування та редагування сценаріїв для багатьох елементів: екземплярів бази даних SQL Server, разом з Analysis Services, Report Services, Integration Services та SQL Server Mobile. Всі ці типи служб можуть реєструватись через Management Studio за допомогою Register Servers, а потім їх можна адмініструвати за допомогою Object Explorer. Тут можна редагувати сценарії T-SQL, сценарії Analysis Services та сценарії SQL Server Mobile, а також об'єднувати їх у проекти за допомогою вікна Solution Explorer, що буде показано у розділі, присвяченому редагуванню запитів.

Адміністрація

Для того щоб повною мірою оцінити ті нові можливості, які отримали адміністратори баз даних з появою Management Studio, спочатку порівняємо Management Studio з Enterprise Manager, стандартним засобом адміністрування в SQL Server 2000. Програма Enterprise Manager є вбудованою в SQL Server 2000 графічну утиліту, призначену для виконання завдань адміністрування сервера бази даних. Ця утиліта має ряд недоліків, зокрема з її допомогою можна керувати лише реляційним механізмом SQL Server і службою SQL Agent, але не службою Analysis Services. Крім того, Enterprise Manager не може ефективно відображати велика кількістьсерверів, баз даних чи об'єктів баз даних. Друга проблема полягає в тому, що для вирішення багатьох завдань тут використовуються модальні діалоги, тому після запуску будь-якої процедури, наприклад, резервного копіювання, часто доводиться запускати ще одну копію Enterprise Manager для продовження спостереження за сервером. І нарешті, Enterprise Manager – це оснащення Microsoft Management Console (MMC), що обумовлює не надто стабільну роботу цього додаткуі такі, що мають місце, дуже неприємні збої, а часом воно просто перестає відповідати.

Усі згадані обмеження у Management Studio усунуті. Звідси можна адмініструвати не лише екземпляри реляційного механізму, а й Analysis Services. Management Studio використовує новий прикладний інтерфейс SQL Management Objects (SMO) API, що забезпечує ефективне керування великою кількістю об'єктів баз даних. І нарешті скрізь, де це можливо, використовуються немодальні діалоги, розроблені з використанням стабільного керованого коду.

Зареєстровані сервери.У Management Studio, на відміну від Enterprise Manager, вікно, призначене для реєстрації серверів та їхньої організації, відокремлено від вікна перегляду серверних об'єктів. Інформацію про зареєстровані сервери або групи серверів можна експортувати до конфігураційного файлу формату XML і далі імпортувати на той самий або якийсь інший сервер, просто клацнувши правою кнопкою на відповідному зареєстрованому сервері або групі серверів і вибравши пункт Export.

Крім того, SQL Server 2005 також рознесені функції управління службами SQL Server і функції управління сервером. Наприклад, з Registered Servers не можна запускати або зупиняти служби - для цього призначено компонент SQL Server Configuration Manager. Також у Management Studio розділені процедури реєстрації сервера, підключення до сервера та перегляду об'єктів сервера. Вочевидь, під час реєстрації сервера через вікно Registered Servers встановлюється короткочасне з'єднання з сервером з метою перевірки, але це з'єднання не підтримується постійно. Тим не менш, якщо клацнути правою кнопкою миші на зареєстрованому сервері, а потім вибрати пункт Object Explorer або New Query, то інформація про з'єднання, збережена разом з інформацією про зареєстрований сервер, використовуватиметься SQL Server надалі для встановлення з'єднань з цим сервером.

Object Explorer.Це основний інструмент організації об'єктів сервера. Object Explorer надає як функції адміністрування, а й можливості редагування запитів. Якщо глибше заглянути всередину процесора баз даних SQL Server 2005, можна, наприклад, побачити, що результуюче дерево параметрів має схожість з Enterprise Manager. Однак тут ще можна реєструвати екземпляри Analysis Services та керувати ними, що не було передбачено у класичному Enterprise Manager.

Для кожного з вузлів, які відображаються у дереві Object Explorer, можуть викликатися різні адміністративні діалоги. Наприклад, якщо клацнути правою кнопкою миші на ім'я сервера баз даних, буде викликано немодальне діалогове вікно Server Properties з кількома закладками, за допомогою якого можна переглядати та змінювати конфігурацію параметрів адміністрування для цього сервера.

Коли буде розгорнутий вузол Object Explorer на рівні SQL Server database engine, зверніть увагу, що SQL Agent має власний вузол і всі об'єкти коду T-SQL підпадають під категорію вузла Programmability, який має у своєму складі вузол розміщення збірок (assembly). Якщо розгорнути дерево на рівні Analysis Server, то тут ви також побачите новий вузол, призначений для розміщення процедур, що зберігаються, які теж є збірками.

Діалогові вікна Object Explorer базуються на SMO, який прийшов на зміну SQL-DMO, реалізованому в SQL Server 2000, і є удосконаленою об'єктною моделлю, що має більшу гнучкість. SMO працює в асинхронному режимі, що дозволяє відкривати вузол сервера та працювати з багатьма об'єктами або методами, не впливаючи на інші функції. Допустимо, ми відкриваємо базу даних, що містить сотні або навіть тисячі таблиць, і в той час, поки вона відкривається, можемо відкрити ще один вузол і виконати якусь іншу роботу. Також слід згадати, що SMO містить усі необхідні механізми для роботи зі сценаріями, що дозволяє автоматизувати за допомогою сценаріїв практично будь-які дії, які виконуються в Object Explorer.

Виконання завдань адміністрування

У Object Explorer системні об'єкти відокремлені від об'єктів користувача категорії. Наприклад, системні базиданих (master, model, msdb і tempdb) відносяться до категорії System Databases, у той час як нові навчальні базиданих, AdventureWorks та AdventureWorksDW, є користувачами. Тут слід мати на увазі, що навчальні бази даних за замовчуванням не встановлюються, тому, якщо в ході встановлення продукту не було обрано відповідний параметр, після її закінчення у вас не буде жодної доступної бази користувача.

Як і у разі встановлення властивостей сервера, можна настроювати параметри бази даних, викликавши вікно Database Properties. У Management Studio також підтримуються засоби проектування таблиць і уявлень (відомі в SQL Server 2000 як Visual Data Tools), зокрема інструмент Database Diagrams. В ті діалогові вікна, які призначені для роботи з об'єктами баз даних, тепер вбудований механізм підтримки сценаріїв, так що будь-які дії можуть бути автоматизовані за допомогою сценаріїв (див. екран 5).

Компонент Object Explorer у Management Studio містить вузли, призначені для керування параметрами безпеки. Також можна керувати успадкованими від SQL Server 2000 пакетами DTS, службами Notification Services, тригерами рівня бази даних, Database Mail та тригерами DDL рівня сервера.

Як можна було очікувати, у Management Studio вбудовані механізми керування SQL Server Agent, але при цьому сюди доданий новий вузол для керування SQL Server Agent Proxy (посередник SQL Server Agent). Через SQL Server Agent Proxy для кожного окремого кроку завдання може визначатися відповідний контекст безпеки, що досягається шляхом надання посередників безпеки користувачу Windows компонентом SQL Agent. Зазвичай у завданнях T-SQL на рівні кроків посередники не використовуються, проте з їх допомогою у завданнях можна покроково призначати посередників для елементів керування Active X, операцій xp_cmdshell, реплікацій, а також служб Analysis Services, SQL Server та SQL Server Integration Services .

Редагування запитів

Крім великої кількості нових адміністративних функцій, у Management Studio з'явилося повнофункціональне середовище для роботи із запитами, що істотно перевершує за функціональністю Query Analyzer із SQL Server 2000.

SQL Server 2000 Query Analyzer найбільше підходить для редагування коду T-SQL та сценаріїв. І хоча Query Analyzer є прекрасний редактор T-SQL, проте йому властивий ряд обмежень. Зокрема, не можна редагувати інші типи сценаріїв SQL Server, такі як запити MDX. Якщо в Query Analyzer виконується редагування запиту або сценарію, вікно редагування повинно мати з'єднання з SQL Server, причому підключитися до іншого сервера в даному сеансі редагування не можна. Що стосується графіка плану виконання, то можливості Query Analyzer чудово підходять для аналізу ходу виконання запиту, проте графічне представлення вихідних даних не можна переносити. Крім того, хоча в Query Analyzer можна редагувати сценарії T-SQL, що знаходяться на диску у вигляді файлів, SQL Server 2000 відсутній інтерфейс прямого доступу до програм контролю версій. І останнє. Хоча за допомогою інструмента Object Browser, наявного в Query Analyzer, можна виконувати в базі даних пошук об'єктів коду T-SQL, його не можна використовувати для жодних завдань, пов'язаних з керуванням базою даних.

Що стосується можливостей редагування Query Analyzer, то практично всі вони збереглися і в Management Studio, але в новому продукті всі описані вище обмеження усунуті. З допомогою Management Studio можна редагувати всі типи сценаріїв SQL Server, причому не тільки написані на T-SQL, але й сценарії XML. У разі редагування запитів необов'язково мати постійне з'єднання з сервером, тепер це можна робити і в автономному режимі або в ході сеансу переключитися на інший сервер, на якому цей запит має бути виконаний. Отримане Management Studio графічне відображення плану виконання на виході може бути передано в інший сеанс Management Studio, відповідно можна працювати з отриманими результатами без необхідності підключення до вихідного сервера. Наявний у Management Studio компонент Object Explorer містить всю функціональність Object Explorer із Query Analyzer, але тут також у повному обсязі реалізована підтримка функцій адміністрування.

Робота в автономному режиміДля запуску нового запиту Management Studio існує кілька способів. Вибираючи з меню File пункту New можна створювати запити трьох типів: запит T-SQL, запит Analysis Services MDX, DMS або XMLA або запит SQL Server Mobile. Крім того, створені запити можна запускати з Object Explorer або Solution Explorer, про що ми говоримо далі.

Процес редагування запитів у Management Studio є незалежним від з'єднання. Запити можна запускати, маючи підключення до сервера, не маючи його спочатку і встановивши в потрібний момент або перемикатися на інший сервер для виконання цього запиту. Це дає можливість найбільш природно використовувати передбачену в SQL Server 2000 практику редагування запитів зі сценаріїв і текстових файлів. При переході в режим редагування з'явиться кілька додаткових піктограм редагування запитів, призначених, зокрема, для встановлення, розриву та зміни з'єднання. При редагуванні запитів у Management Studio можна використовувати функцію auto-hide для вікна Object Browser, тоді звільниться додатковий простір екрана для редагування.

Рішення та проекти. Management Studio має розширені можливості редагування, він дозволяє об'єднувати створені сценарії та текстові файли у додатки (solution) та проекти (project). Проект являє собою іменовану колекцію сценаріїв та текстових файлів, які зазвичай розміщуються у стандартному каталозі Windows, що має те саме ім'я, що і сам проект. Програма - це набір з одного або більше проектів, при цьому всі проекти, що входять до складу цієї програми, можуть бути включені в каталог з ім'ям, що відповідає імені програми, але можуть бути і програми, що містять тільки один проект і, відповідно, мають один варіант розміщення. Для створення нового проекту в Management Studio потрібно вибрати меню File, потім New, Project, запускаючи діалогове вікно New Project.

У Management Studio за замовчуванням програмі присвоюється те саме ім'я, що й проекту, а розміщуються програма та проект у каталозі My Documents. У тих випадках, коли необхідно об'єднати велику кількість сценаріїв в один великий проект, який бажано розбити на кілька підлеглих проектів (sub-project), можна зібрати кілька проектів в один додаток з осмисленим ім'ям і задати йому необхідне розміщення. При цьому спочатку створюється новий проект, а потім вказується додаток, до складу якого він має бути включений. Ім'я, яке присвоюється рішенням за умовчанням, може бути змінено. Після того, як були створені проект і відповідне рішення, можна здійснювати навігацію по додатку та проектів, що входять до нього, за допомогою компонента Solution Explorer, як показано на екрані 6 .

Припустимо, потрібно модифікувати кілька об'єктів, що належать до схеми AdventureWorks HumanResources. При цьому частина сценаріїв модифікуватиме таблиці, частина - уявлення, а якісь з них змінюватимуть код збережених процедур. Сценарії кожного з цих типів можуть бути об'єднані у відповідні проекти, а потім проекти об'єднуються в додаток. Один із способів реалізації описаного підходу показаний на екрані 6: тут додаток з ім'ям soln_HR містить кілька проектів, кожен з яких відповідає певному типу змін, що вносяться в схему HR.

Використовуючи функціональність програм і проектів, можна створювати набори сценаріїв для SQL Server Analysis Services або SQL Mobile, групуючи їх у власні проекти. Набори, що визначаються як проекти, будуть розміщені у відповідних каталогах на диску та відображатись у Solution Explorer у вигляді окремих вузлів. Кожному проекту можна призначити ім'я та вказати папку для розміщення на диску. За промовчанням каталог проекту розміщується всередині каталогу програми, і всі файли цього проекту зберігатимуться в цьому каталозі.

Можливість організації файлів у проекти та програми - це лише одна з переваг нової технології роботи зі сценаріями в SQL Server. Крім цього, Management Studio має тісний взаємозв'язок з програмами перевірки вихідного коду, якщо дана система контролю вихідного коду є модулем, що підключається. У пакеті Visual SourceSafe (VSS) є однозначна відповідність між проектами VSS та проектами Management Studio, тому після створення проекту та програми у Management Studio програму цілком можна завантажити у VSS для виконання відповідної перевірки, а потім виконувати перевірку на рівні окремих проектів або файлів. Для доступу до функцій завантаження в систему контролю коду слід клацнути правою кнопкою на будь-якому вузлі Solution Explorer. Налаштувати параметри перевірки коду можна у діалоговому вікні Options, яке викликається з меню Tools програми Management Studio. У цьому вікні (Tools, Options) можна ввімкнути деякі інші функції редагування, такі як нумерація рядків і динамічна довідка.

Інтерактивна робота із сценаріями баз даних.Для редагування бази даних об'єктів T-SQL можна використовувати Object Explorer. Коли ви потрапляєте всередину програмованого об'єкта бази даних, такого як процедура, функція або тригер, що зберігається, ви можете викликати редактор запитів T-SQL, для чого потрібно вибрати New або Modify. Якщо вибрано New, буде використано шаблон, параметри якого можна переглядати та змінювати за допомогою компонента Template Explorer. При виборі варіанта Modify генерується сценарій ALTER, що відповідає вибраному об'єкту. Функції New та Modify замінили компоненти Assisted Editor, що існували в ранніх бета-версіях Management Studio для SQL Server 2005.

Удосконалення плану виконання. Management Studio має два суттєві розширення, пов'язані з можливостями перегляду планів. Тут, як і в Query Analyzer, можна переглядати графічний варіантплану виконання, однак і самі піктограми, і кольорова гама зазнали змін. Крім того, тепер більшість піктограм показує деталі тієї операції, яку SQL Server виконує в теперішній момент. Якщо натиснути значок із символом «+» у нижньому правому куті вікна запиту на план виконання, можна перейти до збільшеного відображення запиту. А якщо вибрати якийсь із вузлів запиту на план виконання, то у діалоговому вікні Properties буде відображено додаткова інформаціяпро цю дію.

Я думаю, багатьом сподобається нова можливість, що з'явилася в Management Studio, що дозволяє зробити графічне зображення плану виконання. Почати можна з прямого висновкуу XML за допомогою SET SHOWPLAN_XML ON. Якщо результати запиту передаються в контейнер, тоді результуючий набір даних включатиме посилання на документ XML, Що містить інформацію про план виконання. Якщо клацнути на цьому посиланні, можна переглянути вміст плану виконання в редакторі XML Management Studio.

З метою графічного перегляду дані XMLможна експортувати в формат, що переноситься (portable). В отриманому наборі даних потрібно клацнути правою кнопкою посилання XML і зберегти дані у вигляді файлу з розширенням.sqlplan, як показано на екрані 7. Якщо відкрити збережений файл через пункт Open меню File, Management Studio відобразить XML-документ у вигляді графічного зображення плану виконання, як показано на екрані 8.

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

Зберемо всі разом

Існуючий SQL Server 2005 інструментарій істотно розширює можливості як управління, так і розробки. Наприклад, інтерфейс SQL Server Management Studio налаштовується, тому в кожному випадку можна для себе вирішити, які функції є найнеобхіднішими, і, відповідно, приховати ті функції, які не будуть використовуватися в роботі. Зрозуміло, у процесі освоєння нових інструментів роботи можна зіткнутися з неминучими під час навчання проблемами, але, як сказав поет, «не пропаде ваша скорботна праця».

Келен Ділані- Незалежний консультант та інструктор з SQL Server. Має сертифікати MCT та MCSE. Автор книги Inside SQL Server 2000 (Microsoft Press). [email protected]

Рон Талмадж- Власник та керівник Prospice LLC, консалтингової компанії в галузі баз даних із Сіетлу. Керівник групи Pacific Northwest SQL Server Users Group має сертифікати MCSD і MCP в SQL Server, веде розсилку PASSnews і є SQL Server MVP. Написав Microsoft SQL Server 7.0 Administrator's Guide (видавництво Prima).