Architecture of a database management system
There’s no common blueprint for database management system design. Every database is built slightly differently, and component boundaries are somewhat hard to see and define. Even if these boundaries exist on paper (e.g., in project documentation), in code seemingly independent components may be coupled because of performance optimizations, handling edge cases, or architectural decisions. Hence in this article I will be defining a common architecture (component + interfaces between them) of DBMS, that I believe every DB vendor thrive for. Quick Links 1. Architecture 2. Components and their Interaction 2.1. Transport Subsystem 2.2. Query Processor 2.3. Execution Engine 2.4. Storage Engine DBMS Architecture Database management systems use a client/server model, where database system instances (nodes) take the role of servers, and application instances take the role of client