Учебная реляционная база данных, вдохновлённая PostgreSQL. Проект сделан как “минимальный аналог Postgres”, чтобы на практике разобраться в внутренностях СУБД: хранение данных, выполнение запросов, базовая индексация и сопутствующие компоненты.
PostgreSQL кажется “магией”, пока не потрогаешь руками базовые механики:
- как и где лежат строки
- что такое страница/таблица/сканирование
- как устроен индекс и почему он ускоряет запросы
- как проходят стадии “парсинг -> план -> выполнение”
drip-postgresql — именно про это: компактная учебная реализация, с фокусом на понимание, а не на production-готовность.
Ниже перечень на уровне возможностей (без обещаний полной совместимости с PostgreSQL):
- минимальный SQL-подобный интерфейс для работы с данными
- базовые DDL/DML операции (создание структуры и CRUD в рамках поддерживаемого подмножества)
- хранение данных на диске (персистентность проекта как СУБД, а не “в памяти”)
- базовая поддержка индексов (ускорение выборок по индексируемым полям)
- инфраструктура, необходимая для дальнейшего развития (модули, слои, разделение ответственности)
Подробные примеры команд и сценарии использования вынесены в howto.md (рекомендуемая точка входа для “попробовать руками”).
Это учебная реализация. Здесь осознанно могут отсутствовать или быть упрощены:
- полноценный оптимизатор запросов
- транзакции, MVCC, WAL, репликация
- конкурентный доступ и сложная блокировочная модель
- богатая система типов и совместимость с реальным PostgreSQL
Если вам нужна реальная СУБД, используйте PostgreSQL. Если хочется понять, что у СУБД “внутри”, вам сюда.
- JDK (рекомендуется современная версия: 17+)
- Gradle Wrapper из репозитория
./gradlew buildЧтобы протестировать клиент-серверное нужно запустить файл ServerMain.java, потом ClientMain.java в src/main/java/ru/open/cu/student/cli/impl/