русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Індекси


Дата добавления: 2015-07-09; просмотров: 460; Нарушение авторских прав


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

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

Індекси - це корисний інструмент, що широко застосовується у всіх сучасних СКБД. Коли створюється індекс у поле, БД запам'ятовує відповідний порядок всіх значень цього поля в області пам'яті. Про переваги індексів може говорити наступне: припустимо, що таблиця STUDENTS має кілька тисяч записів, і необхідно знайти студента з конкретним номером студентського квитка. Т.к. запису в таблиці не впорядковані, те СКБД буде змушена переглядати всю таблицю, рядок за рядком, перевіряючи щораз значення поля SNUM на рівність шуканому значенню. При наявності індексу в поле SNUM, система могла б знайти шуканий номер прямо в цьому впорядкованому індексі, і дати інформацію про те, як знайти правильний рядок таблиці.

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

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

Синтаксис команди для створення індексу наступний:

CREATE INDEX <INDEX NAME> ON <TABLE NAME>



«COLUMN NAME> [,<COLUMN NAME>] .. .) ;

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

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

CREATE INDEX SFAMIDX ON STUDENTS (SFAM) ;

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

Для створення унікальних (не утримуючих повторюваних значень) індексів використають ключове слово UNIQUE у команді CREATE INDEX. Фактично такий індекс буде первинним ключем таблиці. Наприклад, для таблиці STUDENTS поле SNUM підходить у якості первинного ключа, і він стане першим кандидатом для унікального індексу. Створити його можна командою:

CREATE UNIQUE INDEX

SNUMIDX ON STUDENTS (SNUM);

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

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

Однак, для видалення індексу, необхідно знати його ім'я. З обліком цього команда для видалення має наступний синтаксис:

DROP INDEX <INDEX NAME>;

Наприклад, для видалення створеного індексу на прізвище студента, можна скористатися наступною командою:

DROP INDEX SFAMIDX;

Урахуйте, що видалення індексу в жодному разі не впливає на дані, які втримуються в полях.



<== предыдущая лекция | следующая лекция ==>
Створення таблиць | Визначення умов перевірки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.799 сек.