SQL / RDBM
- standardized languages and grammar
- can be scaled mainly vertically by increasing power of existing hardware
- data is relational and tabular/row-oriented
- ACID-conform
Databases
H2
- Local Database
- Often used for development purposes
- Completely in memory (?) but can be persisted in a file
SQLite
- No classical Client-/Serer-Architecture
- Every client has the whole database and functions available
- tiny size
- wide spread among embedded and mobile systems
- lacking some feataure (e.g. for complex queries)
- lacking some security
- single file approach has lot of benefits but prevents multi user
- optimal for client side software - no additional installation needed because it's embedded in your application and the single file approach is easily backupable and movable
MariaDB
- Real OpenSource MySQL successor
- extremely close to MySQL Standard
- rapid Security Patches
- can become bloated
- has some caching issues
- offers In-Memory Databases
PostgreSQL
- extremely performant on huge datasets
- not the best on small datasets
- database functions can be written in Python, Perl, Java, Ruby, C and R
- huge community support
- no In-Memory-Databases but very efficient caches
MySQL
- since it was bought from Oracle it is kinda discontinued
Migration
Liquibase
Flyway
NoSQL
- diverse languages and grammar
- can be scaled horizontally with hirarchical node structure
- CAP-conform
Document oriented
- great for dynamic data
- data mostly stored in JSON
MongoDB
Google Firestore
- Used until Q1 2023 for Jarvis AI
- Not really available for Java/Kotlin Serverside ==> really made for direct access from fronted clients
- that is fine for data that is just that - data - but not so great for data that we need to centrally react on
- this could in term be done by firestore functions, but dependencies over dependecies over dependencies.. :c
CouchDB
- regarding CAP favors availability and partition tolerance over consistency
Couchbase
Column oriented
- often used for data analysis
- e.g. Apache Cassandra
Key-Value store
- fast and scalable
- not very customizable
- Couchbase Server
- Redis
Graph databases
References