Digital Q.DataBase 🎙
616 subscribers
44 photos
4 videos
1 file
50 links
🟣Уникальный СУБД канал
Digital Q.DataBase в формате подкаста от амбассадора Андрея Жуйкова @zavrius ✍️

🟣 Команда, кейсы и внутренний взгляд
🟣 Инсайты и примеры из практики
🟣 Идеи, за которыми будущее
Download Telegram
Дорогие подписчики!

🟣 Продолжаем серию публикаций о новых функциональных возможностях Digital Q.DataBase. Сегодня расскажем о поддержке типа данных hierarchyid, реализованной в нашей СУБД.

Для чего предназначен hierarchyid

При проектировании информационных систем часто возникает потребность в хранении и обработке иерархических структур: организационно-штатные расписания, каталоги товаров, классификаторы, технологические карты и т.п. Традиционный подход с использованием рекурсивных связей "внешний ключ на самого себя" работает, однако требует написания громоздких рекурсивных запросов и не всегда обеспечивает приемлемую производительность при работе с глубокими иерархиями.

В MS SQL Server для решения подобных задач был введен тип данных hierarchyid, который позволяет:

➡️Компактно хранить информацию о положении узла в иерархии;
➡️Выполнять навигацию по дереву с помощью встроенных методов;
➡️Эффективно получать поддеревья без использования рекурсивных CTE.

В PostgreSQL существует схожее расширение ltree, однако его семантика и синтаксис отличаются от MS SQL Server.

При разработке Digital Q.DataBase мы выбрали путь максимального сохранения совместимости с существующими приложениями, работающими с T-SQL, поэтому реализовали поддержку hierarchyid в полном соответствии с оригиналом.

⬇️Примеры использования

Рассмотрим базовые операции с типом hierarchyid на практических примерах:

Сортировка иерархических данных
select cast('/1.2/2/' as hierarchyid) t union
select cast('/1000.500/200/' as hierarchyid) union
select cast('/1.4/-2/' as hierarchyid) union
select cast('/3.1/2/' as hierarchyid)
order by t
GO

Результат сортируется в порядке обхода дерева сверху вниз и слева направо.

Определение уровня вложенности
declare @id1 hierarchyid = '/25/33/11/'
select @id1.GetLevel()
GO
-- Возвращает 3


Получение предка
DECLARE @id hierarchyid = '/1000.500/200/1/'
select @id.GetAncestor(2).ToString()
GO
-- Возвращает '/1000.500/'


Проверка принадлежности поддереву
declare @id1 hierarchyid = '/1/2/3/4/5/6/7/8/',
@id2 hierarchyid = '/1/2/3/4/'
select @id1.IsDescendantOf(@id2)
GO
-- Возвращает 1 (истина)


Перемещение поддерева
declare @id1 hierarchyid = '/2/2/4/4/',
@id2 hierarchyid = '/2/2/4/',
@id3 hierarchyid = '/1/'
select @id1.GetReparentedValue(@id2,@id3).ToString()
GO
-- Новый путь: '/1/4/'


Вставка нового узла между существующими
declare @id1 hierarchyid = '/2/',
@id2 hierarchyid = '/2/4.5.-1/',
@id3 hierarchyid = '/2/7/'
select @id1.GetDescendant(@id2, @id3).ToString()
GO
-- Генерирует путь, гарантированно расположенный между указанными узлами


Значение для пользователей Digital Q.DataBase

Реализация типа данных hierarchyid в Digital Q.DataBase обеспечивает возможность переноса существующих информационных систем, использующих данный механизм, без необходимости изменения прикладного кода и схем данных. Это особенно важно для проектов по импортозамещению, где критически важным является сохранение инвестиций в уже разработанное программное обеспечение.

При переходе на Digital Q.DataBase с MS SQL Server достаточно выполнить перенос баз данных с помощью штатного Мастера переноса — все объекты, использующие тип hierarchyid, продолжат функционировать в штатном режиме.
Please open Telegram to view this post
VIEW IN TELEGRAM
754
Дорогие подписчики!

