Database Type |
Examples |
Pros |
Cons |
Use cases |
Relational Databases |
Oracle, MySQL, SQL, DB2 etc. |
|
SQL databases cannot handle unstructured or semi-structured data, their tables don’t necessarily map to objects, they require complicated ETL (Extract, Transform, Load) and maintenance, have row locking, and pricing for some products (Oracle, SAP) can be expensive. Note: While some RDBMS systems can now handle JSON, they are not purpose built to do so. |
ACID compliance, Datawarehouse, OLAP, OLTP, structured data analysis. |
Key-Value Store |
MongoDB, Redis, DynamoDB, Cosmos DB |
|
|
Embedded systems, URL shorteners, configuration data, application variables and flags for web applications, state information, and data represented by a dictionary or hash. |
Document Stores |
MongoDB, DynamoDB, Couchbase, and Firebase are similar to key-value stores, but the value is a document. |
|
Not ACID compliant (DynamoDB IS ACID compliant but this is an exception), limited to querying within a document, relationships/cross references are not enforced, slow searching, cannot join documents/collections in a single query, lack of database enforcement requires developer discipline and vigilance for application-level enforcement, and they typically result in data duplication. |
Unstructured or semi-structured data, content management, rapid prototyping, and collecting of high traffic data. |
Graph Database |
Neo4j, OrientDB, and TitanDB, are ideal for when relationships or connections are top priority. |
|
Difficult to understand and use, high overhead for simple use cases, lack of standardization, poor performance of aggregate queries, and devs typically need to learn a custom query language. |
Great for analysis of heterogeneous data points, fraud prevention, advanced enterprise operations, social networking, payment systems, and GeoSpatial routing/visualization. |
Time Series Database |
InfluxDB, Kdb+, and Prometheus |
|
Time series databases only deal with time-series data, do not support full SQL, their read speed suffers compared to writes, they have no transaction capability and are append-only (not optimized for updates). |
Managing infrastructure, IoT sensor collection, and log monitoring and alerting. |
Search Engines |
Elasticsearch, Splunk and Apache Solr |
|
They are expensive, have low durability and poor security, have no transaction support, are not efficient for writing and retrieving data outside of searching, and are difficult to manage. |
Search engines are great when search results are top priority, logging, product catalogues, and blogs |