Індекс бази даних ІРБІС
Матеріал з Wikipedia
Індексбази даних ІРБІС – спеціальна структура, що є частиною бази даних, що забезпечує швидкий пошук.
Термінсловникнабув широкого поширення і фактично став в ІРБІС-спільноті свого роду заміною поняттяіндекс(див. підрозділСловник бази даних).
У базах даних ІРБІС використовуєтьсяінвертований індекс, який прийнято називатиінвертований файл(також використовують термінінверсний файл).
Індексстворюється для кожної бази даних ІРБІС.
Для формулювання запитів, за допомогою яких виконується швидкий пошук, служить мова запитів ІРБІС.
Зміст
Словник бази даних
Частословниквикористовують як синонім поняттяіндексбази даних. Хоча, строго кажучи,словник- лише частинаіндексу, поряд зісписком індексних посилань(див. підрозділСтруктура індексу бази даних ІРБІС) .
Примітка: користувачам добре знайомий словник, представлений безпосередньо в графічному інтерфейсі в ряді АРМ системи ІРБІС; можливо, тому термін "словник" набув широкого поширення і фактично став в ІРБІС-спільноті свого роду заміною поняття "індекс".
Визначенняіндексубази даних ІРБІС
Для побудовиіндексу(і підтримки в актуальному стані) потрібне його визначення. Визначенням служать:ТВП для інвертованого файлататаблиця актуалізації.
ТВП для інвертованого файлу
ТВП для інвертованого файлу– ТВП, яка визначає правила вибору елементів для інвертованого індексу бази даних ІРБІС.
У файловій структурі кожної бази передбачено однуТВП для інвертованого файлу. Детальніше див.підрозділіТВП для інвертованого файлустаттіФайли ІРБІС.
Типові бази даних (БД електронного каталогу, повнотекстова БД тощо) містять у собі відповідні типовіТВП для інвертованого файла.
Структураіндексубази даних ІРБІС
Індексявляє собою сукупність двох структур:словник пошукових термініву структурі бінарного дерева та списокіндексних посилань, що відповідають кожному терміну.
Словник пошукових термінів
Елементи, створені за допомогоюТВП для інвертованого файлу, становлять словник пошукових термінів для бази даних.
Список індексних посилань
Система пов'язує з кожнимпошуковим терміномсписокіндексних посилань, що забезпечують необхідний зв'язок із записами. Кожен термін має стількиіндексних посилань, скільки разів він зустрічається у базі даних.
Структура індексного посилання
Обслуговування індексу
Інвертований індекс в ІРБІС не повністю автоматизований, і в певних ситуаціях може знадобитися втручання адміністратора баз даних ІРБІС.
Можуть виникнути такі ситуації, які потребують обслуговування індексу:
- Нові записи, введені у файл документів, недоступні під час пошуку.
- Записи, які піддавалися модифікації, доступні під час пошуку, але під старими елементами доступу.
- Віддалені записи все ще зареєстровані під їх елементами доступу, однак записи не відображаються.
- ТВП для інвертованого файлубуло змінено (результати пошуку залишилися колишніми).
У системі ІРБІС є дві операції, які приводять індекс бази даних в актуальний стан, що відповідаєТВП для інвертованого файлутавміст бази даних: це операціїстворення словникаіактуалізації словника. Їхня відмінність полягає в алгоритмі та особливостях застосування.
Прапор актуалізації
Прапор актуалізації дозволяє відзначати кожен запис бази даних якактуалізованийабонеактуалізований, при цьому вважається, що:
- записактуалізовано- значить інвертований індекс відображає її вміст;
- записнеактуалізована– отже інвертований індекс НЕ відбиває її вміст.
Завдяки використанню в системі ІРБІС даного прапора можливо:
- встановити факт наявностінеактуалізованихзаписів і, відповідно, зробити висновок про необхідність привестиінвертований індексу актуальний стан;
- порахувати співвідношенняактуалізованихтанеактуалізованихзаписів, відповідно до яких приймати рішення про приведенняінвертованого індексув актуальний стан за допомогоюстворення словникаабоактуалізації.
Створення словника
Створення словника – це створення інвертованого індексу з використаннямТВП для інвертованого файлуна основі всіхзаписів(документів) бази даних.
Типові приклади ситуацій, у яких виконують створення словника:
- є значна кількість неактуалізованих записів у порівнянні із загальною кількістю записів у базі даних;
- було додано значну кількість текстів до повнотекстової бази даних;
- було зміненоТВП для інвертованого файла.
Алгоритм створення словника передбачає три етапи, які можуть бути виконані окремо:
Актуалізація словника
Типові прикладиситуацій, у яких виконують створення словника:
- кількість неактуалізованих записів невелика порівняно із загальною кількістю записів у базі даних.
Опис механізму актуалізації інвертованого файлу у зв'язку зі зміною окремого запису див. у статті Механізм актуалізації запису.
Реорганізація словника
Реорганізація словника є структурне перебудоваінвертованого файлаз метою зменшення розміру файлу та підвищення швидкодії роботи з ним.
Виникнення необхідності реорганізації словника пов'язане з тим, що в результаті виконання актуалізації словника може відбуватися ускладнення структури файлу інвертованого і поява «порожнеч», які реорганізація усуває.
Файлиіндексубази даних ІРБІС
Індексбази даних ІРБІС зберігається на файловій системі у вигляді трьох файлів:словник пошукових термініву файлах .n01 та .l01; списокіндексних посиланьу файлі .ifp.
У бінарному дереві файл із розширенням .n01 містить вузли дерева та файл із розширенням .l01 – листя. Записи з листям вказують на файл посилань .ifp.
Структура запису однакова для .n01 та .l01 файлів. Розмір (довжина) запису залежить від реалізації (512, 1024, 2048, 4096). Таким чином, максимальний розмір файлів .l01 та .n01 визначається як 2 Гб * розмір запису. У цьому реалізації обсяг запису 2048.
Адреса кореневого запису файлу .n01 зберігається як номер першого запису.
Зміщення на запис у файлі .ifp зберігається у файлі .l01 і має довжину 64 байти (у цій реалізації використовується лише молодше слово цього усунення).
Формат файлів .n01 та .l01
Файли складаються із записів (блоків) постійної довжини. Записи складаються з трьох частин: лідера,довідника та ключів змінної довжини.