Система автоматизации библиотек


Структура файлов БД ИРБИС64



бет5/18
Дата09.06.2016
өлшемі6.79 Mb.
#124471
1   2   3   4   5   6   7   8   9   ...   18

7.6Структура файлов БД ИРБИС64

7.6.1Структура файла документов и формат записи

Все числовые данные записываются в файл в net представлении. Такой режим позволяет использовать файлы в любой операционной системе независимо!


7.6.1.1Формат записи файла документов (MST)

Запись файла документов является записью переменной длины, состоящей из трех частей: лидера фиксированной длины, справочника и полей переменной длины.


7.6.1.1.1Формат лидера

Лидер состоит из следующих семи целых чисел:

Число бит Параметр

32 MFN – номер файла документов;

32 MFRL – длина записи; (всегда четное число)

32 MFB_LOW – ссылка назад;

32 MFB_HIGH –ссылка назад

Смещение на предыдущий вариант записи имеет длину 8 байт = 4+4; MFB_LOW – младшее слово и MFB_HIGH – старшее слово в полном смешении.

32 BASE – смещение (базовый адрес) полей переменной длины (это общая часть лидера и справочника записи в байтах);

32 NVF – ччисло полей в записи (те число входов в справочнике);


  1. STATUS – ииндикатор записи (BIT_LOG_DEL (1) – логически удаленная запись, BIT_LAST_REC (32) – последний экземпляр записи, BIT_ALL_ZERO (0) – предыдущий вариант записи,

BIT_NOTACT_REC (8)- неактуализированная запись);

32 VERSION – номер версии записи


7.6.1.1.2Формат справочника

Справочник - это таблица, определяющая содержание записи. Каждое поле, которое есть в записи, представлено в справочнике одним входом (те в справочнике точно NVF входов). Каждый вход справочника состоит из 3-х целых чисел:

Число бит Параметр

32 TAG – метка поля;

32 POS – смещение позиции первого символа данного поля в разделе полей переменной длины (в физической записи смещения упорядочены по возрастанию, у первого поля POS = 0);

32 LEN – длина поля в байтах.

Общая длина справочника в байтах будет 12*NVF байт; поле BASE в лидере всегда будет равно 26+12*NVF.


7.6.1.1.3Поля переменной длины

Эта часть записи файла документов содержит поля данных переменной длины (в порядке, указанном в справочнике). Поля данных помещаются одно за другим без разделителей.
7.6.1.1.4Управляющая запись

Первая запись в файле документов – управляющая запись, которая формируется (в момент определения базы данных или при ее инициализации) и поддерживается автоматически. Ее содержание следующее:

Число бит Параметр

32 CTLMFN – резерв;

32 NXTMFN –номер записи файла документов, назначаемый для следующей записи, создаваемой в базе данных;

32 NXT_LOW – младшее слово смещения на свободное место в файле; (всегда указывает на конец файла MST)

32 NXT_HIGH – старшее слово смещения на свободное место в файле 32 MFTYPE – резерв;

32 RECCNT – резерв;

32 MFCXX1 – резерв;

32 MFCXX2 – резерв;

32 MFCXX3 – индикатор блокировки базы данных (0 – нет, >0 – да).

Во время создания и/или актуализации записей файла документов определяется индекс, определяющий позицию каждой записи. Индекс хранится в файле перекрестных ссылок (с расширением XRF).

7.6.2Файл перекрестных ссылок (XRF)


Файл перекрестных ссылок XRF представляет собой таблицу ссылок на записи файла документов. Первая ссылка соответствует записи файла документов с номером 1, вторая – 2 и тд.

Каждая ссылка состоит из 3-х полей:

Число бит Параметр

32 XRF_LOW – младшее слово в 8 байтовом смещении на запись;

32 XRF_HIGH– старшее слово в 8 байтовом смещении на запись

32 XRF_FLAGS – Индикатор записи в виде битовых флагов следующего содержания:

BIT_LOG_DEL (1) - логически удаленная запись;

BIT_PHYS_DEL (2) - физически удаленная запись;

BIT_ABSENT (4) - несуществующая запись;

BIT_NOTACT_REC (8)- неактуализированная запись;

BIT_LOCK_REC (64)- заблокированная запись.

7.6.3Техника актуализации

7.6.3.1Создание новых записей


Новые записи всегда добавляются в конец файла документов с позиции, которая определяется размером файла документов. Присваиваемый номер записи файла документов выбирается из поля NXTMFN управляющей записи.

При добавлении записи NXTMFN возрастает на 1. Кроме того, создается новая ссылка на эту новую запись в файле перекрестных ссылок с флагами –



BIT_NEW_REC + BIT_NOTACT_REC. STATUS новой записи в файле документов имеет значение BIT_LAST_REC.

