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

🟣 Команда, кейсы и внутренний взгляд
🟣 Инсайты и примеры из практики
🟣 Идеи, за которыми будущее
Download Telegram
🌐 17 мая — Всемирный день электросвязи и информационного общества или День Интернета.

Да, у Интернета есть официальный день рождения в календаре ООН. Именно 17 мая, ещё в 2005 году, Генассамблея ООН провозгласила этот праздник, чтобы подчеркнуть роль технологий в развитии общества.

Это повод вспомнить, что:

➡️ Связь и обработка информации стали неотъемлемой частью критической информационной инфраструктуры — от банков до транспорта.
➡️ IT-специалисты — главные архитекторы современной цивилизации.

С праздником, коллеги!
Пусть пакеты не теряются, бэкапы создаются, а сервера работают без сбоев!
Please open Telegram to view this post
VIEW IN TELEGRAM
644
Диасофт на ЦИПР-2026 📍
В этом году компания представляет свои ИТ-решения на конференции по-новому – добро пожаловать на нашу уличную экспозицию😎

"Мы открыли свой фудтрак! Он должен стать точкой притяжения, ведь это зона с освежающими фрешами и блинами с натуральными начинками! Все позиции меню названы в честь наших ИТ-продуктов, а сам фудтрак украшен надписями с названиями и фишками наших ИТ-решений. Читайте, ешьте, общайтесь! Всем отличного ЦИПРа!", – приглашает Александр Сахаров, директор по работе с партнерами 🙋🏻‍♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1154
Дорогие подписчики!

➡️ Немного статистики о бесплатной версии Digital Q.DataBase.

За последние три месяца её скачали более тысячи раз.

Что это значит

Цифра сама по себе говорит о том, что интерес к российской СУБД растёт. Бесплатную версию выбирают:

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

Напомним, что доступно в бесплатной версии

➡️ Ограничение — работа на серверах до 8 ядер процессора. Функциональность при этом полностью соответствует коммерческой лицензии .

Бесплатная версия позволяет:

· исполнять запросы на диалектах Oracle Database, MS SQL Server и PostgreSQL без переписывания кода;
· развернуть «1С», CRM, ERP, СЭД и другие критически важные системы;
· использовать «Центр управления» для администрирования через веб-интерфейс;
· переносить данные из других СУБД с помощью «Мастера переноса данных».

Кому подойдёт

➡️ Юридическим лицам, индивидуальным предпринимателям, разработчикам и студентам . Бесплатная версия не имеет срока действия и не требует последующей оплаты.

Как получить

➡️ Дистрибутив доступен для скачивания на нашем сайте. В комплекте — документация с инструкцией по установке и описанием функциональных возможностей .

Спасибо, что выбираете российское ПО. Более тысячи скачиваний за три месяца — приятный результат. Двигаемся дальше.
Please open Telegram to view this post
VIEW IN TELEGRAM
843
На стыке ИИ и ERP
💌Приглашаем на День партнеров Диасофт!

29 мая состоится третья партнерская конференция Диасофт. Фокус деловой программы – применение искусственного интеллекта в развитии ERP-решений и новые ИТ-стандарты, которые трансформируют процессы разработки программных продуктов. Эксперты также продемонстрируют возможности экосистемы Digital🥶, в которую ИИ уже интегрирован.

🎉 К вечеру деловая программа сменится развлекательной с участием лучшего трибьют-шоу АВВА в России!

👥Если вы: топ-менеджер, директор по ИТ в компании из любой отрасли, ведущий разработчик или ИТ-специалист, заинтересованный в применении ИИ для развития ERP-систем и создания сложных продуктов…

… то регистрируйтесь по ссылке 🔗

До встречи оффлайн!
Please open Telegram to view this post
VIEW IN TELEGRAM
2533
Дорогие подписчики!

➡️ Продолжаем рассказывать о встроенных пакетах Digital Q.DataBase, обеспечивающих совместимость с PL/SQL-окружением Oracle.
Мы поддержали новый пакет DBMS_NETWORK_ACL_UTILITY

Для чего он нужен

➡️ Пакет предоставляет вспомогательные функции для работы с сетевыми ACL (Access Control List) — списками контроля доступа к внешним сетевым ресурсам. Он помогает определить, какой именно ACL применяется к тому или иному хосту, и в каком порядке эти правила оцениваются .

Основные функции

· DOMAINS — возвращает все возможные домены или подсети, которые могут соответствовать указанному хосту ;
· DOMAIN_LEVEL — возвращает уровень вложенности домена (например, для www.hr.example.com уровень будет 4) ;
· CONTAINS_HOST — проверяет, содержит ли домен или подсеть указанный хост ;
· EQUALS_HOST — сравнивает два хоста, домена или подсети на равенство .

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