Информирую Вас о том, что на сайте database.diasoft.ru выложен обновленный пакет для возможности запуска CLR-сборок на Astra Linux 1.8 из нашей эмуляции MS SQL Server. Данный пакет предназначен для использования в связке с Digital Q.DataBase версии 17.4 и выше.
Please open Telegram to view this post
VIEW IN TELEGRAM
776
🔥Стоит ещё раз подчеркнуть важную мысль: переход на российскую СУБД не обязательно означает полное переписывание системы.

До сих пор многие не воспринимают это как реальную возможность.
Крупные системы на Oracle или Microsoft можно переводить иначе. Без многолетней переработки всего кода.
Достаточно перенести данные и изменить настройки.

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

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

🎯 Мы предлагаем другой подход.
В нашем подходе меняется само представление о миграции: не обязательно адаптировать приложение под PostgreSQL. Можно пойти другим путём, реализовать в СУБД функциональность, совместимую с зарубежными системами.

🎯 Если бы такой подход начали применять раньше, страна могла бы сэкономить колоссальные ресурсы.

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

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
632
Друзья, Digital Q.DataBase позволяет Вам не только сохранить прикладную логику СУБД Microsoft и Oracle.

🟣В связке с другим нашим продуктом, предназначенным для замены SAP NetWeaver, Вы получаете возможность уйти от использования продуктов SAP без переписывания систем и без переписывания бизнес-логики.

Что это означает на практике:

🟣ABAP-приложения продолжают работать на новой платформе
🟣Данные и обработка переносятся в Digital Q.DataBase
🟣Вся бизнес-логика сохраняется без изменений
🟣Формируется импортонезависимый стек из отечественного ПО

🎯В этом видео:
ABAP-код → сохранение → активация → преобразование в C++ → компиляция → установка на сервер → запуск

Видео на RuTube

Также наш отдельный лендинг для этого решения

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5221
Дорогие подписчики!

🟣 Продолжаем знакомить вас с новыми возможностями Digital Q.DataBase. Сегодня расскажем о поддержке агрегатной функции CHECKSUM_AGG, реализованной в нашей СУБД.

Для чего предназначена CHECKSUM_AGG

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

В MS SQL Server для этих целей существует функция CHECKSUM_AGG, которая вычисляет контрольную сумму для всех значений указанного столбца в результирующем наборе строк. Это позволяет:

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

При разработке Digital Q.DataBase мы обеспечили полную совместимость реализации CHECKSUM_AGG с оригинальным синтаксисом MS SQL Server, что позволяет использовать существующий код без модификаций.

Принцип работы

Функция CHECKSUM_AGG может применяться как ко всем значениям столбца, так и только к уникальным (с использованием ключевого слова DISTINCT). Рассмотрим базовые примеры:

Вычисление контрольной суммы для всего набора значений

select checksum_agg(t) 
from
(values(1),(30),(2),(2),(4),(50),(6)) A(t)

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

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

select checksum_agg(distinct t) 
from
(values(1),(30),(2),(2),(4),(50),(6)) A(t)


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

Практический пример контроля изменений

Наиболее востребованный сценарий использования CHECKSUM_AGG — отслеживание модификаций данных в таблице:

-- Создаем тестовую таблицу
CREATE TABLE #TestTable (
ID int IDENTITY(1,1) PRIMARY KEY,
Value int
);

-- Наполняем таблицу несколькими значениями
INSERT INTO #TestTable (Value) VALUES (10);
INSERT INTO #TestTable (Value) VALUES (20);
INSERT INTO #TestTable (Value) VALUES (30);
INSERT INTO #TestTable (Value) VALUES (40);
INSERT INTO #TestTable (Value) VALUES (50);

-- Выводим исходные данные
SELECT * FROM #TestTable;

-- Вычисляем контрольную сумму всех значений в столбце Value
SELECT CHECKSUM_AGG(Value) AS ControlSum
FROM #TestTable;

-- Изменяем одно из значений
UPDATE #TestTable SET Value = 25 WHERE ID = 3;

