русс | укр

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

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

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

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


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

Індекси.


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


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

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

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

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

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

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

CREATE INDEX <INDSX 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 є неунікальні значення. Тому рекомендується створювати індекси відразу після того, як створена таблиця і до введення в неї яких-небудь значень. Цікава і така особливість унікального індексу: якщо в ньому використовується більше одного поля (тобто він є комбінацією значень), то. взагалі кажучи, кожне з цих полів може і не бути унікальним.

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

Проте, для видалення індексу, необхідно знати його ім'я. З урахуванням цього команда для видалення має наступний синтаксис: DROP INDEX <INDEX NAME>;

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

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

 



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


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


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

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

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


 


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

 
 

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

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