Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций

Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций. Дана інформація розміщається у відповідних файлах, що має розширення *.mdf для бази даних і *.ldf -для журналу транзакций. У файлі бази даних записується інформація про основні її об'єкти - таблицях, індексах і т.д., а у файл журналу трансакцій інформація про процес роботи з трансакціями (контроль цілісності даних, стан бази даних до і після виконання трансакції).

Створення бази даних у системі SQL-сервер може здійснюватися такими способами:

• за допомогою команди CREATE DATABASES.

• за допомогою утиліти SQL Server Enterprise Manager.

Для створення бази даних за допомогою SQL Server Enterprise Manager на першому етапі необхідно виконати деяке настроювання самої утиліти. Для цього, після її запуску, виберіть у лівому списку об'єктів групу SQL Server Group, у якій клацніть на імені необхідного SQL-сервера. Після цього, скориставшись командою Edit SQL Server Registration properties меню Action, установите наступні настроювання підключення утиліти до даного SQL-сервера.

Server - за допомогою цього списку визначається база даних, для якої відбувається настроювання;

Use Windows NT authentication - при підключенні утиліти до SQL-сервера в якості імені і пароля користувача передаються ім'я і пароль облікового запису користувача в системі Windows NT;

Use SQL Server authentication - настроювання імені і пароля користувача SQL-сервера. При цьому в полючи Login Name і Password варто ввести відповідно ім'я і пароль зареєстрованого користувача SQL-сервера. Для підвищення безпеки або у випадку, коли комп'ютером, на який установлений SQL-сервер, користуються кілька людей, можна установити опцію Always prompt for login and password, що дозволить щораз при спробі підключення до SQL-сервера утиліти SQL Server Enterprise Manager запитувати ім'я і пароль користувача;

Server Group - вибір групи серверів баз даних;

Show system databases and system objects - вся системна інформація в системі SQL-сервер (наприклад, перелік баз даних, імена і паролі користувачів і т.д.) зберігається в спеціальних системних базах даних. Дана опція використовується для здійснення доступу користувача до них (спробуйте підключитися до SQL-сервера, скасовуючи і встановлюючи цю опцію, що дозволить Вам виділити групу системних баз даних; перегляньте їхній зміст). Варто звернути особливу увагу на базу даних tempdb. Вона служить для збереження тимчасової інформації, використовуваної в процесі роботи SQL-сервера: тимчасові таблиці для сортування даних, збереження значень перемінних і т.д. В процесі використання для неї не створюється журнал транзакций, що значно збільшує швидкість роботи. Не використовуйте цю базу даних для збереження необхідної Вам інформації, тому що при перезавантаженні сервера вміст цієї бази даних очищається;

Automatically start SQL Server when connecting – вибір цієї опції визначає, чи варто виконувати запуск SQL-сервера при спробі підключення до нього за допомогою розглянутої утиліти.

Слід також зазначити той факт, що процедура створення бази даних у SQL-сервері вимагає наявності прав адміністратора сервера, у зв'язку з чим необхідно упевнитися в том. що при підключенні було використане ім'я користувача sa.

Наступним кроком буде вибір групи Databases у списку використовуваного SQL-сервера. Результатом цієї дії буде відображення в правій частині діалогового вікна утиліти всіх наявних баз даних на використовуваному сервері. Графічне відображення баз даних в утиліті SQL Server Enterprise Manager здійснюється за допомогою спеціальних значків - піктограм. Вибір команди New Database меню Action дозволяє створити нову базу даних у використовуваному сервері. Результатом цієї дії буде відображення на екрані діалогового вікна введення параметрів створюваної бази даних:

Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru

