Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

1. Характеристика субд HyTech Типовые функции современной субд

Рассмотрим следующие типовые функции современных СУБД:

  • Управление данными во внешней памяти;

  • Управление данными в оперативной памяти;

  • Управление транзакциями, обеспечение многопользовательского доступа;

  • Обеспечение отказоустойчивости, т.е. возможности восстановления согласованного состояния базы данных (БД) после аппаратного или программного сбоя;

  • Поддержка SQL и процедурных языков для работы с данными;

  • Реализация средств сетевого взаимодействия и поддержки распределенных архитектур;

  • Разграничение доступа к данным.

1.1 Управление данными во внешней памяти

Управление данными во внешней памяти

Управление данными во внешней памяти включает:

  • Организацию структур внешней памяти для хранения данных, непосредственно входящих в БД;

  • Организацию служебных данных, например, индексов или словаря описания данных.

Организация хранения информации на внешнем устройстве

Управление хранением информации на внешнем носителе включает:

  • Политику размещения данных на внешних носителях;

  • Политику выделения дискового пространства при росте размера БД;

  • Контроль использования дискового пространства.

Политика размещения данных на внешних носителях в СУБД HyTech

Политика размещения данных основана на понятии файла. Политика выделения дискового пространства и контроль использования дискового пространства вынесены из СУБД и выполняются на уровне файловой системы. Администратор СУБД получает при управлении хранением информации все присущие для используемой файловой системы плюсы и минусы.

СУБД HyTech :

  • Имеет возможность размещения таблиц в заданных каталогах;

  • Поддерживает возможности по взаимодействию с внешними программами;

  • Поддерживает диагностику работы с дисковым пространством.

Организация данных в таблицах HyTech

В СУБД HyTech данные одной таблицы могут лежать в двух файлах. «Старые» данные лежат в постоянной части (файл с расширением .HDT), в дифференциальной части лежат свежие изменения (файл с расширением .HDR). В процессе упаковки таблицы данные переливаются из дифференциальной в постоянную часть, перестраиваются индексы. При выполнении операции упаковки создаются копии новой постоянной части и ассоциатора (с расширением .$DT и .$AS), в которые переносится обновленная информация. После успешного завершения этого процесса старая постоянная часть таблицы и ее ассоциатор удаляются, а построенные вновь — переименовываются, занимая их место. В процессе обновления индексы удаляются и опционально могут быть построены вновь.

Структура файлов, реализующих таблицы субд HyTech

Расширение файла

Описание файла

HTB

Описатель таблицы, содержащий сведения о структуре записи таблицы.

HDT

Область данных постоянной части.

HAS

Ассоциатор постоянной части.

HDN

Оглавление журнала.

HDR

Тело журнала.

Организация индексов в субд HyTech

Индексы предназначены для оптимизации доступа к данным при выполнении поисковых запросов. В СУБД HyTech индексы организованы на основе инвертированных списков.

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

  • Поиск ведется в ассоциаторе без обращения к самим данным;

  • Время поиска не зависит от длины строки и от длины ключа;

  • Время поиска практически не зависит от числа целевых строк и от числа строк в базе данных;

  • Результатом поиска являются число целевых строк и список их номеров.

Устройство ассоциатора в СУБД HyTech изучается в данном курсе в теме 2 при рассмотрении вопросов архитектуры СУБД HyTech.

Индексы на основе инвертированных списков имеют недостатки, главным из которых является следующий: при добавлении/изменении значения ключевого поля требуется перестроение ассоциатора, которое при значительном размере БД может занять длительное время. Данный недостаток не является фатальным и вполне преодолим, например, в СУБД HyTech изменения данных записываются в переменную часть таблицы, а ассоциатор строится для постоянной части. Такой подход имеет определенные неудобства, поскольку требуется периодическая операция «слияния» постоянной и переменной части таблицы (в HyTech операция слияния называется «упаковкой»). Необходимость такой операции обусловлена ростом переменной части таблицы. Поскольку эта часть не индексируется, то при ее значительном росте возможно замедление поисковых запросов.