СУБД SoQoL
994 subscribers
48 photos
63 links
Разрабатываем транзакционную СУБД с производительностью кратно выше ведущих систем для рынков России и за рубежом

https://soqol.ru

АО НПП "РЕЛЭКС"
Download Telegram
Всем привет!

Поговорим ещё раз о точках сохранения.

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

В настоящий момент по реализации точек сохранения:
- создаются в рамках транзакции (при отключенном режиме AUTOCOMMIT);
- с возможностью отката изменений до любой из них;
- с возможностью перекрытия одноименных точек;
- с сохранением точки, до которой выполнен откат изменений.

Начали документировать и всё шло хорошо, пока не дошли до примера.

А что с примерами?

Часто они безликие:

INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (3);
COMMIT;

А хочется жизненного, чтобы читатель сначала проникся ситуацией, а потом на основе её понимания принял пример.

Подскажите хорошие примеры для SAVEPOINT в паре с ROLLBACK TO SAVEPOINT, которые демонстрируют действие точек сохранения и отката до одной из них на основе жизненной ситуации.
И в каких ситуациях может понадобиться RELEASE SAVEPOINT - удалять точку сохранения? Лучший пример (с сохранением описания жизненной ситуации) мы добавим в документацию SoQoL.

Если не придумаем, пример будет безликий и сухой 😭 Спасайте!
Всем привет!

По Вашим просьбам мы упрощаем доступ к свежим сборкам СУБД SoQoL для всех наших подписчиков. Теперь ссылки на все свежие сборки SoQoL будут публиковаться здесь — https://t.me/+Wa_WxMvKkwsyMjhi

🔹Подписывайтесь
🔹Скачивайте
🔹Тестируйте
🔹Внедряйте в свои приложения

Если находите ошибки или есть предложение по развитию или сотрудничеству — пишите нам!
Мы всегда рады обратной связи 🙂

Обратите внимание, альфа тестируется только с Windows 10 и Ubuntu-20.04
Всем привет!

Спасибо за Ваши отклики! И мы продолжаем наш обзор реализации SoQoL.

Ранее был пост про временные таблицы в SoQoL. Теперь про таблицы постоянные.

СУБД SoQoL является реляционной и ее основной объект – таблица.

За основу в SoQoL выбрали индекс-организованные таблицы, которые построены на хранилище типа B-Tree в виде так называемого кластерного индекса. Его основная задача — сохранение табличных данных в виде, упорядоченном по значению индекса.

У таблицы может быть только один кластерный индекс (он же может быть первичным ключом), так как данные могут быть отсортированы только в одном порядке.
Помимо «неявного» кластерного индекса для таблицы могут быть пользователем построены и «явные» индексы.

При описании данных, хранимых в таблицах в SoQoL, сейчас уже можно использовать:
1. Типы данных: строковый, дата и время, логический, числовой, двоичный.
2. Кодировки данных для строковых типов. Поддерживаются кодировки UTF-8 и CP1251 и правила сравнения, применимые к ним (BINARY, UCA_UTF8_LX_CS, UCA_UTF8_LX_CI, WIN1251_CS, WIN1251_CI).
3. Ограничения каждого столбца и для совокупности столбцов: PRIMARY KEY, NOT NULL, UNIQUE, [UNIQUE] CLUSTERED KEY.
4. Свойства столбца. В настоящий момент реализованы: DEFAULT, COLLATE, GENERATED ALWAYS.

Краткий пример:
CREATE TABLE PHONE (
NUMBER bigint,
NAME varchar(200),
AGE int,
CITY varchar (150) DEFAULT '<не указан>'
);

SoQoL поддерживает вычисляемые (виртуальные) столбцы, которые не хранятся на диске. Ограничения, которые можно наложить на данные виртуального столбца, те же, что и для обычного столбца.

Какие наши ближайшие планы?

1. Расширение набора хранилищ. Например, реализация HEAP-таблиц.
2. Реализация возможности модификации структуры таблиц.
3. Реализация внешних ключей.

Здесь мы не затронули тему связанных с темой таблиц объектов (представлений, генераторов последовательностей, индексов и т.д.), про это в другой раз.

