NoSql Databases
NoSql databases seems to be taking off big time at the mo, so what are they all about and why use them?.
What are NoSql databases?
Traditionally databasses were structured and relational. Tables had defined fields amd data types. Generally tables represented model objects and could link to other objects via shared attributes. NoSql on the other hand stores data in non tabular formats.
Terminology
NoSql databases use collections that represent document stores and are analogous to relational database tables. Records in NoSql are considered documents and can be retrieved via a document key.
Why use NoSql?
Being able to store unstructured data is a very desireable feature for software developers. It enables entire documents to be written to a data store easily and quickly. It also facilitates for changing data or unknown data types of the future i.e. NoSql database scale very well.
Being schemaless, NoSql databases are quicker and easier to design and develop datastores. Changing datastore schemes for relational databases at a later date can be difficult and time consuming whereas a schemaless store does not suffer this drawback.
Challenges
NoSql databases are relatively new [compared to relational] which can attract developers seeking the 'next revolution' but to commercial companies the lack of maturity can be a doubt. How to manage and scale these types of systems may be a challenge for companies as well as the lack of key skilled employees.
Because NoSql datastores are structureless it makes the task of anyalysts very difficult. They may be used to running complex SQL queries based on table column data to slice n' dice the data. Schemaless datastores make this type of task somewhat more tricky and being able to track when the document format changes is also a real headache.
Data Formats
You can chuck data into NoSql databases using XML, JSON and binary format which means entire documents from varying sources can be written to the store.
Examples
- MongoDb
- Redis
- Cassandra
- CouchDb
Conclusion
As ever, horses for courses; choose the right database for the solution you are facing. Yes, NoSql databases offer quick scalable datastore solutions but there are times when having defined structure to you data is important. But if Big Data is where you are heading and you want to scale out rather than scale up, then NoSql datastores are probably the solution you are seeking.