Особенности и преимущества QHB

Основные возможности

  • Поддерживает современные стандарты баз данных (БД) - требования ACID:
    • Атомарность (Atomicity);
    • Согласованность (Consistency);
    • Изолированность (Isolation);
    • Устойчивость (Durability).
  • Обеспечивает уровни изоляции транзакций SERIALIZABLE, REPEATABLE READ, READ COMMITTED.
  • Поддерживает управление доступом с помощью многоверсионности (MVCC - MultiVersion Concurrency Control).
    Используется для поддержания согласованности данных в конкурентных условиях. Система видит копию данных (версию базы данных) на момент начала транзакции несмотря на то, что состояние базы данных могло уже измениться, что защищает транзакцию от несогласованных изменений данных, которые могли быть вызваны другой конкурентной транзакцией и обеспечивает таким образом изоляцию транзакций. Блокировка, устанавливаемая ей для чтения, не конфликтует с блокировкой на запись, и поэтому чтение никогда не блокирует запись и наоборот.
  • Обеспечивает поддержку блокировок на уровне записей.
  • Обеспечивает журнал упреждающей записи (Write-Ahead Logging - WAL). Позволяет восстановить систему после возможных сбоев. Все изменения записываться на диск после того, как записи журнала, описывающие эти действия, будут гарантировано записаны на диск. Это позволяет не сбрасывать страницы данных на диск после фиксации каждой транзакции, так как всегда есть возможность восстановления базы данных используя журнал транзакций.
  • Обеспечивает ссылочную целостность.
  • Обеспечивает возможность расширения. Обеспечивает возможность добавления новых типов данных, функций, операторов, методов доступа, языков программирования без перекомпилирования ядра СУБД.
  • Обеспечивает возможность доступа к сторонним данным Обеспечивает возможность доступа к сторонним данным для работы с СУБД Microsoft SQL Server, MySQL, Oracle и PostgreSQL.

Ограничения QHB

В Таблице 1 описаны различные жесткие ограничения QHB. Однако практические ограничения, такие как предел производительности или доступного дискового пространства, могут проявиться раньше, чем будут достигнуты абсолютные жесткие ограничения.

Таблица 1. Ограничения QHB

ПараметрВерхний пределКомментарий
размер базы данныхбез ограничений
количество баз данных4 294 950 911
отношения в базе данных1 431 650 303
размер отношения32 ТБсо значением BLCKSZ по умолчанию, равным 8192 байта
строк в таблицеограничено количеством кортежей, которое может уместиться на 4 294 967 295 страниц
столбцов в таблице1600дополнительно ограничено размером кортежа, который может уместиться на одной странице; см примечание ниже
размер поля1 ГБ
длина идентификатора63 байтаможно увеличить, перекомпилировав QHB
индексов на таблицубез ограниченийограничен максимальным количеством отношений в базе данных
столбцов на индекс32можно увеличить, перекомпилировав QHB
ключи раздела32можно увеличить, перекомпилировав QHB

Максимальное количество столбцов таблицы дополнительно уменьшается, поскольку сохраняемый кортеж должен умещаться на одной странице кучи размером 8192 байта. Например, без учета заголовка кортеж, состоящий из 1600 столбцов int, будет занимать 6400 байт и может храниться на странице кучи, однако кортеж из 1600 столбцов bigint будет занимать 12 800 байт и, следовательно, на странице не поместится. Поля переменной длины таких типов, как text, varchar и char, могут хранить свои значения отдельно, в таблице TOAST, когда эти значения достаточно велики для этого. При этом внутри кортежа в куче таблицы должен остаться только 18-байтовый указатель. Для более коротких полей переменной длины используется 4-байтовый или 1-байтовый заголовок, а значение сохраняется внутри кортежа кучи.

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

Поддержка платформ

QHB поддерживает платформы:

  • Аппаратную платформу x86-64.
  • Операционную систему «Альт 8 СП».