У поле Name даного діалогового вікна вказується ім'я створюваної бази даних. При цьому в списку Database files відображається ім'я файлу, що буде створений для цієї бази даних. Тут також можна змінити ім'я, шлях і вихідний розмір цього файлу. Якщо в процесі використання бази даних планується розміщення її на декількох дисках, то в цьому випадку можна створити так названі вторинні файли бази даних (secondary - розширення *.ndf). Для цього в списку Database files варто додати ім'я нового файлу бази даних, вказати до нього шлях і вихідний розмір. У цьому випадку в первинному (primary) файлі розташовується основна інформація про базу даних. При недостачі вільного місця для первинного файлу бази даних інформація, що додається, буде розмішатися у вторинних файлах.

Опція Automatically grow file даного діалогового/вікна дозволяє чи забороняє автоматичний ріст розміру бази даних. При цьому збільшення росту можна вказати за допомогою абсолютної величини в мегабайтах (In megabytes) чи процентному співвідношенні (By percent).

Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru

Рисунок 3 - Діалогове вікно створення бази даних

Якщо планується запис великих обсягів інформації в створювану базу даних, то рекомендується установити збільшення росту як найбільше, тому що в противному випадку це приведе до уповільнення роботи SQL-сервера. Область Maximum file size визначає максимальний розмір створюваної бази даних. В цьому випадку вибір опції Restrict filegrowth дозволяє обмежити ріст бази даних визначеним значенням у мегабайтах. З іншого боку, опція Unrestricted filegrowth відключає режим перевірки розміру бази даних, тобто в цьому випадку ріст розміру бази даних може бути необмеженим (з урахуванням вільного місця на диску і даних табл. 1). Якщо ж опція Automatically grow file відключає ріст бази даних, то в цьому випадку її розмір буде обмежений числовим значенням полючи Initial size у списку Database files.

Для прикладу створіть базу даних EDUCATION, у якій надалі буде змодельована структура даних (успішність студентів). Після коректного завершення додавання бази даних відповідна піктограма з'явиться в групі Databases. Скориставшись символом +, розкрийте об'єкти знову створеної бази даних, короткий опис яких приведено в таблиці 3.

Таблиця 3 Основні об'єкти структури бази даних SQL-сервера

Об'єкт Опис
Tables Таблиці бази даних
Views Види, що дозволяють відображати дані з таблиць
Stored Procedures Збережені процедури
Extended Stored Procedures Додаткові збережені процедури
Об'єкт Опис
Users Користувачі, що володіють дозволом до доступу в базу даних
Roles Ролі бази даних, що дозволяють поєднувати користувачів у групи для здійснення доступу до даних
Rules Правила бази даних
Defaults Стандартні установки бази даних
User Defined Data Types Обумовлені користувачем типи даних

В знову створеній базі даних уже є кілька таблиць. Це системні таблиці, у яких розміщена інформація про базу даних. Також у SQL-сервері існує перелік ролей доступу до об'єктів бази даних, використовуваних для всіх об'єктів сервера. Їхній перелік і короткий опис представлені в таблиці 4.

Таблиця 4 Короткий опис ролей, що використовуються для доступу до бази даних

Роль Опис
db_owner Повний доступ до бази даних
db_accessadmin Можливість додавання і видалення користувачів
db securityadmin Можливість керування всіма процесами доступу користувачів
db_ddladmin Виконання всіх команд DDL (Data definition language - мова визначень), крім GRANT, REVOKE чи DENY
dbjbackupoperator Виконання команд резервного копіювання бази даних
db_datareader Можливість читання всіх даних з будь-яких таблиць бази даних
db_datawriter Можливість зміни всіх даних з будь-яких таблиць бази даних
db_denydatareader Можливість обмеження доступу до об'єктів бази даних з використанням оператора SELECT
db_denydatawriter Можливість обмеження доступу до об'єктів бази даних з використанням операторів INSERT, UPDATE і DELETE
Public Користувачі без надання спеціальних ролей мають роль доступу public

Таблиця 5 Короткий опис ролей, використовуваних для доступу до сервера баз даних