-- Проверяем измененные данные
SELECT * FROM #TestTable;

-- Снова вычисляем контрольную сумму — она будет отличаться от первоначальной
SELECT CHECKSUM_AGG(Value) AS ControlSumAfterChange
FROM #TestTable;

-- Очищаем временную таблицу
DROP TABLE #TestTable;


В данном примере после изменения значения с 30 на 25 контрольная сумма всего набора данных изменится, что сигнализирует о произошедшей модификации. Это позволяет без сложных запросов и сравнения каждой строки убедиться в том, что данные были обновлены.

Важные особенности

Следует учитывать, что функция CHECKSUM_AGG:


➡️ Не гарантирует уникальности: различные наборы данных теоретически могут дать одинаковую контрольную сумму (вероятность коллизии невысока, но существует);
➡️ Чувствительна к порядку строк, поэтому для сопоставимых результатов необходимо обеспечивать одинаковую сортировку данных;
➡️ Может применяться к столбцам различных числовых типов, а также к столбцам типа datetime и битовым полям.

Значение для пользователей Digital Q.DataBase

Реализация функции CHECKSUM_AGG в Digital Q.DataBase расширяет инструментарий для контроля целостности данных и упрощает миграцию существующих приложений. Разработчики, использующие в своем коде проверки контрольных сумм, могут быть уверены, что после переноса базы данных на Digital Q.DataBase вся логика работы сохранится полностью.

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
544
release_notes_18.1.26032101.txt
8 KB
Уважаемые подписчики!

🟣 С радостью сообщаю Вам, что вчера, спустя два месяца непрерывной работы, мы выложили на сайт версию 18.1 нашей СУБД Digital Q.DataBase.

Версия содержит много улучшений по сравнению с предыдущей версией 17.4, а также она собрана уже на базе 18 ядра PostgreSQL.

Подробнее смотрите прилагаемый файл с перечнем доработок. И следите за нашими сообщениями - наиболее важные доработки мы описываем отдельными постами.
Ну а наш ближайший выпуск будет посвящен процедуре обновления.

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
743
This media is not supported in your browser
VIEW IN TELEGRAM
433
Уважаемые подписчики!

🟣 Как Вам уже известно, мы обновили версию Digital Q.DataBase на сайте database.diasoft.ru и теперь у вас есть возможность перейти с версии 17.04 на 18.01.

➡️ Обратите внимание: поскольку версии работают на разных версиях ядра PostgreSQL, у этого обновления есть особенности. Они хорошо знакомы тем, кто давно работает с PostgreSQL, но могут быть новыми для пользователей, переходящих с Oracle или MS SQL.

➡️ Если у вас уже установлена Digital Q.DataBase 17.4 и вы хотите обновиться до версии 18.1, выполните следующие шаги:

1. Скачайте обновленную версию с сайта: database.diasoft.ru

2. Установите новую версию командой:
sudo apt install ./имя_пакета
Новая версия установится параллельно с предыдущей. Данные прошлой версии будут сохранены, но в новой версии этих баз по умолчанию нет.

3. Чтобы перенести базы данных в новую версию, запустите pg_upgrade.
После завершения работы утилиты все ваши базы данных будут перенесены.
Запуск производится командой:
sudo ./run_pg_upgrade.sh

Подробная инструкция по обновлению включена в архив с пакетом для вашей ОС на сайте: database.diasoft.ru.
Please open Telegram to view this post
VIEW IN TELEGRAM
543
Дорогие подписчики!

🟣 Продолжаем серию публикаций о функциональных возможностях Digital Q.DataBase. Сегодня расскажем о расширении поддержки контекста выполнения процедур — механизмах EXECUTE AS и REVERT.

Для чего нужны EXECUTE AS и REVERT

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

В MS SQL Server для этих целей предусмотрены механизмы смены контекста выполнения:

➡️EXECUTE AS — позволяет задать пользователя, от имени которого будет выполняться хранимая процедура, функция или пакет;
➡️ REVERT — возвращает исходный контекст выполнения после завершения операций, требовавших повышенных привилегий.

