People keep asking me questions about NoSQL. The buzzword "NoSQL" isn’t new. However, I found it still confusing, especially for developers mostly focusing on enterprise and business applications. For the last decade, database technology went from single decision to much higher level of diversity. Back in 1990s, the decision of PDM/PLM developers was more or less like following – "If something looks like document, use Excel and Office. Otherwise, use RDBMS". Not anymore. My quick summary of NoSQL was here – What PLM vendors need to know about NoSQL databases. You can go more deep in my presentation – PLM and Data Management in 21st century. If you feel more "geeky", and considering maybe summer development projects, I can recommend you the following book – 7 Database in 7 weeks.
John De Goes blog post The Rise (and Fall?) of NoSQL made me think how to explain the need of NoSQL for PLM implementers, architects and developers. In a nutshell, here is the way I’d explain that – NoSQL databases allow you to save variety of specific data in a much simple way, compared to SQL structured information. So, use right tool for the right job – key/value; document; graph, etc.
So, NoSQL is accelerating development of cloud and mobile apps. It became much faster since some specific NoSQL databases tuned for particular type of non-structured data:
With NoSQL: (1) Developers can stuff any kind of data into their database, not just flat, uniform, tabular data. When building apps, most developers actually use objects, which have nesting and allow non-uniform structure, and which can be stored natively in NoSQL databases. NoSQL databases fit the data model that developers already use to build applications. (2) Developers don’t have to spend months building a rigid data model that has to be carefully thought through, revised at massive cost, and deployed and maintained by a separate database team within ops.
However, everything comes with price. The important insight of the article is to point on how data can be reused for reporting and other purposes. The following passage summarizes the most visible part of what is missing in NoSQL:
It’s quite simple: analytics tooling for NoSQL databases is almost non-existent. Apps stuff a lot of data into these databases, but legacy analytics tooling based on relational technology can’t make any sense of it (because it’s not uniform, tabular data). So what usually happens is that companies extract, transform, normalize, and flatten their NoSQL data into an RDBMS, where they can slice and dice data and build reports.
PDM and PLM products are evolving these days from early stage of handling "records of metadata" about files towards something much more complicated – large amount of data, unstructured information, video, media, processes, mobile platforms, analytics. CAD/PLM vendors are pushing towards even more complicated cloud deployment. The last one is even more interesting. The need to rely on customer RDBMS and IT alignment is getting lest restrictive. So, the opportunity to choose right database technology (aka the right tool for a job) is getting more interesting.
What is my conclusion? Database technologies universe is much more complicated compared to what we had 10-15 years ago. You need to dig inside into data management needs, choose right technology or tool to be efficient. One size doesn’t fit all. If you want to develop an efficient application, you will find yourself using multiple data management technologies to handle data efficiently. Just my thoughts…