-- Получение всех возможных доменов для указанного хоста
SELECT *
FROM TABLE(DBMS_NETWORK_ACL_UTILITY.DOMAINS('192.168.2.3'));

Результат:

COLUMN_VALUE
192.168.2.3
192.168.2.*
192.168.*
192.*
Please open Telegram to view this post
VIEW IN TELEGRAM
644
🚀 Рекомендую посмотреть доклад Ильи Виссарионова — директора департамента «Аппаратно-системная платформа» — о практическом опыте импортозамещения банковской АБС с Microsoft SQL Server на Digital Q.DataBase.

В докладе — реальный инженерный опыт миграции legacy-систем с миллионами строк кода, хранимыми процедурами и промышленной нагрузкой.

Особенно интересно:

➡️как переносили T-SQL и бизнес-логику без полного переписывания системы;
➡️какие проблемы возникали на PostgreSQL-совместимой платформе;
➡️как оптимизировали производительность и работу оптимизатора запросов;
➡️как система показала себя под промышленной нагрузкой на базах объёмом около 10 ТБ, сотнях одновременных пользователей и десятках миллионов операций.

→ Видео:
https://rutube.ru/video/7ce68a540767d7e4e7a72648ff1b0774/
Please open Telegram to view this post
VIEW IN TELEGRAM
833
День рождения Java 🎉

➡️ 23 мая 1995 года компания Sun Microsystems официально представила язык Java и платформу HotJava. Изначально проект назывался Oak, но из-за проблем с торговой маркой переименовали в Java — в честь сорта кофе.

➡️ С тех пор Java прочно связана с миром СУБД:

1. Внутри СУБД — хранимые процедуры и функции на Java поддерживаются в Oracle, IBM DB2, H2. Для PostgreSQL также существует расширение PL/Java, позволяющее выполнять Java-код прямо в СУБД.

2. Для взаимодействия с СУБД — спецификация JDBC стала стандартом подключения приложений к реляционным базам. Драйверы JDBC реализованы для всех основных СУБД, включая PostgreSQL, MS SQL и Oracle.

3. Есть СУБД, полностью написанные на Java — H2 Database, Apache Derby. Легковесные, встраиваемые, с поддержкой дискового и in-memory режимов.

Сегодня Java исполняется 31 год. Поздравьте с этим своих знакомых Java-разработчиков!
Технология, созданная для бытовой электроники, стала надёжным мостом между кодом и данными в enterprise-среде.

И да, мы уважаем Java, пишем на ней тесты для нашей СУБД, но для написания самой СУБД предпочитаем C и C++. Просто потому что так скорость работы выше. Без обид.☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
744
Померимся цифрами?

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

В PostgreSQL на сегодня — около 2,1 млн строк на языке C. Много ли это? Зависит от того, с чем сравнивать.

Например, в MySQL на сегодня 2.4 миллиона строк кода (С/С++), в MongoDB - чуть больше 2 миллионов строк С++ кода, в российском ClickHouse - 1.5 миллиона строк кода на языке С++, а в вот в SQLite всего 145 тысяч строк кода (на чистом С).

Особняком в этом ряду стоит СУБД Oracle. В 1992 году в 7-ой версии этой СУБД было 1.5 миллиона строк кода на языке С, к 12-й версии (2017) размер кодовой базы дорос аж до 25 млн, а сейчас, по разным оценкам, он насчитывает от 35 до 40 млн строк исходного кода.

Для понимания: одна только подсистема RAC в Oracle "весит" 1,6 млн строк, а in-memory-подсистема - почти 2 млн. Это сопоставимо с размером последней версии "ванильного" PostgreSQL.

В нашей СУБД Digital Q.DataBase по состоянию на сегодня 4.6 миллиона строк исходного кода, из них 2.7 миллиона строк это код на чистом С, еще 0.3 миллиона строк это код на разных диалектах SQL, а остальное - это код на С++.

Да, это более чем двукратный рост по сравнению с размером кода оригинального PostgreSQL, но всё же нам есть еще куда расти.

Правда, у роста кодовой базы есть и обратная сторона. Говорят, что программный код Oracle 12 был настолько запутанным, что любое его изменение с высокой вероятностью ломало регрессионные тесты. Разработчикам приходилось действовать крайне осторожно внося изменения — своего рода плата за десятилетия эволюции.

Так что пожелаем российским форкам PostgreSQL прирастать функциональностью и связанным с ней кодом (до 10–20 млн строк, почему бы и нет!), но при этом сохранять архитектурную внятность кода и надёжность тестов. Чтобы становиться сильнее, радовать новыми возможностями пользователей, но при этом не повторять чужих ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
642
🟣 Продолжаем рассказывать о встроенных пакетах Digital Q.DataBase, обеспечивающих совместимость с PL/SQL-окружением Oracle.
Мы поддержали новый пакет HTP.

Для чего он нужен

