-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Sidorenko Sofia, 24215: Technical documentation, exception classes, code
- Munkuev Vladislav, 24215: Other documentation, JDBC, Constraints, code.
- Obraztsov Dmitry, 24214: Tests, grammar, code
- Romanenko Nikita, 24214: Main architecture and code
Actors: CLI User
Goals: Changing DB structural components.
Preconditions: The system environment is installed and running correctly.
Trigger condition: The actor enters a valid DDL query (CREATE, DROP, etc.)
Main success scenario:
- The actor inputs a valid query.
- The system parses the query and returns a query object.
- The query object is passed to the core driver.
- The core driver creates the internal representation of the query.
- The driver passes control to the file manager.
- The file manager updates the required file structure.
- On success, control is returned to the parser, which waits for the next query.
Alternative scenario A — Invalid query:
Trigger: The actor enters an invalid query.
- The parser detects a syntax or semantic error.
- The parser displays an error message.
- The system continues working normally.
Alternative scenario B — File system error:
Trigger: A failure occurs during file system operations.
- The error is displayed.
- The system continues working normally.

Actors: CLI User
Goals: Modify the DB data using valid queries.
Preconditions: The database exists and its file representation is valid.
Trigger condition: The actor enters a valid DML or DDL query (INSERT, UPDATE, etc.)
Main success scenario:
- The actor inputs a valid query.
- The system parses the query and returns a query object.
- The query object is passed to the core driver.
- The core driver builds an internal representation of the query.
- Control is passed to the file manager.
- The file manager updates the data accordingly.
- On success, control is returned to the parser to await the next query.
Alternative scenario A — Invalid query:
Trigger: Invalid query entered.
- The parser detects an error and displays it.
- The system continues normal operation.
Alternative scenario B — File system error:
Trigger: File system operation fails.
- The system restores the previous data changes using the transaction log.
- The error message is shown.
- The system continues normal operation.

Actors: CLI User
Goals: Manage transactions and ensure data consistency.
Preconditions: The transaction log and data files are available and consistent.
Trigger condition: The actor enters valid TCL queries (BEGIN TRANSACTION, COMMIT, etc.)
Main success scenario:
- The actor inputs a valid query.
- The system parses the query and returns a query object.
- The query object is passed to the core driver.
- The driver creates an internal representation of the query.
- Control is passed to the file manager.
- The file manager commits or restores data changes using the transaction log.
- On success, control is returned to the parser.
- The system waits for the next query.
Alternative scenario A — Invalid query:
Trigger: Invalid query entered.
- The parser detects an error and reports it.
- The system continues normal operation.
Alternative scenario B — File system error:
Trigger: File system error.
- The system notifies the user of transaction failure.
- The system continues operating.
Alternative scenario C — External interruption:
Trigger: External interruption occurs.
- The system terminates critically.

Our library should work correctly on the following operating systems and their versions:
- Linux Ubuntu (ver. 24.04+),
- MacOS (ver. 13+)
- Windows (ver. 10+)
Java (ver. 17+)
Recovery is implemented using simple logging. We want to log every request except SELECTs.
- The DB must operate on Windows, Linux and MacOS
- The DB must be able to recover after crashing
- In our DB data stores in columns
- There must be JDBC support for using our system in Java programs
- Our system must successfully work with large size of database
- Potential expansion to network mode.
- Optimized data storage in columns.