При разработке Digital Q.DataBase мы расширили поддержку этих механизмов, обеспечив корректную работу смены контекста на различных уровнях вложенности и возможность возврата к исходному контексту.

Как это работает

Механизм EXECUTE AS может применяться на уровне отдельных модулей (хранимых процедур, функций, триггеров) либо в рамках сеанса работы с базой данных. Наиболее распространенный сценарий использования выглядит следующим образом:

-- Создание процедуры, которая выполняется от имени владельца схемы
CREATE PROCEDURE dbo.UpdateEmployeeData
WITH EXECUTE AS OWNER
AS
BEGIN
-- Операции обновления данных, требующие повышенных прав
UPDATE Employees SET LastAccessDate = GETDATE() WHERE EmployeeID = 100;
END

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

Для более тонкого управления контекстом внутри процедуры используются команды EXECUTE AS USER и REVERT:

CREATE PROCEDURE dbo.CrossSchemaOperation
AS
BEGIN
-- Выполняем часть операций от имени текущего пользователя
INSERT INTO UserLog (UserID, Action) VALUES (SYSTEM_USER, 'Start operation');

-- Переключаем контекст на служебного пользователя
EXECUTE AS USER = 'ServiceAccount';

-- Выполняем операции, требующие специальных прав
UPDATE SensitiveData SET Processed = 1 WHERE BatchID = 100;

-- Возвращаем исходный контекст
REVERT;

-- Продолжаем выполнение от имени исходного пользователя
INSERT INTO UserLog (UserID, Action) VALUES (SYSTEM_USER, 'Operation completed');
END


Расширение функциональности в Digital Q.DataBase

В новой версии Digital Q.DataBase поддержка EXECUTE AS и REVERT приведена к уровню, обеспечивающему:

➡️ Корректную обработку вложенных смен контекста (возможность выполнения REVERT на любом уровне вложенности);
➡️ Поддержку различных вариантов указания субъекта (OWNER, CALLER, USER = 'имя', SELF);
➡️ Сохранение контекста выполнения при вызове вложенных процедур и функций;
➡️ Совместимость с существующим синтаксисом T-SQL, используемым при работе с MS SQL Server.

Значение для пользователей Digital Q.DataBase

Расширение поддержки EXECUTE AS и REVERT позволяет:

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

Для администраторов баз данных это означает, что при переходе на Digital Q.DataBase не потребуется пересматривать и перестраивать существующие модели безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
644
🟣 Уважаемые подписчики! Сегодня хочу рассказать Вам о том, как мы склонировали у себя один из самых "прикладных" сервисов из поставки Microsoft SQL Server.

➡️ Речь пойдет о SQL Server Reporting Services (SSRS) - механизме, который позволяет получать разнообразные отчеты, запрашивая их построение по API или по расписанию.

➡️ Представьте ситуацию: Вы использовали Microsoft SQL Server и у Вас было несколько сотен разнообразных отчетов, что ранее строились на основе данных в Ваших БД. И тут импортозамещение! Надо переходить на российское решение из Реестра Минцифры. Для замены СУБД самый легкий вариант такого перехода - Digital Q.DataBase. Мастер переноса БД поможет перенести данные, Мастер сравнения БД проверит корректность переноса, Digital Q.CDC обеспечит синхронизацию данных в обеих СУБД, что позволит сократить до нескольких минут сам момент перехода. Но что делать с сотнями отчётов, что привыкли получать Ваши пользователи?

Оставить как есть, пусть строятся при помощи зарубежного инструмента? Вряд-ли это приемлемо. Какое-то очень кусочное импортозамещение получается!

Переписать на другом инструменте? Даже из расчета по дню на отчёт это сотни человеко-дней "ручного труда", а потом тестирование, выгребание ошибок, восстановление порушенных интеграций (построение некоторых отчетов могло запрашиваться извне, через API). Тоже так себе вариант!