🟣 Пакет HTP (Hypertext Procedures) предоставляет набор процедур для генерации HTML-кода непосредственно из PL/SQL-процедур. Это позволяет создавать динамические веб-страницы на стороне сервера базы данных.

Основные функции

· PRINT — вывод произвольной HTML-строки;
· HTMLOPEN / HTMLCLOSE — открытие и закрытие тега <HTML>;
· HEADOPEN / HEADCLOSE — открытие и закрытие тега <HEAD>;
· BODYOPEN / BODYCLOSE — открытие и закрытие тега <BODY>;
· TITLE — генерация тега <TITLE>;
· HEADER — генерация заголовков <H1>...<H6>;

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

CREATE OR REPLACE PROCEDURE hello AS
BEGIN
HTP.HTMLOPEN;
HTP.HEADOPEN;
HTP.TITLE('Привет');
HTP.HEADCLOSE;
HTP.BODYOPEN;
HTP.HEADER(1, 'Digital Q.DataBase');
HTP.PRINT('Добро пожаловать');
HTP.BODYCLOSE;
HTP.HTMLCLOSE;
END;
Please open Telegram to view this post
VIEW IN TELEGRAM
5331
Дорогие подписчики!

➡️ Продолжаем рассказывать о встроенных пакетах Digital Q.DataBase, обеспечивающих совместимость с PL/SQL-окружением Oracle.
Мы поддержали новый пакет OWA_MATCH.

Для чего он нужен

➡️Пакет OWA_MATCH предоставляет функцию MATCH_PATTERN для проверки строк на соответствие заданным шаблонам с учётом специальных символов . Он позволяет определить, содержит ли строка недопустимые символы или соответствует ли одному из исключающих правил .

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

· Проверка строки на наличие специальных символов из заданного списка;
· Сравнение со списком простых шаблонов (с использованием оператора LIKE);
· Сравнение со списком сложных шаблонов (с использованием регулярных выражений через OWA_PATTERN);
· Возможность отключить проверку специальных символов через параметр p_use_special_chars.

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

-- Проверка строки на соответствие шаблонам
DECLARE
v_simple owa_util.vc_arr;
v_complex owa_util.vc_arr;
v_result BOOLEAN;
BEGIN
v_simple(1) := '%test%';
v_complex(1) := '^[A-Z]+$';

v_result := owa_match.match_pattern(
p_string => 'TEST',
p_simple_pattern => v_simple,
p_complex_pattern => v_complex,
p_use_special_chars => TRUE
);

IF v_result THEN
DBMS_OUTPUT.PUT_LINE('Строка соответствует шаблону');
END IF;
END;
Please open Telegram to view this post
VIEW IN TELEGRAM
433
Ещё один пакет в копилку PL/SQL-совместимости Digital Q.DataBase.
Сегодня — OWA_PATTERN.

Для чего он нужен

Пакет OWA_PATTERN предоставляет функции для работы с регулярными выражениями. Он позволяет искать, извлекать и заменять подстроки в тексте на основе сложных шаблонов.

Основные функции

· AMATCH — поиск подстроки, соответствующей регулярному выражению;
· MATCH — проверка, соответствует ли строка целиком заданному шаблону;
· CHANGE — замена подстроки, найденной по регулярному выражению;
· CHANGE_ALL — замена всех вхождений, соответствующих шаблону.

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

-- Проверка, соответствует ли строка регулярному выражению
DECLARE
v_result BOOLEAN;
BEGIN
v_result := OWA_PATTERN.MATCH('abc123', '[a-z]+[0-9]+');
IF v_result THEN
DBMS_OUTPUT.PUT_LINE('Строка соответствует шаблону');
END IF;
END;
Please open Telegram to view this post
VIEW IN TELEGRAM
533
This media is not supported in your browser
VIEW IN TELEGRAM
532
This media is not supported in your browser
VIEW IN TELEGRAM
532
Напоминаем: уже завтра День партнёров Диасофт!

💌 Приглашаем на третью партнёрскую конференцию, которая состоится завтра, 29 мая.

⚡️ Фокус деловой программы — искусственный интеллект в развитии ERP-решений и новые ИТ-стандарты. Эксперты продемонстрируют возможности экосистемы Digital Q, в которую ИИ уже интегрирован.

Для тех, кто следит за развитием Digital Q.DataBase

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

🎉 К вечеру деловую программу сменит развлекательная — с лучшим трибьют-шоу АВВА в России!

Регистрация по ссылке:
https://dpd3.diasoft.ru/

До встречи офлайн!
Please open Telegram to view this post
VIEW IN TELEGRAM
633
➡️ Ещё один пакет в копилку PL/SQL-совместимости Digital Q.DataBase.
Мы поддержали новый пакет OWA_TEXT.

Для чего он нужен