Роль Опис
sysadmin Виконання будь-яких функцій SQL-сервера
serveradmin Настроювання конфігурації і виконання функцій закриття SQL-сервера
setupadmin Керування зв'язками між серверами і їхніми процедурами запуску
securityadmin Керування доступом, можливість створення баз даних, доступ до log-файлу помилок
processadmin Керування процесами, що виконуються в SQL-сервері
dbcreator Керування створенням і видаленням баз даних
diskadmin Керування файлами на диску SQL-сервера

Для перегляду користувачів, що мають доступ до створеної бази даних, є група Users у списку об'єктів поточної бази даних. Єдиним користувачем знову створеної бази даних є dbo (Database Owner - власник бази даних). Для перегляду встановлених йому ролей необхідно скористатися наступними діями:

• виберіть групу Users;

• клацніть мишею на імені користувача dbo;

• з меню Action виберіть команду Properties.

Результатом цих дій буде відкриття діалогового вікна установки ролей доступу до бази даних для користувача dbo (рис.4).

Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru

Рис 4 - Діалогове вікно визначення ролей доступу до бази даних користувачам dbo

Таблиці бази даних

В реляційних базах даних для збереження інформації використовуються таблиці, що представляють собою двовимірні масиви. Створення таблиць у системі SQL-сервер можна здійснити за допомогою команди SQL CREATE TABLE, підключившись до сервера бази даних за допомогою утиліти SQL Server Query Analyzer чи скориставшись утилітою SQL Server Enterprise Manager. Розглянемо другий спосіб створення таблиць.

Виберіть в списку об'єктів бази даних групу Tables, після чого в правій частині утиліти SQL Server Enterprise Manager буде відображений список усіх її таблиць, у тому числі і системних. Виконаєте команду New Table меню Action, після чого на екрані відобразиться запит введення імені створюваної таблиці. Для зручності рекомендується використання символів у верхньому регістрі в назві таблиць, що дозволить візуально відрізняти таблиці користувачів від системних.

Для приклада скористаємося структурою таблиці STUDENTS. Отже на запит введення імені варто ввести STUDENTS, після чого підтвердити введення натисканням кнопки ОК. Потім утиліта відобразить на екрані вікно дизайнера таблиць. В стовпчик Column Name необхідно буде ввести назву стовпця таблиці (у нашому випадку SNUM), після чого визначити його тип даних, скориставшись стовпчиком Datatype вікна дизайнера. Тут у списку відображається перелік усіх доступних типів даних, визначених у SQL-сервері. Після вибору типу даних для створюваного полючи система автоматично підставить для нього параметри Length (розмір поля), Precision (десятковий розмір) і Scale (точність числового типу даних). У залежності від типу даних система визначить доступ до редагування цих параметрів.

Якщо необхідно зробити видалення рядка в дизайнері таблиць, то для цього потрібно клацнути мишею на кнопку Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru , розташовану ліворуч від даного рядка, що приведе до її виділення. Натискання кнопки Delete викликає діалогове вікно запиту на її видалення.

Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru

Рисунок 5 - Діалогове вікно дизайнера таблиць

Якщо введення даних у створюване поле вимагає наявності якого-небудь значення, установлюваного за замовчуванням, то його варто ввести в колонку DefaultValue вікна дизайнера таблиці. У таблиці STUDENTS зручно скористатися з даної можливості при вказівці мінімальної стипендії студентам навчального закладу. Введення в колонку Default Value для полючи STIP значення 17 дозволить автоматично встановлювати цю суму для кожного студента, що додається. При використанні цієї можливості варто бути особливо акуратним, тому що можна установити, наприклад, мінімальну стипендію новому чи відміннику двієчнику, розмір стипендії, яких відрізняється від застосовуваного за замовчуванням.

В СУБД є підтримка так званих NULL значень. За допомогою SQL-сервера можна визначити їхнє використання в таблицях. Іншими словами, забравши прапорець у колонку Allow Nulls для якогось поля, можна вимагати обов'язкове введення значень у це поле. Наприклад, цим можна скористатися при введенні номерів студентських квитків у поле SNUM. Це поле є ключовим (про створення ключових полів за допомогою SQL Server Enterprise Manager буде сказано нижче), що, у свою чергу, зажадає обов'язкове введення значень.

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

