
- •ЛЕКЦІЯ 4
- •План
- •Створення бази даних
- •Створення бази даних в середовищі MS SQL Server
- •Формальний синтаксис створення БД
- •Формальний синтаксис створення файлу в БД
- •Створити базу даних, причому для даних визначити три файли на диску С, для
- •Зміна бази даних
- •Видалення бази даних
- •Таблиця
- •1.Як називатиметься таблиця?
- •Створення таблиці
- •Створити таблицю для зберігання даних про товари, що поступають в продаж в деякій
- •Створити таблицю для збереження відомостей про постійних клієнтів з вказівкою назв міста і
- •Зміна таблиці
- •Додати в таблицю Клієнт поле для номера розрахункового рахунку
- •Видалення таблиці
- •Індекс –набір посилань, впорядкованих по певному стовпцю таблиці, який в даному випадку називатиметься
- •Створення індексу
- •Типи індексів
- •Некластерні індекси
- •Кластерний індекс
- •Способи визначення індексу
- •CREATE [ UNIQUE ] [CLUSTERED | NONCLUSTERED]
- •Створити унікальний кластерний індекс для таблиці Клієнт по стовпцю Прізвище в первинній групі
- •Створити унікальний некластерний індекс для таблиці Клієнт по стовпцях Прізвище і Ім'я в

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

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

Способи визначення індексу
автоматичне створення індексу при створенні первинного ключа;
автоматичне створення індексу при визначенні обмеження цілісності UNIQUE ;
створення індексу за допомогою команди CREATE INDEX

CREATE [ UNIQUE ] [CLUSTERED | NONCLUSTERED]
INDEX ім’я_індекса ON ім’я_таблиці(ім’я_колонки [ASC|DESC][,...n])
[WITH [PAD_INDEX]
[[,] FILLFACTOR=фактор_заповнення] [[,] IGNORE_DUP_KEY]
[[,] DROP_EXISTING]
[[,] STATISTICS_NORECOMPUTE] ] [ON ім’я_групи_файлів ]

Створити унікальний кластерний індекс для таблиці Клієнт по стовпцю Прізвище в первинній групі файлів
CREATE UNIQUE CLUSTERED INDEX index_klient1
ON Клієнт (Прізвище)
WITH DROP_EXISTING ON PRIMARY

Створити унікальний некластерний індекс для таблиці Клієнт по стовпцях Прізвище і Ім'я в первинній групі файлів. Крім того, елементи індексу будуть впорядковані по убуванню. Також заборонимо автоматичне оновлення статистики при зміні даних в таблиці і встановимо фактор заповнення індексних сторінок на рівні 30%.
CREATE UNIQUE NONCLUSTERED INDEX index_klient2
ON Клієнт (Прізвище DESC,Ім’я DESC) WITH FILLFACTOR=30 STATISTICS_NORECOMPUTE
ON PRIMARY