➡️ Пакет OWA_TEXT предоставляет функции для работы с текстовыми строками. Он позволяет преобразовывать регистр, удалять лишние пробелы, обрезать строки до нужной длины и выполнять другие операции с текстом.

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

· UPPER — преобразование строки в верхний регистр;
· LOWER — преобразование строки в нижний регистр;
· INITCAP — преобразование первого символа каждого слова в заглавный;
· TRIM — удаление пробелов в начале и конце строки;
· SUBSTR — извлечение подстроки из строки;
· LENGTH — определение длины строки;
· LPAD / RPAD — дополнение строки символами слева или справа до заданной длины;
· REPLACE — замена одной подстроки на другую.

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

-- Преобразование строки в верхний регистр
DECLARE
v_text VARCHAR2(100) := 'digital q.database';
BEGIN
v_text := OWA_TEXT.UPPER(v_text);
DBMS_OUTPUT.PUT_LINE(v_text); -- Результат: DIGITAL Q.DATABASE
END;


-- Удаление лишних пробелов и преобразование регистра
DECLARE
v_text VARCHAR2(100) := ' hello world ';
BEGIN
v_text := OWA_TEXT.TRIM(v_text);
v_text := OWA_TEXT.UPPER(v_text);
DBMS_OUTPUT.PUT_LINE(v_text); -- Результат: HELLO WORLD
END;
Please open Telegram to view this post
VIEW IN TELEGRAM
443
🚀 Самая быстрая СУБД в мире для OLTP

В феврале 2025 года Alibaba Cloud PolarDB обновила мировой рекорд TPC-C: 2,055 млрд транзакций в минуту (tpmC). Это в 2,5 раза выше их же предыдущего достижения.

🟣 Тест шёл 8 часов на кластере из 2340 узлов с сетью 100G RDMA.

Система выдержала 2,2 трлн операций с колебаниями измеряемого количества транзакций в минуту всего в 0,16% при допустимых 2%. При этом стоимость одной транзакции составила в пересчете на рубли всего 8 рублей 36 копеек — почти на 40% дешевле прошлого рекорда.

Разработчики позже признали: они могли бы показать и большие показатели по числу транзакций в минуту, если бы не просчет с емкостью дисков. По условиям теста TPC-C в котором эмулируется работа складов, каждый склад добавляет фиксированное количество данных. Именно емкость дисков просто не позволила добавить еще несколько складов, хотя по нагрузке процессоров еще оставался вполне приличный запас. Теоретически на том же «железе» можно выжать до 2,8 млрд tpmC, то есть на 36% больше текущего мирового рекорда.

🟣 Кстати, полезно отметить, что СУБД PolarDB была создана на основе проекта PostgreSQL.

🔗 Все официально зарегистрированные результаты теста TPC-C можно посмотреть здесь:
https://tpc.org//tpcc/results/tpcc_results5.asp
Please open Telegram to view this post
VIEW IN TELEGRAM
533
💘Как имена троих детей Михаэля «Монти» Видениуса нашли отражение в названиях его СУБД

У финского программиста Монти Видениуса (создателя MySQL и MariaDB, одного из авторов MaxDB) трое детей: дочери Май и Мария и сын Макс.

Их имена он увековечил в названиях своих СУБД:

MySQL — в честь старшей дочери Май
MariaDB — в честь средней дочери Марии
MaxDB — в честь сына Макса

Так что это не «моя SQL» и не «максимальная база данных», а просто любящий папа, который назвал три своих продукта в честь троих своих детей. Продал одну компанию Oracle — создал форк в честь другой дочери. Сын тоже не остался без внимания.

Вот такое семейное open-source счастье ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
622
Дорогие подписчики!

Добавляем ещё один кирпичик в PL/SQL-совместимость Digital Q.DataBase.
Сегодня — пакет OWA_UTIL.

Для чего он нужен

Пакет OWA_UTIL предоставляет набор вспомогательных утилит для работы с веб-приложениями. Он включает функции для обработки массивов, форматирования вывода, работы с динамическим SQL и управления параметрами запросов.

Основные функции

· BIND_VARIABLES — привязка переменных в динамическом SQL;
· CELLSPRINT — форматирование вывода в HTML-таблицу;
· GET_CGI_ENV — получение значений CGI-переменных окружения;
· LISTPRINT — вывод содержимого массива;
· SHOWPAGE — вывод HTML-страницы с заголовками;
· VC_ARR — тип данных для работы с массивами переменной длины;
· TABLEPRINT — вывод данных в виде HTML-таблицы.

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

-- Вывод содержимого массива
DECLARE
v_arr owa_util.vc_arr;
BEGIN
v_arr(1) := 'строка 1';
v_arr(2) := 'строка 2';
v_arr(3) := 'строка 3';

owa_util.listprint(v_arr);
END;
Please open Telegram to view this post
VIEW IN TELEGRAM
533