NoSQL stands for Not only SQL and refers to databases that go beyond SQL (Structured Query Language) relational structures. Structure refers to a logical tabular form or schema that stores information in a so-called strict schema. It is necessary for information seekers to formulate an exact search query. To unstructured databases belong above all the full texts, which exhibit a contentwise structure however a free schema. The full texts cannot be displayed as an ER model (Entity Relationship Model) as is the case with SQL databases.
Advantages of NoSQL databases
The main advantage of NoSQL databases is that they are suitable for those who do not know exactly what they are looking for. Despite their own unsuspectingly imprecise query formulation, they expect search results that contain hits relevant to them. This is impossible with relational database model like SQL.
At the technical level of data storage and processing, NoSQL databases are horizontally scalable. This means that any nodes can be added to a database and at the same time a good performance for high incontinent data load can be ensured. Without a fixed schema, data replication is much easier and uncomplicated. On the other hand, they are well suited for a large amount of data such as big data. NoSQL software is mostly open source and therefore freely available.
Types of NoSQL database
The way in which NoSQL databases are stored plays an important role in differentiating between them. Depending on the desired storage type, new application areas and software will be considered. These are:
- Document oriented
Texts of any length are stored unstructured in a document instead of in a database. Database management systems such as Apache CouchDB, MongoDB or Lotus Notes are a few well-known examples of this.
- Key Value oriented
Here, keys are used that come from any digits. This type of database can be stored in two ways, in-memory or on-disk. In-memory implementations are cache storage systems. An example is memocached. The on-disk version is suitable for large amounts of data implemented by Google BigTable and Amazon SimpleDB. There is also a mixture of both solutions implemented by Redis and used by GitHub.
- Column oriented
Column-oriented databases store data in columns, unlike row-oriented databases. Thus the data of the same category are listed in a column one below the other. One advantage of this is that only the required data can be output in the columns and no incoherent data that is not required. A well-known example of this is the Cassandra database, which is mainly used by Twitter and Facebook.
- Graph oriented
Complex relationships can be represented using the graph database. The graph database consists of nodes and connections that link the individual nodes together. Social networks can be expressed very well with it. Examples are databases like FlockDB, AllegroGraph and Neo4j.
There are many advantages to using NoSQL databases. They contain not only SQL databases, but also free schema databases. There are different database models depending on the type of storage. In addition, different storage models also simplify data processing.