Any applications performance largely depends on the database. Earlier there is nothing like choosing the database as mostly available option is relational database and you have to implement your requirements with the available option of RDBMS which leads to unexpected issues as you try to use RDBMS for a different type of data requirement.
Now we have several databases options available which are build to serve the specific purpose/requirement and they are often called purpose build databases. Choosing the right database for you application is extremely critical for the success of your application. In this post I will try to throw some light on the different purpose built databases along with their use cases and offerings from different vendors. So lets get started,
Relational Model (RDBMS):
Traditional relational database systems which has the characteristics like,
Now we have several databases options available which are build to serve the specific purpose/requirement and they are often called purpose build databases. Choosing the right database for you application is extremely critical for the success of your application. In this post I will try to throw some light on the different purpose built databases along with their use cases and offerings from different vendors. So lets get started,
Relational Model (RDBMS):
Traditional relational database systems which has the characteristics like,
- Data is stored in tables and rows and is normalised.
- Strict Schema and relationships via keys.
- Data accuracy, consistency and integrity.
- supports complex queries.
Examples : Oracle , mysql, Amazon aurora (cloud native)
Key value data stores:
Data will be stored as simple key value pairs and portioned by keys. Resilient to failure with high throughput and low latency reads and rights. Also offers consistent performance at scale.
Examples: Oracle NoSQL database, Amazon dynamoDB
Document Databases:
Data is stored in json like documents. Documents map naturally to how humans model data with flexible schema and indexing. Evolution of document databases,
- JSON became the de facto standard for data interchange.
- Initially json is being converted to RDBMS format and stored.
- There is a friction during this conversion.
- Object relational mappings (ORM's) were created to help with this friction.
- And then document databases solved the problem.
Examples: mongodb, couchdb, amazon documentdb.
In Memory data stores:
Data will be stored in memory, it will not be persisted. Provides micros second performance. Provides simple commands to manipulate in memory data structures.
Examples: Redis, memcached, Amazon elastic cache
Search Databases:
Provides full text search engine functionality. Typical use cases are log analytics, full text search engine and stream analytics.
Examples: Aurweb, Amazon elastic search engine
Graph Databases:
Graph databases portray the data as it is viewed conceptually. This is accomplished by transferring the data into nodes and its relationships into edges. Typically built and used for in depth relationships in the data. Relationships are first class objects. Recommendations in eCommerce sites use graph technology in the back end (customers who purchased this product also purchased these etc).
Examples: AllegroGraph, ArrangoDB, Amazon Neptune.
Time Series Database:
Optimised for handling time series data. A sequence of data points recorded over time. Time is the single primary axis of the data model.
Examples: Cube, InfluxDB, TimescaleDB, Amazon TimeSeries
Modern application might need to use more than one database. If you take any typical retail (ecommerce) application, it will definitely use more than one database for different purposes as described below,
- RDBMS for the actual transaction data.
- Key value DB for product catalogue, shopping cart.
- Search database for product search.
- Cache database for leader boards, top rated products etc.
- Graph database for recommendations.
I hope this post provided the high level view of different types of databases available and the purpose behind the each option.
No comments:
Post a Comment