Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

Документация
Кодификаторы

Работа с кодификаторами

Кодификаторы применяются в СУБД для уменьшения объема хранимых данных. Суть этого способа состоит в замене часто повторяющихся данных более компактными кодами, однозначно эти данные идентифицирующими. Например, для хранения пола работника можно отвести 7 символов. Это поле будет иметь два значения {"Мужчина", "Женщина"} и повторяться в больших количествах во всех записях таблицы, напрасно занимая место. Можно отвести для хранения этого поля один байт и хранить там код пола: 0 - мужчина, 1 - женщина. Место при этом будет занято в 7 раз меньше. Однако, при выводе данных из такой таблицы единицы и нолики неудобны для восприятия.

Проблему можно решить за счет создания дополнительной таблицы, содержащей пары { 0:мужчина, 1:женщина }. Но тогда операции простого поиска в таблице придется заменить на межтабличные операции, организуя связь двух таблиц через код пола.

Более "быстрой" альтернативой является использование кодификаторов.

Организация кодификаторов

Кодификаторы представляют собой хранимый в ОЗУ массив пар {ключ:толкование}, упорядоченный по возрастанию значений ключа. Массив загружается в память перед началом использования и может храниться там до завершения работы. Исходными данными для кодификатора служит обычная таблица HyTech. При загрузке указывается номер поля, используемого в качестве ключа кодификатора, и список полей таблицы, трактуемых как толкование значений ключа.

Каждый загруженный кодификатор получает отличный от нуля уникальный номер - обработчик, используемый для обращения к данным кодификатора.

Кодификаторы используются при работе с результатами поиска.

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