Іншими словами, якщо виникає необхідність у додаванні до таблиці полючи, що автоматично збільшує своє значення (наприклад, поле-лічильник), те для нього потрібно настроїти властивість Identity. Для цього в першу чергу в поле варто забрати прапорець Allow Nulls, щоб уникнути невизначеності інформації. Наступним кроком буде установка прапорця в поле Identity, після чого потрібно ввести початкове значення Identity Seed і значение-инкремент Identity Increment ( сума, щододається,).

Створимо структуру даних EDUCATION, скориставшись наступними даними для визначення параметрів полів.

Таблиця 4 Структура таблиць бази даних EDUCATION

Column name Datatype Length Precision Scale
Таблиця STUDENTS
SNUM int
SFAM char
SIMA char
SOTCH char
STIP small-money
Таблиця PREDMET
PNUM smallint
PNAME char
TNUM int
HOURS smallint
COURS tinyint
Таблиця TEACHERS
TNUM int
TFAM char
TIMA char
TOTCH char
TDATE small-datetime

При необхідності внесення змін у структуру таблиці після її створення, дизайнер таблиць можна завжди викликати, скориставшись командою Design Table меню Action, попередньо вибравши таблицю в списку.

Наступним етапом розробки структури навчальної бази даних EDUCATION буде внесення інформації в створені таблиці. Для зміни вмісту таблиць за допомогою утиліти SQL Server Enterprise Manager необхідно виконати наступні дії:

• вибрати необхідну таблицю в списку;

• виконати команду Open Table / Return all rows меню Action;

• якщо в таблиці знаходиться занадто багато записів, то можна обмежити вибір, скориставшись командою Open Table / Return Top меню Action. У цьому випадку на екран буде виведене діалогове вікно, у якому необхідно буде ввести номер запису, з яким потрібно здійснювати перегляд і редагування даних.

Результатом виконання цих дій буде відкриття редактора таблиці утиліти SQL Server Enterprise Manager. Використовуючи клавіші переміщення курсору, можна здійснити перехід між полями і записами. При установці курсору в поле нового запису вона буде автоматично додана. Якщо необхідно зробити видалень запису таблиці, то для цього потрібно клацнути мишею на кнопку Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru , розташовану ліворуч від даного рядка, що приведе до її виділення. Натискання кнопки Delete викликає діалогове вікно запиту на видалення цього запису.

Система автоматично перевіряє введення інформації на відповідність типу даних полів. Іншими словами, користувачу не удасться ввести в поле STIP таблиці STUDENTS строкове значення.

Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru

Рисунок 6 - Діалогове вікно редактора таблиць

Використання кнопки Show/Hide SQL Pane Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru дозволяє чи відобразити забрати панель уведення SQL-команд. При цьому діалогове вікно редактора розбивається на двох частин для введення необхідних команд SQL. По завершенні введення цих команд варто обновити результати в таблиці, скориставшись кнопкою Run Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru , розташованої на панелі інструментів редактора. Тут також можна забрати/вивести з екрана панель результатів запиту, скориставшись кнопкою Show/Hide Results Pane Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru . Якщо в процесі написання SQL-команди з'являється необхідність переконатися в коректності даної команди, то варто скористатися кнопкою Verify SQL Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru , що здійснить перевірку і виведе відповідні попередження, не звертаючи при цьому до таблиці бази даних. Використання цієї можливості прискорює роботу з SQL-сервером при наявності в таблицях бази даних великих обсягів інформації.

Короткі теоретичні відомості. Процес створення бази даних у системі SQL-сервер складається з двох етапів: створення власне бази даних і її журналу транзакций - student2.ru

Рисунок 7 - Панель SQL діалогового вікна редактора таблиць

Наши рекомендации