Флаг BIT_NOTACT_REC указывает факт, что новая запись должна быть затем проинвертирована.


7.6.3.2Модификация существующих записей


При модификации запись записывается всегда в конец файла документов с позиции, которая определяется размером файла документов.

STATUS последней версии записи в файле документов имеет значение BIT_LAST_REC+ BIT_NOTACT_REC, STATUS старой версии записи в файле документов обновляется и становится равен BIT_ALL_ZERO (0)+ BIT_NOTACT_REC. Кроме того, создается новая ссылка на эту новую версию записи в файле перекрестных ссылок с флагом – BIT_NOTACT_REC. Ссылка назад в новой версии записи – поля MFB_LOW, MFB_HIGH - указывает на предыдущую версию записи (не зависимо от того, была ли старая версия записи проинвертирована).

Флаг BIT_NOTACT_REC указывает факт, что новая запись должна быть затем проинвертирована.

После проведения инвертирования записи в отличии от ISIS ссылка назад НЕ становится равной 0, чтобы сохранить возможность ОТКАТА.

Флаг BIT_NOTACT_REC удаляется из файла перекрестных ссылок и файла документов.


7.6.3.3Удаление записей


Удаление записи рассматривается как модификация со следующими дополнительными параметрами:

В файле XRF в XRF_FLAGS добавляется флаг BIT_LOG_DEL и BIT_NOTACT_REC (после удаления записи требуется ее инвертирование).

В файле MST в STATUS добавляется флаг BIT_LOG_DEL.

7.6.4Реорганизация файла документов

Как отмечалось выше, при модификации записей файла документов объем этого файла возрастает и возможны потери дисковой памяти, которую нельзя использовать. Средство реорганизации позволяет сжать файл документов.

Во время фазы копирования файла документов создается файл копии (с расширением BKP), который в дальнейшем может быть использован для восстановления файла документов. Структура и формат этого файла копии те же, что и для файла документов (MST), за исключением того, файл перекрестных ссылок не требуется, так как все записи размещаются без пропусков последовательно. Записи, помеченные как удаленные, в файл копии не записываются. Так как только последняя версия записи записывается в файл копии, выполнить операцию копирования невозможно, если в базе есть хотя бы одна неинвертированная запись (поскольку состояние инверсного файла должно соответствовать содержанию инверсного файла).

Во время фазы восстановления файла документов последовательно читается файл копии и создается файл документов (MST) и файл перекрестных ссылок (XRF). В этот момент все записи, помеченные как логически удаленные, становятся физически удаленными (XRF_FLAG = BIT_PHYS_DEL). Удаленные записи определяются отсутствием в базе данных номеров записей файла документов (MFN).


7.6.5Структура инверсного файла и форматы записей

7.6.5.1Введение


Инверсный файл состоит из 3 физических файлов, два из которых содержат словарь поисковых терминов (в структуре бинарного дерева) и третий содержит список ссылок, соответствующих каждому термину.

В бинарном дереве файл с расширением N01 содержит узлы дерева и файл с расширением L01 – листья. Записи с листьями указывают на файл ссылок IFP.

Взаимосвязь между различными файлами схематически представлена на рис.


N01 файл узлов


Номер первого блока


Корневой блок

Ключ 1……Ключ n


line 22 line 23 line 24
Ключ 1……Ключ n

1-й уровень дерева



line 27
Ключ 1……Ключ n
line 29 line 30 line 34 line 35
Ключ 1……Ключ n

N-й уровень дерева


Ключ 1……Ключ n

Ключ 1……Ключ n

Ключ 1……Ключ n
line 33 line 36 line 37 line 38 line 39 line 40 line 41 line 42 line 54
IFP файл ссылок

L01 файл листьев

Число ссылок > MAX


Ссылка 1Ссылка n

Ссылка 1Ссылка n

Специальный блок

Ссылка 1Ссылка n


line 48

Ссылка 1Ссылка n


line 49

Физически взаимосвязи между файлами -N01 L01- обеспечиваются ссылками, которые представляют собой относительные адреса соответствующих записей. Относительный адрес это порядковый номер записи в данном файле. Структура записи одинакова для N01 и L01 файлов. Размер (длина) записи зависит от реализации (512;1024;2048;4096). (Таким образом, максимальный размер файла L01 N01 определяется как 2Гб*Размер записи) В данной реализации 2048

Адрес корневой записи файла N01 сохраняется как номер первой записи.

Смещение на запись в файле IFP сохраняется в файле L01 и имеет длину 64 байта (в данной реализации используется только младшее слово этого смещения).


7.6.5.2Формат файлов N01 L01


Эти файлы содержат в себе индексы словаря поисковых терминов и состоят из записей (блоков) постоянной длины. Записи состоят из трех частей: лидера, справочника и ключей переменной длины.

