Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 4БД.doc
Скачиваний:
28
Добавлен:
30.05.2020
Размер:
115.2 Кб
Скачать

2.3 Видалення таблиці

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

DROP TABLE ім’я_таблиці [RESTRICT | CASCADE]

Слід зазначити, що ця команда видалить не тільки вказану таблицю, але і всі вхідні в неї рядки даних. Якщо вимагається видалити з таблиці лише дані, зберігши структуру таблиці, слід скористатися командою DELETE.

Оператор DROP TABLE додатково дозволяє указувати, чи слідує операцію видалення виконувати каскадно. Якщо в операторі вказано ключове слово RESTRICT, то за наявності в базі даних хоча б одного об'єкту, існування якого залежить від таблиці, що видаляється, виконання оператора DROP TABLE буде відмінено. Якщо вказано ключове слово CASCADE, автоматично віддаляються і всі інші об'єкти бази даних, чиє існування залежить від таблиці, що видаляється, а також інші об'єкти, залежні від об'єктів, що видаляються. Загальний ефект від виконання оператора DROP TABLE з ключовим словом CASCADE може виявитися вельми відчутним, тому подібні оператори слід використовувати з максимальною обережністю.

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

2.4 Індекси

Індекси в стандарті язика

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

Індекс – це набір посилань, впорядкованих по певному стовпцю таблиці, який в даному випадку називатиметься індексованим стовпцем. Хоча індекс і пов'язаний з конкретним стовпцем (або стовпцями) таблиці, все ж таки він є самостійним об'єктом бази даних.

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

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

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

CREATE [UNIQUE] INDEX ім’я_індекса

ON ім’я_таблиці (ім’я_колонки[ASC|DESC][,...n])

Вказані в операторі стовпці складають ключ індексу. Індекси можуть створюватися тільки для базових таблиць, але не для уявлень. Якщо в операторі вказано ключове слово UNIQUE, унікальність значень ключа індексу автоматично підтримуватиметься системою. Вимога унікальності значень обов'язкова для первинних ключів, а також можлива і для інших стовпців таблиці (наприклад, для альтернативних ключів). Хоча створення індексу допускається у будь-який момент, при його побудові для вже заповненої даними таблиці можуть виникнути проблеми, пов'язані з дублюванням даних в різних рядках. Отже, унікальні індекси (принаймні, для первинного ключа) має значення створювати безпосередньо при формуванні таблиці. В результаті система відразу візьме на себе контроль за унікальністю значень даних у відповідних стовпцях.

Якщо створений індекс згодом виявиться непотрібним, його можна видалити за допомогою оператора

DROP INDEX ім’я_індекса

Індекси в середовищі MS SQL Server

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

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

Соседние файлы в папке лекции