Relational databases: Organizes data into tables which can be linked—or related based on data common to each. Tables consist of rows and columns that define the schema. Supports ACID (atomicity, consistency, isolation, and durability). This type of database uses SQL (Structured Query Language) to access and write data. Oracle, SQL Server, MySQL and PostGreSQL are examples.
Document databases: Unstructured and schema-less provides a collection and document model. Doesn’t support joins. Writing and updating data is a bit complex. Generally used for content management and more dynamic data sets, etc. DynamoDB, MongoDB are good examples.
Key-Value databases: Data is stored in simple “key-value” format that is optimized for reading and writing that data. The data is fetched by a unique key or a number of unique keys to retrieve the associated value with each key. The values can be simple data types like strings and numbers or complex objects. SET/GET command provides an ability to modify or retrieve data. This data modeling option is very fast but does not provide a query mechanism. Generally, this model is used for caching and super fast access to data. Redis and Memcache are good examples.
Wide column databases: A wide-column database is a NoSQL database that organizes data storage into flexible columns that can be spread across multiple servers or database nodes, using multi-dimensional mapping to reference data by column, row, and timestamp. It is schema-less, scales horizontally, useful for time-series data. Provides a CQL to query for data. Cassandra/Apache HBASE are good examples. More Info
Graph databases: A key concept is the graph (or edge or relationship). The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. Data are represented as nodes and relationships as edges. Neo4J and Amazon Neptune are good examples. Used for knowledge graphs, and joins. https://en.wikipedia.org/wiki/Graph_database#List_of_graph_databases
Search databases: A search-engine database is a type of nonrelational (NoSQL) database that has additional features to support search such as full-text search, complex search expressions, and ranking of search results. Search-engine databases use indexes to categorize the similar characteristics among data and facilitate search capability. Search-engine databases are optimized for dealing with data that may be long, semistructured, or unstructured. Elastic, and Algolia are good examples. Based the Apache Lucene project, work is similar to document-based databases.