Database Management System (DBMS)
- A software system designed to store, manage, and facilitate access to databases
- Typically used to refer to relational databases with transactions
- Many types: relational, key value, graph, matrix, etc.
- File system vs DBMS
- File system runs on top of the operating system, while a DBMS has its own disk space and buffer management
- DBMS has a declarative query system, file system has imperative direct access
- DBMS has concurrent access and recovery
- DBMS makes development easier because you can use the schema
- Advantages
- Good data modeling
- Simple, efficient, ad hoc queries
- Data integrity and security
- Data administration
- How
- Data modeling (ER, Relational Model, FDs)
- Query languages (Relational Algebra, SQL)
- Views, indexes, constraints, triggers, UDFs
Relational DBMS Architecture
- Layered architecture
- Query Optimization and Execution
- Relational Operators
- Files and Access Methods
- Buffer Management
- Disk Space Management
- Bottom 3 need concurrency control and recovery
Levels of Abstraction
- External schema (aka Views)
- Conceptual (logical) Schema
- Physical Schema
- How the data is stored on a disk
- Indexes