Key Value Databases
All kinds of databases are used in the IT sector. Relational models are especially popular as they make it possible to connect information. There also other types, though, which provide special advantages and so might be a better choice in certain situations: NoSQL databases, document-oriented databases, column-oriented databases or graph databases. There’s also the Key Value Database. Here, a simple principle brings about tremendous performance.
What is a Key Value Store?
Key Value Databases are based on a table with just two columns: In the first is the value, and the other contains a key, a distinct identification mark. A value can take different forms. Very simple values like strings or integers are possible, but complex objects can also come up as values in the database. (The function or the position of the value can also occupy a document, for example, although then we would be talking about a document-based database.) References to files can also be inserted into the database. Tuples—collections of values—are also practicable.
The values in a database don’t have to be uniform. It’s possible to accommodate different objects in the same column. The same applies for the identification marks. In most cases, the key will presumably follow a certain pattern. In principle, though, it isn’t necessary. Strings and integers can also be constructed according to arbitrary criteria here.
Key Value Stores appear as in-memory databases (that is, in the working memory) and as on-disk solutions (that is, in fixed-disk storage).
Advantages and applications of Key Value Databases
The advantages of Key Value Databases are their high performance and flexible scalability, both of which stem from the model’s simple structure. As Key Value Stores don’t require or stipulate any uniform pattern, changes to the database can be made while in operation. It’s possible to introduce a new field while actions are happening in other entries at the same time.
The high speed makes this database model possible through the simple connection of key and value. If you want to retrieve information, you simply access the value directly via its specific key. The data is available directly. At the same time, though, this is a disadvantage of the Key Value Store, as no other access method is available. Relational databases permit complex queries. The content of such databases can be sifted through in various aspects. In contrast, a Key Value Store only allows for access via the key. It’s generally necessary to do without further indices and search possibilities.
The applications of Key Value Stores are based on both their advantages and their restrictions. Key Value Databases are used whenever quick access times are needed for large quantities of data. For this reason, typical applications are shopping carts in online shops, or session data. Here, information is clearly ordered and must be available in the shortest possible time. For large, well-known websites, these databases must constantly create new entries and delete old ones, something that Key Value Databases are perfectly adapted to.
Well-known Key Value Databases
There are now various database management systems (DBMS) that are based on Key Value Databases.
- Amazon DynamoDB: The proprietary DBMS belongs to Amazon Web Services (AWS) and can also be used as a document-oriented database.
- Berkeley DB: This DBMS is developed by Oracle and provides interfaces for the most varied programming languages.
- Redis: The open-source project Redis is one of the most-used DBMS and has already been used by Instagram and GitHub at an early stage.
- Riak: The DBMS Riak is available as an open-source version, as enterprise software, or in the form of cloud storage.
- Voldemort: The distributed DBMS is used and promoted by LinkedIn, among others.