Подробнее см. Поддерживаемые платформы и Бинарные дистрибутивы.

Стандартизация и унификация

Поддерживает следующие стандартные, унифицированные типы данных:

  • целочисленные типы: INT, SMALLINT, BIGINT;
  • числа с произвольной точностью;
  • типы с плавающей точкой: REAL, DOUBLE PRESISION, FLOAT;
  • последовательные типы;
  • денежные типы;
  • символьные типы данных: VARCHAR(n), CHAR(n), TEXT;
  • двоичные типы данных;
  • типы даты и времени: DATE, TIME, TIMESTAMP, TIMESTAMP WITH TIMEZONE, INTERVAL;
  • логический тип BOOLEAN;
  • типы перечислений;
  • геометрические типы;
  • типы, описывающие сетевые адреса;
  • битовые строки;
  • типы данных, предназначенные для текстового поиска;
  • UUID;
  • XML;
  • JSON;
  • массивы;
  • составные типы;
  • диапазонные типы;
  • типы доменов;
  • идентификаторы объектов;
  • псевдотипы.

Функциональные характеристики

Обладает следующими функциональными характеристиками:

  • приближённое соответствие стандарту SQL (SQL:2016, SQL:2011, SQL:2008, SQL:2006, SQL:2003, SQL:1999 и SQL-92);
  • поддержка представлений;
  • поддержка внешних ключей;
  • поддержка транзакций;
  • поддержка оконных функций;
  • поддержка наследований;
  • поддержка функций и операторов;
  • поддержка хранимых процедур;
  • поддержка различных типов индексов;
  • наличие встроенной системы полнотекстового поиска;
  • поддержка табличных пространств;
  • поддержка табличных триггеров БД и триггеров событий;
  • поддержка процедурных языков
  • поддержка кодировки UTF8;
  • поддержка NoSQL;
  • наличие программных интерфейсов для работы с C/C++, Java/JDBC, .NET, ODBC, Perl, Python, Ruby, Tcl;
  • наличие встроенных средств аутентификации пользователей, поддерживающих GSSAPI, SSPI, LDAP, RADIUS, PAM, BSD;
  • поддержка SSL;
  • возможность разграничения доступа к объектам БД;
  • возможность разграничения доступа к таблицам на уровне строк;
  • возможность безопасного хранения паролей;
  • возможность интеграции с подсистемой SE-Linux.

Доступность и надежность

Поддержка очереди сообщений на уровне ядра СУБД.

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

  • наличие отказоустойчивого кластера;
  • наличие встроенных средств репликации данных: синхронная, асинхронная, каскадная;
  • возможность использования различных видов репликации данных: потоковая, логическая;
  • возможность построения отказоустойчивого кластера (ведущий-ведомый) с произвольным количеством реплик (ведомых серверов) в разных конфигурациях (теплый резерв, горячий резерв);
  • наличие встроенных средств «горячего» резервного копирования и восстановления данных.

Производительность и масштабируемость

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

Создание дампа и загрузка содержимого менеджера дисковых блоков для минимизации времени "разогрева кэша".

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

Обладает следующими возможностями, обеспечивающими производительность и масштабируемость:

  • оптимизация для многопроцессорных/многоядерных серверов:
  • улучшенный механизм проверки блокировок, не оказывающий отрицательного влияния на производительность;
  • улучшенная производительность при использовании множества временных таблиц в отдельных обслуживающих процессах и при большом количестве одновременных подключений;
  • увеличенная скорость и эффективность планирования для различных типов запросов;
  • наличие стоимостного оптимизатора, учитывающего дисковые операции и процессорное время;
  • возможность асинхронного подтверждения транзакций;
  • возможность параллельного выполнения запросов;
  • возможность параллельного создания индексов и параллельного доступа к индексам;
  • возможность сканирования только индекса (покрывающие индексы);
  • возможность работы с большим количеством временных объектов в рамках одной сессии;
  • поддержка секционирования для больших таблиц;
  • режим работы APPEND_ONLY;
  • возможность размещать данные в общей памяти используя таблицы в оперативной памяти (In-Memory).