➡️ Мы предлагаем более живую альтернативу: воспользоваться нашей реинкарнацией службы отчетов.
На приложенных скриншотах два отчёта. Один построен в оригинальном инструменте, второй у нас. Как видите, они очень похожи, более того построены по одному и тому же шаблону, что был перенесен из оригинала к нам при замене СУБД.
Внешний вид и API - все сохранено. Как говорят наши "заокеанские партнеры" - настоящий "drop-in replacement" (безшовная замена одного инструмента другим). Именно так и должно выглядеть хорошо проработанное импортозамещение.
Благодарю за внимание к этому вопросу!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
654
Forwarded from DiasoftNews_channel
Автоматизированная банковская система Digital Q.CoreBanking от Диасофт доказала высокую эффективность на полигонах ИЦК "Финансы" ⚡️
Компания успешно завершила функциональное и нагрузочное тестирование автоматизированной банковской системы (АБС) Digital Q.CoreBanking, развернутой на СУБД Digital Q.DataBase. Успешное прохождение испытаний на максимальном профиле нагрузки "Высокий" демонстрирует готовность АБС к промышленной эксплуатации на полностью импортонезависимом технологическом стеке.

🗣"Банки могут не сомневаться, что на рынке есть надежные решения для импортозамещения, так как подтверждено, что АБС от Диасофт – качественный вариант. Результаты испытаний продемонстрировали эффективную работу решения при нагрузках, характерных для банков разного масштаба – от небольших до самых крупных", – Андрей Гаврилин, руководитель направления импортозамещения.
Please open Telegram to view this post
VIEW IN TELEGRAM
543
Диасофт проведет первый в своей истории День СУБД 🐬
21 апреля 2026 года состоится конференция по промышленной эксплуатации СУБД и архитектуре корпоративных данных!

Приглашаем ИТ-директоров из разных отраслей экономики, разработчиков, архитекторов и администраторов баз данных обсудить:
🗣 изменение подхода к импортозамещению СУБД;
🗣 Digital Q.DataBase от Диасофт – настоящий "полиглот" в мире СУБД;
🗣 СУБД для обеспечения технологического суверенитета;
🗣 импортозамещение СУБД в высоконагруженных системах;
🗣 истории успеха перехода на Digital Q.DataBase клиентов и партнеров Диасофт.

Регистрируйтесь на мероприятие по ссылке 🔗
До встречи!
Please open Telegram to view this post
VIEW IN TELEGRAM
653
Дорогие подписчики!

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

⬇️Пять фактов о базах данных, которые вы могли не знать

🟣1. Первые СУБД появились еще до эры персональных компьютеров

В 1960-х годах компания General Electric разработала систему Integrated Data Store (IDS) — одну из первых в мире систем управления базами данных. Она работала на мейнфреймах, занимавших целые комнаты, и использовалась преимущественно в военных и космических проектах. А в СССР примерно в то же самое время велись работы над СУБД "Автодиректор", о которой я Вам расскажу завтра.

🟣2. Ошибки в базах данных могут стоить миллиарды

В 2012 году крупный инвестиционный банк Knight Capital потерял 440 миллионов долларов за 45 минут из-за ошибки при развертывании обновления торговой системы. Причиной стал сбой в работе с базой данных: новый код использовал устаревшие настройки, что привело к миллионам ошибочных транзакций. Этот случай оказался настолько "болезненным", что до сих пор приводится в учебниках как пример того, почему тестирование миграций данных критически важно.

🟣3. Самая большая база данных в мире — это… небо

Астрономический проект Large Synoptic Survey Telescope (ныне — Обсерватория Веры Рубин) генерирует около 20 терабайт данных каждую ночь. За десять лет работы объем накопленной информации достигнет 500 петабайт. Уже сейчас это одна из самых больших научных баз данных в мире. Для сравнения: все тексты, когда-либо написанные человечеством, оцениваются примерно в 50 петабайт.

🟣4. СУБД в космосе и на земле

