Skip to content

Jigokuraku01/In-memory-SQL-DBMS

Repository files navigation

Language: Русский | English


Задание 1: STAGE-1

Задание 2: STAGE-2

Задание 3: STAGE-3

Задание 4: STAGE-4

Задание 5: STAGE-5


Описание проекта

Учебный проект in-memory SQL СУБД, реализованной как минималистичный ASP.NET Core Web API. Сервис парсит и исполняет подмножество SQL, хранит таблицы и данные в памяти и предоставляет HTTP‑ручки для выполнения запросов и получения метаданных. Цель — отработать проектирование ядра СУБД, написание SQL‑парсера и создание аккуратного API с предсказуемыми JSON‑ответами.

Стек технологий

  • Язык: C# (LangVersion 10)
  • Платформа: .NET 6 (ASP.NET Core Minimal Web API)
  • Тип проекта: Web API сервис
  • Хранилище: In-memory структуры данных (без внешней БД)
  • API: REST‑подобные endpoints, JSON вход/выход
  • Инструменты: Swagger для разработки и отладки

Поддерживаемые возможности и операции

Метаданные и управление сервисом

  • Информационная ручка (с токеном завершения в dev/test)
  • Корректное завершение через защищённую ручку

Управление таблицами (DDL)

  • CREATE TABLE с поддержкой:
    • IF NOT EXISTS
    • Типов колонок: BOOLEAN, INTEGER, FLOAT, STRING, SERIAL
    • Ограничений: PRIMARY KEY, NOT NULL
    • Значений по умолчанию через DEFAULT
  • DROP TABLE с поддержкой IF EXISTS
  • Ручки списка таблиц и схемы таблицы

Работа с данными (DML)

  • INSERT INTO ... VALUES ... с RETURNING
  • SELECT ... FROM ... с:
    • * или явным списком колонок
    • Опциональным WHERE (операторы =, !=, >, <, >=, <=)
    • Опциональным ORDER BY и направлением ASC/DESC
    • Опциональным LIMIT
  • UPDATE ... SET ... с опциональными WHERE и RETURNING
  • DELETE FROM ... с опциональными WHERE и RETURNING

Расширенные возможности запросов

  • AS для алиасов колонок
  • Вложенные SELECT в секции FROM

Формат результатов

Все результаты запросов возвращаются в формате schema + rows. Схема описывает колонки, а значения данных сериализуются строками (или null для отсутствующих значений), что делает ответы единообразными для всех SQL‑типов.

About

Educational in-memory SQL DBMS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages