Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / lab4OBDIndexuv.doc
Скачиваний:
9
Добавлен:
07.02.2016
Размер:
91.65 Кб
Скачать

Індексування баз даних

Для проведення прискореного пошуку необхідно мати індексний файл. Вони мають розширення .IDX або .CDX

Якщо файл проіндексований, команди, які зв'язані з рухом у файлі БД, (DISPLAY,EDIT...) переміщають покажчик записів у відповідності з індексом, а не з фізичним порядком розташування записів. Команди GO TOP і GO BOTTOM установлюють покажчик записів не на перший, а на початковий (кінцевий) запис індексу відповідно.

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

У FOXPRO можна створити два типи індексних файлів :

  1. - звичайний(.IDX) , який містить один індексний ключ;

  1. - мультиіндексний(.CDX)- зберігає кілька індексів (з'єднання декількох простих інд. файлів).

Кожен індекс у мультиіндексному файлі називається маскою (TAG- етикетка). Кожен TAG має своє ім'я. Мультиіндексний файл може бути двох видів: структурний з ім'ям, яке збігається з ім'ям бази даних і звичайний мультиіндексний файл із довільним ім'ям. Структурний файл автоматично відкривається разом із усією базою. Його не можна закрити, хоча можна зробити не головним.

INDEX ON<вир,ключ> ТО <IDX-файл>

INDEX ON<вир,ключ> ТО TAG<ім'я тега> OF<CDX.файл>

К обом командам можна додавати наступні опції:

[FOR<умова>][COMPACT][DESCENDING][UNIQUE][ADDITIVE]

Опції:

  1. <вир>- індексний ключ . Звичайно ключ означає ім'я полю, по якому упорядкований файл. Ключ може бути складним (по кілька полів), функцією полів і перемінних.

  1. TO <IDX-файл>- задає ім'я однойменному файлу.

  1. TAG<ім'я тега>[OF<CDX-файл>] задає ім'я тега в мультиіндексному файлі. Якщо в команді є фраза OF CDX-файл, то створений структурний мультиіндексний файл з вказаним ім'ям. Якщо ні, то CDX файл буде мати ім'я, яке збігається з ім'ям DВF-файлу. Якщо CDX файл створений , то доповнюється новим тегом.

  1. FOR<умова>- режим добору в індекс тільки тих записів, що відповідають заданої умові.(прискорюється доступ до даних)

  1. COMPACT- створюється компактний IDX-файл. Доцільно складати тільки компактні індекси.

  1. DESENDING- індексування тільки по убуванню (тільки для CDX-файлів). Для IDX файлів індекс завжди по зростанню.

  1. UNIQUE- якщо в БД зустрічаються записи з однаковим значенням ключа, усі, крім першої, ігноруються (SET UNIAUE).

  1. ADDITIVE- знову створені індексні файли не закриють уже відкриті до цього часу. За замовчуванням вони закриваються.

Приклад (індекс по зростанню табельного номера)

INDEX ON tab TO kadrtab.idx COMPACT

LIST tab,FAM

Файл kadrtab.idx містить значення tab і номера цих записів у

базі даних. Його можна переглянути командою MODIFY FILE

KADRTAB.IDX

USE kadr

INDEX ON FAM TO kadrpol FOR pol='м' COMPACT

LIST FAM,POL

Створений IDX. файл потрібно відкрити при внесенні нових записів або редагуванні старих :

USE [<DBF-файл>]/[IN галузь] - указівка робочої області (наступна робота буде о робочих областях)

[AGAIN][NOUPDATE][INDEX<список>[ORDER[<выр>/<IDX-файл>/

[TAG]<ім'я тега>[OF <CDX-файл>][ASCENDING/DESCENDING]]]]

[ALIAS<псевдонім>]- ще одне ім'я для DBF

  1. AGAIN - уже відкритий файл для іншої робочої області. В області, де він був відкритий раніше, він доступний для READONLK. Але індекс може бути відкритий в одній робочій області.

  1. NOUPDATE- база тільки для перегляду.

Новий USE відкриває нову базу з закриттям старої.

Відкрити тільки індекси:

SET INDEX TO [<список інд ф>

[ORDER<вир>/<IDX-файл/[TAG]<ім'я тега>

[OF <CDX-файл][ASCENDING/DESCENDING]][ADDITIVE]

  1. ORDER<вир>- номер головного індексу в списку або серед тегов у CDX (номер по порядкові створення)

  1. ORDER- без опції головний індекс не призначений.

  1. ASCENDING/DESCENDING- визначає порядок використання (зростання, убування), якщо при створенні був використаний протилежний закон.

Закрити індекс можна CLOSE INDEX.

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

Команда

SET ORDER TO N

дозволяє поміняти головний індекс.

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

REINDEX

Ця команда по черзі перебудовує всі індексні файли.

Соседние файлы в папке Базы данных