История развития систем управления базами данных тесно связана с космической отраслью. В 1960-х годах, когда NASA готовила высадку на Луну, потребовалась система для управления колоссальными объемами данных — от параметров полета до результатов испытаний оборудования. Именно тогда были заложены принципы надежности и отказоустойчивости, которые сегодня считаются стандартом для любой промышленной СУБД. Технологии, разработанные для космических программ, позже легли в основу многих коммерческих баз данных, с которыми мы работаем сейчас.

🟣5. Почему базы данных называют «холодными»?

В сфере IT данные принято делить на «горячие» (активно используемые, хранящиеся в оперативной памяти) и «холодные» (редко запрашиваемые, хранящиеся на более медленных носителях). Но есть и термин «ледяные данные» — это информация, которая хранится исключительно для выполнения законодательных требований и никогда не запрашивается в рабочем процессе. По некоторым оценкам, до 60% корпоративных данных со временем становятся «ледяными».

🟣Бонус: что общего у СУБД и космических кораблей?

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

Хороших выходных и пусть ваши базы данных всегда остаются в целостности и сохранности!
Please open Telegram to view this post
VIEW IN TELEGRAM
755
Уважаемые подписчики!

Продолжаю делиться с Вами интересными фактами из мира СУБД:

Первая в мире реляционная СУБД сделана в СССР?

В 1961 году, за 9 лет до знаменитой работы Эдгара Кодда, в СССР заработала  СУБД «Автодиректор».

Первое промышленное применение СУБД «Автодиректор» состоялось в составе того, что позднее  назовут АСУ ТП, на одном из металлургических комбинатов СССР. Еще раз: 1961 год - начало промышленной эксплуатации,  на 13 лет раньше появления IBM System R и за 18 лет до появления СУБД Oracle (которая стала первой коммерчески применяемой СУБД в мире).

СУБД "Автодиректор" была реляционной, хотя тогда такого термина ещё не существовало. И она действительно работала!
Но сколь-либо массовой эта СУБД не стала, так как работала она только на ЭВМ «Киев», а таких машин в СССР было выпущено всего несколько штук.

Самая массовая СУБД в СССР

А вот самой массовой по числу применений советской СУБД стала иерархическая СУБД «Инес». Её появление пришлось на самый конец 1979 года, но уже в 1980‑х у неё было около 2000 внедрений — это, между прочим, 60% от всех внедрений СУБД в СССР.

В 1990 году разработчики СУБД «Инес» даже получили Премию Совета Министров СССР за эту выдающуюся разработку.

Уже после распада СССР на основе СУБД «Инес» создали СУБД «Ника», права на которую перешли к Cognitive Technologies. Авторы СУБД "Инес", ставшие сотрудниками этой компании, адаптировали свои предыдущие наработки к актуальным на тот момент времени операционным системам и "железу".

Эта система жива до сих пор: она включена в  Реестр российского ПО, используется в ряде государственных организаций и поддерживается разработчиком. В частности,  её эксплуатируют Государственный исторический музей и Музей имени Андрея Рублева. В ней хранится описание коллекций этих музеев.

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
843
Небольшая, но полезная заметка.

В этом видео покажу, как развернуть тестовую среду из 3 нод с etcd, Patroni, СУБД Digital Q.DataBase и vip-manager.

Все компоненты входят в бесплатный дистрибутив Digital Q.DataBase (до 8 ядер).
Скачать можно на сайте:
https://database.diasoft.ru/?utm_source=andrei

qdb-vip-manager: компонент системы управления сетевой инфраструктурой, отвечающий за управление виртуальным IP-адресом;
обеспечивает автоматическое переключение виртуального IP-адреса; поддерживает динамическое назначение адреса и интеграцию с кластерными решениями.

Q.DataBase vip-manager назначает виртуальный IP-адрес активному узлу кластера в зависимости от состояния, хранящегося в ETCD, Consul или через REST API Patroni.

➡️Rutube видео:
https://rutube.ru/video/5ec9fbcf8ee040fab397aedc69a217d6/?r=wd
Please open Telegram to view this post
VIEW IN TELEGRAM
433
🐘 Изучите возможности СУБД Digital Q.DataBase уже сейчас🔥

