When most people think of databases they think of relational databases because for years relational databases have been the norm. These databases have tables with rows and columns, and will remind people of the structure of Microsoft Excel worksheets. They have been used as the database solution for small businesses to huge multinational corporations. Millions of people have learned one type or another of the Structured Query Language (SQL) that is used to access and retrieve data from relational databases. A popular SQL language is MySQL, but many more exist. Recently, NoSQL databases have been gaining popularity for their ability to scale up easily and preform with a huge number of entries.
Most NoSQL databases are essentially key-value stores. A key-value system stores data by associating that data with a key used to identify it. For example, entering “(1, test)” would associate the key “1” with the value “test”. If you want to access the data for key “1”, you would just enter in “1” as the key to look up and the database would return the value “test”. This system does not use a schema, which is a model for how data will be stored. Since there is no schema, NoSQL databases are often considered to be more flexible than regular SQL databases. In addition, since NoSQL databases use a key-value system to store data, they are much better at storing unstructured and semi-unstructured data. As the web rapidly expands, new types and formats of data are quickly being created and NoSQL databases are better suited than traditional relational databases to handle them.
NoSQL databases are very good at horizontal scaling. Horizontal scaling refers to adding more computers to a certain layer of the software stack. Before NoSQL databases, horizontal scaling at the database level was a pain since more database servers meant it was more difficult to coordinate them. Since NoSQL databases are non-relational and use key-values, it is much easier to horizontally scale out by adding more database servers and the notion that they will be run concurrently on multiple machines is built-in to their structures.
Most NoSQL databases are open-source. Apache, the open-source software foundation famous for their instrumental free products like the Apache Webserver and their own type of software license, hosts NoSQL databases like HBase and Cassandra. CouchBase is another popular open-source NoSQL database option. Amazon offers DynamoDB, which is a NoSQL database that is part of their Amazon Web Services platform where you pay only for the amount of resources you need. However, DynamoDB is not open-source and costs money to use. Oracle, the company famous for their database solutions, even has their own NoSQL database. Due to the recent explosion in the number of NoSQL databases and the wide range of different task each one is ideally suited for, many people in the NoSQL community now prefer to say that NoSQL stands for “Not Only SQL” to imply that the databases may resemble traditional databases in certain ways and that languages similar to SQL may be used to access data.
What is a NoSQL database?
Comments
No comments yet. Sign in to add the first!