7.6.5.2.1Формат лидера записи

Число бит Параметр

  1. NUMBER – номер записи(начиная с 1; в N01 файле номер первой записи равен номеру корневой записи дерева);

  1. PREV – номер предыдущей записи(если нет = -1);

  1. NEXT – номер следующей записи(если нет = -1);

16 TERMS – число ключей в записи;

16 OFFSET_FREE – смещение на свободную позицию в записи (от начала записи);


7.6.5.2.2Формат справочника

Справочник это таблица, определяющая поисковый термин. Каждый ключ переменной длины, который есть в записи, представлен в справочнике одним входом следующего формата:

Число бит Параметр

16 LEN – длина ключа;


  1. OFFSET_KEY – смещение на ключ(от начала записи);

  1. LOW

В N01 файле:

ссылка на запись файла N01 (если LOW > 0) или файла L01

(если LOW < 0), у которых 1-й ключ равен данному.

Положительное значение LOW определяет ветку индекса иерархически более низкого уровня. Самый низкий уровень индекса (LOW < 0) соответствует ссылкам на записи (листья) файла L01;

В L01 файле:

младшее слово 8 байтового смещения на ссылочную запись в IFP;



  1. HIGH

В N01 файле:

всегда 0;

В L01 файле:

старшее слово 8 байтового смещения на ссылочную запись в IFP

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

Cхематически запись может быть представлена в виде рис:



group 50

Вход1…Входn Ключi……….Ключ1

Длина справочника 12*TERMS.

Длина ключей = Размер записи – OFSET_FREE.

Размер свободного места в записи = 16+12*TERMS - длина ключей.

Размер записи зависит от реализации и может быть равен в байтах:

512 ; 1024 ; 2048 ; 4096.

7.6.5.3Формат файла IFP


Файл содержит список ссылок для каждого термина словаря. Список ссылок может быть представлен в 2-х различных форматах. Выбор формата размещения ссылок осуществляется при загрузке словаря из файла Lk1 (этот файл формируется после отбора и сортировки терминов) в зависимости от общего числа ссылок для данного термина. Обыкновенный формат – это заголовок блока и набор упорядоченных ссылок. По превышении определенного числа ссылок (MIN_POSTINGS_IN_BLOCK - в данной реализации 256) формат включает специальный блок и набор блоков обыкновенного формата размер которых определяется по следующей схеме:

блоки 4,8,16,32 Kb для общего числа ссылок соответственно 256-32000 ; 32000-64000 ; 64000-128000 ; 128000 и более.

Такая схема оптимизирует работу с диском в процессе инвертирования записи в базах данных, характеризующихся большим количеством ссылок на термин.


7.6.5.3.1Обыкновенный формат записи IFP

Запись состоит из заголовка и упорядоченного набора ссылок.

Ссылка имеет следующий формат:

Число бит Параметр


  1. PMFN – номер записи;

  1. PTAG – идентификатор поля назначенный при отборе терминов в словарь;

  1. POCC – номер повторения;

32 PCNT – номер термина в поле.

Заголовок имеет следующий формат:

Число бит Параметр


  1. LOW – младшее слово смещения на следующую запись(если нет 0);

32 HIGH – старшее слово смещения на следующую запись(если нет 0);

  1. TOTP – общее число ссылок для данного термина(только в первой записи) ;число ссылок в данном блоке(в следующих записях);

  1. SEGP - число ссылок в данном блоке;

  1. SEGC – вместимость записи в ссылках.

Признак последнего блока – LOW=HIGH= -1
7.6.5.3.2Специальный формат записи IFP

В этом случае первой записью является специальный блок, который представляет собой заголовок (обыкновенного формата), в котором смещения имеют специальные значения = -1001, и набор входов следующего формата:

Число бит Параметр



  1. POSTING – 1-я ссылка из записи обыкновенного формата;

  1. LOW – младшее слово смещения на следующую запись(если нет 0);

32 HIGH– младшее слово смещения на следующую запись(если нет 0);

Число входов кратно 4. Записи, на которые ссылается специальный блок связаны между собой как описано выше. Причем общее количество ссылок для данного термина сохраняется только в специальном блоке.


7.6.5.3.3Модификация записей файла IFP

При выполнении актуализации инверсного файла могут создаваться новые дополнительные записи при добавлении новых ссылок. В этом случае создается новая запись размером равным общему количеству ссылок, если нет специального блока, и размером, равным количеству ссылок в данной записи, если есть. Новая запись создается таким образом, чтобы не нарушалась возрастающая последовательность следования ссылок. Новая запись связывается с существующими через поле NXT_, ссылки распределяются равномерно между старой и новой записью.




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   18




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет