The first paradigm is Key-Value database. Most programming languages support a data structure called dictionary. Dictionaries are used to store a collection of key-value pairs. If you want to keep a similar data structure in a database, key-value database is a good candidate.They are easy to use. Data is stored in memory so they are perfect options for caching and queuing purposes. Both keys and values can be any data type, ranging from simple objects to complex compound ones. They are mainly scalable and partitionable and considered as a member of NoSQL family. Two popular options are Redis and Memcached in this group.They are not the best options to for permanent storage and are basically backed up with a persistent storage.
Docker and cloud versions are also available.
The second paradigm is Wide-column database. In key-value database, we noticed that values can be complex objects, so if we expand the properties of an object into multiple columns, we can understand the idea behind the wide-column paradigm. Each row includes a key and multiple columns, number of columns can be different in each row.
Values are schema free. Because data is stored in columns, queries for a particular value in a column are very fast, as the entire column can be loaded and searched quickly.
They are not the best options to for permanent storage and are basically backed up with a persistent storage.
Docker and cloud versions are also available.
Third paradigm is relational database. A relational database organizes data in predefined relationships where data is stored in one or more tables. Each table consists of rows and columns. Joining tables are defined based on Primary and Foreign keys. Here we have two tables, the top one holds users information and the other one holds programming languages that each of users knows. They are schema based and basically used for disconnected but related data. They are ACID compliant which ensures that a database transaction is completed in a timely manner. They support replication and sharding but generally they are not very good at scaling. They are classified under SQL family. SQL Server, Oracle, MySQL and PostgreSQL are the most famous relational databases and their Docker and cloud versions are also available.
Forth paradigm is document oriented database. In this paradigm we have documents where each document is a container for key-value pairs. They are unstructured and don’t require a schema. A collection can be indexed and can be organized into a logical hierarchy, allowing us to model and retrieve relational data to a pretty significant degree. Data is stored in either JSON text format or BSON binary format.
The fifth paradigm is Graph database. In a relation database we have tables and relationships. What if we treat the relationship itself as data? This is the main idea behind graph databases. Basically, there are some nodes and multiple edges or relationships between them. As you may notice it’s very easy to define many to many relationships. The most common use case of graph database can be seen in social media platforms and recommendation systems. We can query data with statements that are much more human readable by using languages like Apache Gremlin. We can also expect much better performance in large datasets.
Popular options in this space include Neo4J and Dgraph. Docker and cloud versions are also available.
No. 7Multi Model databases. If we upload our graph QL schema into fauna, it automatically creates collections where we can store data in an index to query the data behind the scenes, it’s figuring out how to take advantage of multiple database paradigms like a graph, relational and document, and determining how to best use these paradigms based on the graph QL code you provided.
The sixth paradigm is full-text search database. Imagine we want to create a search engine like Google to store huge amount of data. In this scenario we need a full-text engine which analyzes all the texts and generates complex indexes of searchable terms behind the scene. When a user searches for a keyword or a phrase, the engine scans the indexes and returns the most relevant results.
They are very similar to document oriented to document oriented databases and support complex text analysis and indexing on the top of that. They are highly scalable and classified under NoSQL family. They are mostly designed based on Apache Lucene project and some of the famous ones are Elastic and Solr. Docker and cloud versions of them are also available.