Relational database management systems (RDBMSs) are incredibly versatile. It’s one of the reasons they became the default for mainstream database requirements back in the early 1990s, and remain dominant now. Since they first emerged onto the scene, however, the application landscape has changed dramatically. In today’s highly connected digital environment, data is often diverse, unstructured, widely-distributed, high volume and/or fast moving. In many cases, we are also dealing with web-scale applications and services that dictate a level of performance and scalability that most would have thought inconceivable 30 years ago.
Against this background, while talented database designers and SQL programmers can make RDBMSs do pretty much anything - including things they were never designed to do - the old saying “just because you can, doesn’t mean you should” is very pertinent. Given the ‘Jack of all trades’ nature of RDBMSs, alternative technologies have emerged to address specific types of need in a more targeted and optimal manner.