➡️Хотите увидеть в деле российскую СУБД-полиглот на базе PostgreSQL, которая исполняет T-SQL и PL/SQL без переписывания?
Это ваш шанс.

➡️Мы уже перевели систему с 92 000 таблиц и 6,5 млн строк
T-SQL-кода с MS SQL Server на российскую СУБД из Реестра.
Да, это реально.

🔄Скачать дистрибутив бесплатно
Мы поддерживаем Alt Linux 11, Astra Linux 1.7, 1.8, Red OS 7,8 и Ubuntu 22.04, 24.04 LTS, Docker-контейнер.

Бесплатная полнофункциональная версия дистрибутива (до 8 ядер) с возможностью использования в том числе в коммерческих целях.


Разбираю ключевые возможности платформы и показываю живые примеры в действии / вебинары.
🎥 Запись на Rutube
🎥 VK video
🎥 Yandex dzen
🎥 YouTube

Также, читайте нас на Habr
➡️ Мой личный хабр
➡️ Хабр компании Diasoft - Digital Q.DataBase

📩 Написать нам можно:

— в нашу тех. поддержку 👉 supportqdb@diasoft.ru
— в личку 👉 @zavrius
— на почту 👉 azhuykov@diasoft.ru
— через форму 👉
https://database.diasoft.ru/?utm_source=tgdqdatabase#contacts

➡️Замена Oracle или MS SQL Server?
✓ dbms-пакеты работают
✓ плавный переход
✓ экономия времени и денег

Подписывайтесь, чтобы узнать подробности и записаться на показ демо!

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
443
Digital Q.DataBase 🎙 pinned «🐘 Изучите возможности СУБД Digital Q.DataBase уже сейчас🔥 ➡️Хотите увидеть в деле российскую СУБД-полиглот на базе PostgreSQL, которая исполняет T-SQL и PL/SQL без переписывания? Это ваш шанс. ➡️Мы уже перевели систему с 92 000 таблиц и 6,5 млн строк T…»
Дорогие подписчики!

🟣 Сегодня — необычный праздник. 31 марта отмечается Всемирный день резервного копирования, или Всемирный день бэкапа (World Backup Day).

Дата выбрана не случайно: накануне апреля, когда многие шутят и разыгрывают друг друга, организаторы решили напомнить о серьёзных вещах. По статистике, каждый третий пользователь никогда не делал резервную копию своих данных, а 29% катастроф с потерей информации происходят по чистой случайности.

В Digital Q.DataBase мы относимся к сохранности данных со всей серьёзностью. В честь праздника — краткий обзор инструментов резервного копирования и несколько полезных команд.

Основные инструменты бэкапа в Digital Q.DataBase

Для создания резервных копий используется утилита pg_dump. Она создает согласованную копию базы данных даже при одновременной работе пользователей, не блокируя доступ на чтение и запись.

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

Центр управления позволяет:

· Подключаться к серверу Digital Q.DataBase через удобный графический интерфейс;
· Просматривать список баз данных;
· Создавать резервные копии в несколько кликов;
· Восстанавливать базы данных из ранее созданных бэкапов;
· Настраивать параметры резервного копирования без необходимости писать скрипты.

⬇️Как создать бэкап через Центр управления

1. Запустите Центр управления Digital Q.DataBase;
2. Подключитесь к нужному серверу;
3. В списке баз данных выберите ту, которую необходимо зарезервировать;
4. Нажмите кнопку «Резервное копирование»;
5. Укажите параметры:
· Каталог для сохранения копии;
· Формат (текстовый SQL-файл, сжатый архив, каталог для параллельного бэкапа);
· Количество параллельных потоков (для больших баз);
· Необходимость включить в копию глобальные объекты (роли, табличные пространства);
6. Нажмите «Выполнить».

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

⬇️Восстановление из бэкапа

Восстановление выполняется так же просто:

