Алгоритмы сжатия данных в базах данных работают за счёт устранения избыточности, содержащейся в исходных данных. 5
Простейший пример избыточности — повторение в тексте фрагментов (например, слов естественного или машинного языка). 5 Такая избыточность обычно устраняется заменой повторяющейся последовательности ссылкой на уже закодированный фрагмент с указанием его длины. 5
Другой вид избыточности связан с тем, что некоторые значения в сжимаемых данных встречаются чаще других. 5 Сокращение объёма данных достигается за счёт замены часто встречающихся данных короткими кодовыми словами, а редких — длинными (энтропийное кодирование). 5
Некоторые алгоритмы сжатия данных в базах данных и их особенности:
- Кластерное кодирование. 1 Работает на одинаковых по размеру блоках, содержащих несколько различных значений. 1 Блоки с одним уникальным значением сжимаются при помощи хранения только этого значения в отдельной последовательности. 1
- Битовое сжатие. 1 Вместо того чтобы хранить каждое значение с помощью встроенного целочисленного типа данных, битовое сжатие использует только необходимое количество битов для представления значений. 1
- Байтовое кодирование. 1 Использует байты, а не биты как основную единицу для создания частей памяти. 1 Значения разделяются на части по 7 бит, и каждая часть хранится в байте. 1
- Lempel-Ziv кодирование. 1 Основная идея заключается в замене неоднократно повторяющихся шаблонов ссылками из предыдущих упоминаний. 1 Однократно встречающиеся шаблоны хранятся в самообращающейся таблице, которая строится динамически во время разбора входных данных. 1