Technical Definition – NoSQL is an umbrella term for data store technologies that don’t follow the traditional tabular, relational models popularized by relational database management systems.
Layman’s Definition – A database meant to store and search through an enormous amount of records, files, or documents.
How we use it – Traditional Relational Databases certainly have their place in app development. They’ve been around for quite a while, have mature communities and tooling, and, for all intents and purposes, can often handle most of what you’d throw at them. However, they’re not always the obvious choice. In fact, for some use cases, they actually contribute to a bad, or wasteful, design. As the saying goes, you should prefer to choose the right tool for the right job. Fortunately, there have been quite a few updates in the data store space, and we now have more options than ever. Perhaps you need to analyze large data sets in a read-only capacity, have a living data schema that changes often, or need to store heavily relational data. In these cases, an RDBMS would actually be an impediment to your design, and you’d find a better solution in either a Document or Graph Database. Document Databases are great choices for low-cost, read only data stores, or situations where the end schema is unknown. Graph Databases are a much more performing solution if you find yourself with data that’s extremely interconnected, as relationships are first class citizens, and not just inferred data. That means we can avoid the overhead we would see in the necessary, join-heavy queries of an RDBMS. At alligatortek, we’ve found use for NoSQL technology in the architecture design for various clients, most recently while building a solution for an IOT device manufacturer(LINK TO CASE STUDY). This client needed a way to aggregate and store streams of IOT device data. We designed a solution that relies on a Document Database for quick retrieval of aggregated data that’s stored with varied schemas.