О чём рассказать в следующей публикации?
СУБД SoQoL pinned «Всем привет! По Вашим просьбам мы упрощаем доступ к свежим сборкам СУБД SoQoL для всех наших подписчиков. Теперь ссылки на все свежие сборки SoQoL будут публиковаться здесь — https://t.me/+Wa_WxMvKkwsyMjhi 🔹Подписывайтесь 🔹Скачивайте 🔹Тестируйте 🔹Внедряйте…»
Всем привет!

Недавно мы рассказывали о реализации таблиц в SoQoL. Пойдем дальше и поговорим о реализованных типах данных.

Типы данных СУБД SoQoL можно разделить на несколько групп:
– cтроковый;
– даты и времени;
– логический;
– числовой;
– двоичный.

В разных СУБД типы данных могут отличаться названиями, допустимым диапазоном значений. Но сейчас о типах в SoQoL.

Рассказываем по пунктам:

1. Строковые типы представлены типами:
- CHAR фиксированной длины (от 1 до 4000). Если хранимые величины менее фиксированной длины, то они дополняются пробелами;
- VARCHAR (синоним VARCHAR2) переменной длины (от 1 до 4000). Хранимые величины не дополняются пробелами;
- CLOB для представления большого блока текстовых данных.

2. Типы данных даты и времени представлены типами:
- DATE (синоним DATETIME) для представления даты (год/месяц/день) и времени (час/минута/секунда) без долей секунды;
- TIMESTAMP для представления даты (год/месяц/день) и времени (час/минута/секунда), включая доли секунды (с точностью до аттосекунд (10^-18)).

3. Логический тип данных представлен типом BOOLEAN для представления логических значений TRUE или FALSE.

4. Числовой тип данных представлен типами:
- NUMBER (38,0), через который реализованы типы SMALLINT, INTEGER, INT, BIGINT. Внутреннее представление этого формата имеет переменную длину и позволяет хранить до 38 значащих десятичных цифр;
- NUMBER (precision, scale) (синонимы NUMERIC, DECIMAL) для представления целых чисел, дробных чисел с фиксированной или плавающей запятой (в виде мантиссы с фиксированной запятой и экспоненты).

5. Двоичный тип данных представлен типами:
- BLOB для представления таких данных, как, например, картинки;
- BINARY постоянной длины (от 1 до 4000 байт). Если хранимые величины менее фиксированной длины, то они дополняются нулевыми байтами;
- VARBINARY (синоним RAW) переменной длины (от 1 до 4000 байт). Используется только необходимое количество байт, без дополнения нулевыми байтами;
- ROWID переменной длины (от 1 до 4000 байт). Используется только необходимое количество байт, без добавления нулевыми байтами. ROWID преимущественно используется в псевдоколонке ROWID для хранения значений, уникально идентифицирующих каждую строку таблицы.

Как видите, для части типов представлены синонимы. Это сделано для совместимости со стандартом SQL и удобства пользователей. Данные синонимичных типов хранятся в формате базовых типов.

Например: у нас базовый тип DATE, а синоним DATETIME. При создании таблицы для столбца указываем DATETIME. В итоге, данные по столбцу хранятся в базовом типе DATE.

Какими типами данных пользуетесь Вы?
А поговорить?

Спасибо вам за поддержку и вопросы, которые вы присылаете в ответ на наши посты!

Но не текстом единым живёт наш канал :)

Мы периодически записываем подкасты, собираясь с интересными людьми и общаясь на разные темы, связанные с СУБД.

И недавно вышел наш НОВЫЙ ПОДКАСТ! Заходите и СЛУШАЙТЕ https://vk.com/linter_ru?z=podcast-87199162_456239026

Мы поговорили:
- о самой СУБД;
- зачем начали разработку SoQoL;
- с чего начали её разработку и сколько уже длится проект;
- для кого интересна наша новая СУБД;
- об используемых технологиях в SoQoL;
- об архитектуре SoQoL и т.д.

Участники:
- Михаил Бакланов – директор центра СУБД
- Андрей Коротченко – архитектор СУБД SoQoL
- Денис Хохлов – зам. директора центра СУБД по развитию

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

Свой первый эксперимент с SoQoL мы провели на системе автоматизации учета инфраструктуры с кодовым названием AIM, которая выросла из учебного проекта. Что из этого получилось? Вы узнаете, прочитав нашу небольшую заметку — https://www.soqol.ru/tpost/ygjes468f1-pervaya-integratsiya-soqol
Нам важно, чтобы наши подписчики понимали, кто мы.

