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
    • The table and relations
  • Physical Schema
    • How the data is stored on a disk
    • Indexes