1. В Центре управления выберите базу данных (или создайте новую);
2. Нажмите кнопку «Восстановление»;
3. Укажите путь к файлу или каталогу с резервной копией;
4. При необходимости настройте параметры восстановления;
5. Запустите процесс.

Кому подойдет Центр управления

· Администраторам, которые предпочитают графический интерфейс командной строке;
· Разработчикам, которым нужно быстро создать локальную копию базы для тестирования;
· При переходе с других СУБД — многие администраторы Oracle и MS SQL Server привыкли к визуальным инструментам (Oracle Enterprise Manager, SQL Server Management Studio), и Центр управления Digital Q.DataBase обеспечивает схожий пользовательский опыт.

🟣 Важное напоминание

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

Всемирный день бэкапа — хороший повод проверить, настроено ли у вас регулярное резервное копирование. Если нет — сегодня отличный день, чтобы это исправить!

🇷🇺 СУБД Digital Q.DataBase.
Подпишись на МАХ канал!
Please open Telegram to view this post
VIEW IN TELEGRAM
554
Дорогие подписчики!

В Digital Q.DataBase мы последовательно расширяем набор встроенных пакетов, обеспечивающих совместимость с PL/SQL-окружением Oracle.
Сегодня я расскажу Вам о двух важных пакетах, которые были добавлены (в числе прочих) в последнюю вышедшую версию Digital Q.DataBase.

DBMS_ALERT — уведомления между сеансами

Пакет DBMS_ALERT предоставляет механизм асинхронной передачи уведомлений между различными сеансами работы с базой данных. Это позволяет одному сеансу отправить сигнал о наступлении определенного события, а другим сеансам — ожидать его и реагировать.

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

· Регистрация на получение уведомлений с указанием имени сигнала;
· Отправка уведомлений с возможностью передачи короткого текстового сообщения;
· Ожидание уведомления с настройкой таймаута;
· Возможность одного сеанса подписаться на несколько сигналов одновременно.

Пример использования:

-- Сеанс 1: регистрируется на получение уведомления
EXEC DBMS_ALERT.REGISTER('my_alert');

-- Сеанс 2: отправляет уведомление
EXEC DBMS_ALERT.SIGNAL('my_alert', 'Данные обновлены');

-- Сеанс 1: ожидает уведомление
DECLARE
v_name VARCHAR2(100);
v_msg VARCHAR2(1000);
v_status INTEGER;
BEGIN
DBMS_ALERT.WAITONE('my_alert', v_name, v_msg, v_status, 30);
IF v_status = 0 THEN
DBMS_OUTPUT.PUT_LINE('Получено: ' || v_msg);
END IF;
END;

Области применения:

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

DBMS_APPLICATION_INFO — мониторинг выполнения операций

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

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

· Установка имени модуля (MODULE), который в данный момент выполняется;
· Установка имени действия (ACTION) внутри модуля;
· Передача дополнительной клиентской информации (CLIENT_INFO);
· Отслеживание прогресса выполнения длительных операций.

Пример использования:

-- Начало выполнения отчета
EXEC DBMS_APPLICATION_INFO.SET_MODULE('Отчетность', 'Формирование годового отчета');

-- Уточнение действия внутри модуля
EXEC DBMS_APPLICATION_INFO.SET_ACTION('Загрузка данных');

-- Выполнение длительной операции
INSERT INTO annual_report SELECT * FROM operations WHERE period = 2025;

-- Обновление прогресса
EXEC DBMS_APPLICATION_INFO.SET_ACTION('Агрегация данных');

-- Дальнейшие операции...

-- Завершение
EXEC DBMS_APPLICATION_INFO.SET_MODULE(NULL, NULL);

Области применения:

· Отслеживание длительных операций в системах мониторинга;
· Идентификация источника нагрузки в представлениях сессий;
· Аудит действий прикладного кода;
· Отладка сложных хранимых процедур.

В ближайшее время расскажем Вам и о других DBMS пакетах, добавленных в вышедшую 21 марта версию.
Please open Telegram to view this post
VIEW IN TELEGRAM
644