Итак, раз Вы читаете этот пост, то скорее всего знаете, кто мы. Но если Вы недавно с нами, то вот небольшая справка:

Мы — «Реляционные экспертные системы» (сокращенно РЕЛЭКС), российская ИТ-компания, более 30 лет создающая технологические решения для бизнеса и государственных структур. И каждый день мы трудимся над развитием качественных ИТ-продуктов.

РЕЛЭКС является членом ИТ-ассоциаций АРПП «Отечественный софт» и «РУССОФТ».

Этот канал посвящён нашему детищу: СУБД нового поколения — SoQoL. Здесь мы пишем и рассказываем о процессе разработки, результатах, обмениваемся с вами мнениями по поводу реализации спорных моментов.

Более подробно о нас можно почитать здесь (https://relex.ru), о SoQoL здесь или на сайте (https://soqol.ru). Заходите!

Да что всё о нас... Вас в этом канале почти 400 подписчиков. Мы рады каждому и

Нам также ВАЖНО понимать, кто вы, наши читатели!

Пожалуйста, в опросе под постом, выберите себя 🙂

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

P.S. Мир полон единомышленников, важно не закрываться в себе!
Разложить по пунктам или это занудство?

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

Хотя этот процесс и может показаться кому-то нудным, но качественно разработанная документация позволяет:
1) команде создателей говорить на языке пользователя;
2) пользователю легко овладеть новым для него программным продуктом.

При написании документации для СУБД SoQoL мы очень хотели учесть все нюансы и подробно всё описать. НО...

Во-первых, это очень сложно, т.к. продукт не статичен, он постоянно развивается и совершенствуется.

А, во-вторых, насколько подробно?
Кто-то начнёт работать с SoQoL после работы с другими СУБД. У такого пользователя есть опыт и некоторое понимание устройства СУБД. А кто-то совсем юный junior и ему информации нужно значительно больше.

Поэтому при разработке документации для для СУБД SoQoL мы искали компромисс и решили придерживаться следующих правил:
1. Документация должна быть полноценной, чтобы пользователю не приходилось искать ответы на свои вопросы «на стороне».
2. Документация не должна быть избыточной. Всё-таки, она создаётся для эффективного поиска пользователем нужной информации при работе СУБД.
3. Вся схема документации должна быть логичной и взаимосвязанной.

На текущий момент часть документации готова и скрин оглавления для бета-версии СУБД SoQoL можно посмотреть по ссылке.

Учитывая свой опыт, посмотрите на него и напишите:
– удобна ли такая структура документации СУБД?
– каких разделов не хватает?

Если чего-то не хватает – пишите с пояснениями в комментариях.

P.S. Спасибо, что помогаете делать SoQoL лучше!
P.P.S. Саму документацию в релизе беты вы скоро увидите. Обещаем 🙂
Найти и получить

Поговорим о реализации select в SoQoL.

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

Самый простой пример использования, «без изюминки» — запросить все данные из таблицы. Например:
select * from <источники_данных>;

Кстати, про источник данных:
– он может быть не один;
– допустимо в качестве источника указать select-запрос;
– допустимо указание соединение источников (inner join, natural join, outer join, cross join).

Например:
select * from TABLE1 natural inner join TABLE2;

Можно объединять запросы через union. который даст результат без дублирующих значений, а union all — позволит получить все значения, включая дублирующиеся.

Например:
select "Возраст", "Подразделение" from (select "Возраст", "Подразделение" from VORONEZH union select "Возраст", "Подразделение" from MOSCOW) where "Возраст" > 65;

А если нам нужен результат без дубликатов? В этом случае в запрос добавляем ключевое слово distinct.

Например:
select distinct CITY from PHONE;

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

Хотите выбрать только конкретные строки — укажите после слова where условие выборки таких строк.

Источники выбрали, условие прописали, что ещё можно?

Реализовано применение конструкции group by, позволяющей в результирующем наборе группировать строки, имеющие одинаковое значение по одному или нескольким столбцам. А если в комплекте указать having, то это позволит получить только нужные группы строк.

Например:
select CITY, count(*) as COUNT from PHONE group by CITY having count(*) >= 5;

