# Database ## Concepts - Choosing a database for workload - Schema = shape of the data - Types - [[nosql|NoSQL]], or document based database - Relational - [[graph-db|Graph Database]] - [[key-val|Key-value store]] - Search engines - Wide Column - Message brokers - Multi model - [[vector-db|Vector]] - high-dimensional data, good for similarity search - ACID = atomicity, consistency, isolation, durability - Transactions, e.g. 5 queries packed as a transaction, either all happens or none - Indexes, so that don't have to linear search every time we do a query. A [[tree]] structure is created. ## Properties - [[db-normalization|Normalization]] ## Choices - [[mongo|MongoDB]] - [[postgres|PostgreSQL]] - [[neo4j|Neo4j]] - [[redis|Redis]] ## Resources [Complete Intro to Databases | Brian Holt](https://btholt.github.io/complete-intro-to-databases/)