Database Management system (DBMS) provides efficient, reliable, convinient and safe multi-user storage of and access to massive amounts of persistent data.
efficient – performance, thousands of queries/updates per second
reliable – 99.99999% uptime
convinient – physical data independence, high-level query languages, declarative
safe – hardware, software, power, users
massive – terabytes
persistent
multi-user – concurrency control
Database applications may be programmed via frameworks (Django, Rails)
DBMS may run run in conjunction with “middleware” (app servers, web servers)
Data-intensive applications may not use DBMS at all
Course focuses on DBMS itself
Key concepts:
Data model – set of records, XML, graph
schema vs. data – types vs. variables
data definition language (DDL) – set up schema/structure for a database
data manipulation or query language (DML) – querying and modifying
Key people:
DBMS implementer – builds system
database designer – establishes schema
database application developer – programs that operate on database
database administrator – loads data, keeps running smoothly