Для упорядочения записей в результирующем наборе достаточно указать конструкцию order by:
asc — полученные значения будут упорядочены по возрастанию;
desc — полученные значения будут упорядочены по убыванию.

Также для оператора select в SoQoL реализована возможность ограничения числа строк выборки:
– конструкция fetch first позволяет получить заданное число первых строк из результирующего набора;
– конструкция limit с дополнением offset позволяет получить заданное число первых строк из результирующего набора с указанием числа строк, которые необходимо пропустить перед возвращением строк результата.

Ну и на десерт…

А что делать, если в момент вашего обращения к таблице кто-то изменяет в ней данные? Когда и какие результаты вы получите?

Это управляется конструкцией for update в запросе select с указанием принципа поведения относительно уже заблокированных параллельной транзакцией строк:
for update nowait — не ждать разблокировки и собрать то, что получится (до встречи с первой заблокированной строкой;
for update skip locked — не ждать разблокировки и собрать результат исходя из всех «свободных» строк;
for update — «ждать до последнего», до разблокировки и получить полную выборку, с учётом всех обновлённых строк.

Вы используете весь функционал select или чаще формируете простые запросы?
Поговорим о добавлении данных в таблицу командой INSERT.

В SoQoL добавление данных реализовано 2 способами:
1. Добавление заданных значений.
Например:
insert into PHONE (NUMBER, NAME, AGE) values (89876543288, 'Беляев', 38);

2. Добавление результатов SELECT-запроса.
В обоих вариантах указание списка столбцов не является обязательным. В этом случае набор вставляемых значений должен соответствовать набору столбцов таблицы (по числу полей, их порядку, по типам данных полей, определенных в команде CREATE TABLE).

Например:
Создадим таблицу с данными абонентов по всем городам:
create table PHONE (NUMBER bigint primary key, NAME varchar (75), AGE int, CITY varchar (45));

Добавим в неё данные абонента из Воронежа:
insert into PHONE values (89876543277, 'Егоров', 38, 'Воронеж');

А теперь создадим таблицу с данными абонентов из Воронежа и с использованием SELECT-запроса добавим в неё данные из общей таблицы:
create table PHONE_VORONEZH (NUMBER bigint primary key, NAME varchar (75), AGE int);
insert into PHONE_VORONEZH select NUMBER, NAME, AGE from PHONE where CITY = 'Воронеж';

А если мы указываем перечень вставляемых столбцов, но указываем не все столбцы, то какой будет результат?

Если при создании таблицы для какого-либо из столбцов было указано значение по умолчанию и при вставке данных в таблицу командой INSERT этот столбец явно не упоминается, то будет добавлено именно это значение.

Если при создании таблицы для какого-либо из столбцов не было указано ограничение NOT NULL и при вставке данных в таблицу командой INSERT этот столбец явно не упоминается, тогда будет добавлено NULL-значение.

Из привычно-обычного всё. А есть что-то ещё?

Конечно! В обоих вариантах команды INSERT допустимо использование конструкции RETURNING, которая позволяет оперативно получить добавленные данные.

Это удобно при вычисляемых в процессе вставки данных или когда данные заполняются значениями из генератора последовательности (например, табельный номер сотрудника).

Например:
create sequence SEQ1 start with 100 increment by 1 maxvalue 999 nocycle;

create table WORKERS (TN bigint DEFAULT SEQ1.nextval primary key, NAME varchar (70), LASTNAME varchar (100));

insert into WORKERS (NAME, LASTNAME) values ('Игорь', 'Иванов') returning TN;

После успешно выполненной команды будет возвращено значение поля TN из вставленной строки:
TN
-------------
100

И не нужно никаких дополнительных запросов :)

А ещё ведётся доработка возможности внесения данных «пачкой». Но про это чуть позже.

Что скажете? Есть предложения по развитию INSERT?
Создали, наполнили... теперь можно менять

Мы с вами уже рассмотрели как можно в SoQoL:
- создать таблицу;
- добавить в неё данные;
- сделать выборку.

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

Идём дальше и посмотрим, как можно изменить внесённые в таблицу данные.

Про UPDATE в SoQoL

Команда UPDATE предназначена для изменения данных в обычных и временных таблицах. Применять UPDATE к виртуальным столбцам нельзя.

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

Рассмотрим использование UPDATE на примере одного столбца.

