- software layer, or service
- provides read/write access to databases
- client/server model
- centralized database administration (DBA)
- reliability, availability
- SQL: structured data, tables, rows, columns
- MySQL, PostgreSQL, SQLite
- NoSQL: unstructured data, key-value pairs, documents, graphs
- MongoDB, CouchDB, Cassandra
- Can delayed transactions leave the DB in an inconsistent state?
- ACID (relational)
- atomic: all commits succeed/ fail as one
- consistent: when transaction completes
- isolated: transactions run one at a time
- durable: transaction results are permanent
- BASE (NoSQL)
- basically available: appears to function properly
- soft state: state can change, without input
- eventually consistent at read time
- Design of your data
- how your data is organized
- types of entities
- attributes
- relations
- derived from Data Model
- SQL vs NoSQL differences
- SQL: schema on write
- NoSQL: schema on read