Администрирование и мониторинг

Обладает следующими средствами администрирования и мониторинга:

  • возможность планировать и контролировать задания, а также управлять их выполнением в базе данных (планировщик задач);
  • возможность использования функций для работы с переменными различных типов в рамках текущей сессии;
  • реализация тайм-аута для простаивающих сеансов на стороне сервера;
  • наличие унифицированной структуры пакетов Linux;
  • наличие выделенного соединения для администратора;
  • возможность для сбора статистики планирования и выполнения всех обрабатываемых сервером SQL-операторов.

Защита информации от несанкционированного доступа

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

В СУБД применяются средства защиты информации, соответствующие требованиям по безопасности информации, установленным в документе «Требования по безопасности информации, устанавливающие уровни доверия к средствам технической защиты информации и средствам обеспечения безопасности информационных технологий» (ФСТЭК России, 2020) – не ниже 4 уровня доверия.

СУБД обеспечивает защиту информации, содержащейся в базах данных, находящихся под их управлением, путем реализации следующих процессов:

  • идентификация и аутентификация субъектов доступа и объектов доступа, предоставление доступа к базе данных в случае успешной аутентификации пользователя, блокирование доступа к базе данных в случае неуспешной аутентификации пользователя;
  • управление доступом субъектов доступа к объектам доступа, предоставление пользователям запрашиваемых типов доступа к объектам СУБД в соответствии с реализуемым методом управления доступом;
  • регистрация событий безопасности;
  • обеспечение целостности информационной системы и информации, блокировка работы (запуска) экземпляра БД в случае обнаружения фактов нарушения целостности;
  • блокировка доступа субъекта к остаточной информации при первоначальном назначении или при перераспределении внешней памяти (очистка внешней и оперативной памяти);
  • обеспечение доступности информации: резервное копирование и восстановление информации, содержащейся в базе данных.

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

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

СУБД предоставляет возможность членства одной роли в другой. Набор атрибутов, которыми обладает пользователь (роль), который входит в другие роли, представляет собой объединение атрибутов, предоставленных каждой роли, членом которой является пользователь (роль).

СУБД предоставляет пользователям (ролям) с атрибутом WITH ADMIN OPTION возможность включать в члены этой роли и исключать из нее другие роли.

Каждому объекту доступа в СУБД сопоставлен пользователь (роль), который является владельцем данного объекта. Право удаления объекта доступа предоставляется только пользователю (роли), обладающему атрибутом SUPERUSER, либо являющемуся владельцем данного объекта. Право удаления таблицы кроме владельца или пользователя c атрибутом SUPERUSER предоставлено владельцу схемы, в которую входит удаляемая таблица. Пользователь, являющийся владельцем таблицы, имеет право создавать индексы и системы правил для таблицы.

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

СУБД осуществляет следующие функции управления идентификаторами пользователей СУБД (мера защиты ИАФ.3):

  • обеспечение создания уникального идентификатора пользователя;
  • присвоение идентификатора пользователю;
  • блокирование идентификатора;

СУБД осуществляет следующие функции управления аутентификационной информацией (пароль) пользователей СУБД (мера защиты ИАФ.4):

  • генерация пароля пользователя;
  • изменение пароля пользователя;
  • расширенные политики аутентификации.

СУБД предотвращает доступ субъекту к остаточной информации при первоначальном назначении или при перераспределении внешней памяти.

Специальные возможности

Содержит встроенные инструментарий для задач расчета вероятностных моделей с применением сетей Байеса. В системе применяются следующие алгоритмы:

  • наивный байесовский классификатор;
  • классификатор, основанный на функции взаимной информации;
  • методы Монте-Карло с цепями Маркова.

Содержит расширенные функции XML (для миграции с Oracle DB).

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

Обеспечивает внешнее хранение больших двоичных данных (blob/clob/bytea)