Создадим таблицу:
create table WORKERS (TN int primary key, NAME varchar (150), SALARY number (10,2));

И добавим в неё несколько строк:
insert into WORKERS values (100, 'Егоров Е.В.', 78000);
insert into WORKERS values (101, 'Попова А.П.', 65000);
insert into WORKERS values (102, 'Сидоров С.А.', 80000);

Давайте проиндексируем всем зарплату на 25%!:
update WORKERS set SALARY = SALARY * 1.25;

А при индивидуальном подходе к такому приятному делу используем конструкцию WHERE с условием.
Тогда радость от новой зарплаты можно подарить другу (+40%, у него скоро свадьба!) с табельным номером 100:
update WORKERS set SALARY = SALARY * 1.40 where TN = 100;

Если же нам нужно порадовать новым окладом и невесту, то воспользуемся вариантом команды с изменением значений в нескольких столбцах (заодно и сменим фамилию):
update WORKERS set NAME = 'Егорова А.П.', SALARY = SALARY * 1.40 where TN = 101;

В команде UPDATE, как и в INSERT, допустимо использование конструкции RETURNING. Это позволяет оперативно получить обновлённые данные.

Ремарка: команда UPDATE изменяет данные в одной заданной таблице.

В MySQL синтаксис команды UPDATE допускает указание нескольких таблиц. Как думаете, нам в SoQoL такое нужно?
Продолжим знакомство с реализацией SoQoL...

Работая с таблицей, мы добавляем в неё данные, изменяем их, анализируем… Но однажды хранимые данные могут потерять свою актуальность и, дабы не хранить «мусор», нужно их удалить.

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

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

Например:
delete from PHONE where NUMBER = 89876543210;

Если никаких условий не указывать, то будут удалены все строки таблицы.

Например:
delete from PHONE;

Конструкцию RETURNING, упомянутую ранее в INSERT и UPDATE, можно использовать и в DELETE. Здесь она позволит получить данные из удалённых строк.

Если же решил одним махом стереть всё, без всяких условностей, то используй TRUNCATE TABLE.

Например:
truncate table PHONE;

После выполнения команды таблица будет вновь чиста, как в момент создания.

Скажешь «Пфф, есть же DELETE, зачем ещё какой-то TRUNCATE»?

А мы так скажем, TRUNCATE – для решительных и уверенных в своих действиях, потому что после выполнения команды TRUNCATE TABLE откат командой в прежнее состояние невозможен.

Да, ещё одна особенность – при выполнении команды TRUNCATE блокируется вся таблица, а при DELETE – каждая удаляемая строка.

Ну и конечно же TRUNCATE TABLE выполняется значительно быстрее DELETE.

Выполнять DELETE и TRUNCATE допустимо как по отношению к обычным таблицам, так и временным.

Реализация «как у многих». Велосипед здесь не придумывали, да и не зачем :)

P.S. И как всегда: есть вопросы/предложения – пишите :)
Минуточку внимания!

В нашем канале стало немного тихо, но это объяснимо.

Вся команда сконцентрировалась на релизе beta-версии.

Активное тестирование, устранения багов, правки документации, составление отчетных документов… Этот процесс требует много ресурсов. Поэтому просим понять и простить.

Параллельно готовим новые публикации.

Но если у вас есть вопросы, пишите прямо сейчас! Поговорим вне очереди 🙂
Virgin Galactic запустила корабль Unity впервые с 2021 года

А что мы?

Готовы анонсировать наше, хоть и небольшое, но свершение.

Мы выпустили бета-версию СУБД SoQoL и двигаемся дальше!

Что нового случилось с момента выхода альфы?
– появилась полноценная пользовательская документация;
– реализованы временные таблицы;
– реализованы очередные команды и функции;
– добавлена поддержка типов float, double precision и real;
– расширены возможности отдельных конструкций;
– расширена информация в системных представлениях для улучшения анализа происходящих процессов…

… это лишь малая толика того, что было доработано. О многом мы пишем здесь, советуемся с вами.

Microsoft признала проблемы с копированием и сохранением файлов в Windows 10 и 11 версиях... Если такие гиганты открыто признаются в ошибках, то и нам не зазорно.

Да, в бета-версии SoQoL исправлены ошибки, найденные в альфе. Но уверены, что их еще много, ведь программный продукт — это не статика, а живой организм, при развитии которого может пойти что-то не так.

