Design a simplified version of MySQL
Design a simplified version of a relational database management system (RDBMS) similar to MySQL. The system should support the following core functionalities:
- Database Management: Ability to create and manage databases.
- Table Management: Ability to create tables within a database, defining schema (column names and types).
- Data Manipulation: Support for inserting rows into tables and querying rows based on simple conditions.
- Relational Behavior: Implement basic relational database concepts.
- Command Handling: Parse and execute commands for the above operations.
- Data Storage: Maintain data in memory using appropriate data structures.
The design should adhere to Object-Oriented Programming (OOP) and SOLID principles.
AI interview prep
Core dilemma
Balancing the complexity of a full-featured RDBMS with the constraints of an in-memory, simplified design, while ensuring extensibility and maintainability through OOP/SOLID principles.
3 tradeoffs and 2 stress tests locked
Interview prep
Unlock the interviewer X-Ray rubric, tradeoff matrix, stress tests, clarifying questions, and key concepts.
Design a simplified version of MySQL
Design a simplified version of a relational database management system (RDBMS) similar to MySQL. The system should support the following core functionalities:
- Database Management: Ability to create and manage databases.
- Table Management: Ability to create tables within a database, defining schema (column names and types).
- Data Manipulation: Support for inserting rows into tables and querying rows based on simple conditions.
- Relational Behavior: Implement basic relational database concepts.
- Command Handling: Parse and execute commands for the above operations.
- Data Storage: Maintain data in memory using appropriate data structures.
The design should adhere to Object-Oriented Programming (OOP) and SOLID principles.