Довольно слов. Для тех, кто в нетерпении, ссылка здесь.

Пожалуйста, скачивайте, тестируйте и пишите нам ваши мнения, критику, пожелания 😀
Добрый день, наши дорогие читатели!

После того, что произошло, просто необходимо назвать вас Друзья, Соратники! 😀

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

Хочется выразить огромную благодарность всем, кто откликнулся на наше сообщение. Больше всего разрывался наш бот техподдержки – там творилось и творится что-то невообразимое! Мы рады не только всем вашим замечаниям и предложениям, но и вашей конструктивной критике. Всё это мы аккуратно систематизируем и планируем к работе.

Спасибо вам огромное от нашей команды и ... работаем дальше! Нужно еще много успеть!
Первые шаги сделаны – выпущены две версии СУБД SoQoL: альфа и бета. За ними стоит огромная работа. И процесс идет вперед: доработки системы, устранение ошибок ведутся непрерывно.

Ежедневно бета-версия продукта тестируется не только нашей командой, но и вами, нашими соратниками, а также нашими партнёрами. К нам приходит множество пожеланий и обоснованной и критики.

Расстраиваемся ли мы? Отнюдь! Ведь кто лучше может знать, какой должна быть современная СУБД? Конечно же тот, кто будет с ней работать.

Ваш опыт, знания – это востребованный вклад не только в становление и развитие нашей СУБД, но и, не побоимся этих слов, в развитие отечественной ИТ-сферы. А мы в свою очередь просто обязаны побуждать своими разработками развитие всей ИТ-индустрии :)

Что нам для этого нужно сейчас?

Вспомним правило «шести рукопожатий» и расширим вместе круг пользователей SoQoL. Более масштабное тестирование в разных условиях и владение обширной обратной связью позволят совершенствовать продукт быстрее.

В чем состоит наша просьба:
Если у вас есть знакомые, которым важно знать о развитии СУБД-строения – подписывайте их на наш канал https://t.me/soqol_dbms.

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

Нам важны ВСЕ контакты.

ПИШИТЕ в личку: @mikhail_baklanov  (директор центра СУБД) или @den_relex (заместитель директора центра СУБД по развитию).

Вместе мы способны на великие достижения!
Всем привет! Недавно в «Открытых системах» вышла статья «Реляционная СУБД для современного оборудования», в которой поделились деталями архитектурных особенностей СУБД SoQoL. Читайте по ссылке https://www.osp.ru/os/2023/02/13057249
Друзья!
 
На прошлой неделе СУБД SoQoL встретила свой день рождения 🎉 От идеи до бета-версии прошло 6 лет. И сегодня мы хотим обратиться лично к каждому нашему читателю, не как специалист к специалисту, а как человек к человеку.
 
С первого дня у нас была цель: создать свою, независимую, современную СУБД, помогающую работе и развитию отечественных компаний и всей отрасли ИТ.
 
Прямо скажем, амбициозно. Не все верили в эту затею. «Да зачем это нужно? Вон есть проверенные, те же Oracle, Postgres и другие».
 
И даже были те, кто авторитетно утверждал: «Ничего путного не получится. Не изобретайте велосипед и не пытайтесь переплюнуть известных титанов». Но ошибаются даже опытные…
 
Сегодня над проектом работает большая команда! Это специалисты и с 30-летним опытом и молодые сотрудники. Разность поколений и компетенций позволяет им обмениваться мнениями, смотреть на одни задачи под разным углом и вместе развивать современный продукт.
 
Восхвалять себя и свой труд можно бесконечно. Писать статей и постов сколько угодно. Только если бы наш труд был пылью, вряд ли кто-то нас читал и интересовался новой СУБД.
 
Мы здесь потому, что сегодняшняя реальность показала важность современных, качественных, отечественных ИТ-продуктов.
 
И мы продолжаем кропотливо работать благодаря всем тем, кто нас поддерживает. Благодаря каждому из вас мы ежедневно совершенствуем свою СУБД!
 
Искреннее спасибо вам за участие в разработке СУБД SoQoL!
 
P.S. Кстати, у нашей компании тоже скоро праздник – 2 июля День рождения РЕЛЭКС! Компании исполняется 33 года!