No SQL vs SQL? What is better for your application? Part 2
Author: Will Wu
After understanding the basics of relational database, we can now dive into what NoSQL is about and why the trend is moving towards this technology.
The business world is undergoing massive change as industry after industry shifts to the Digital Economy. It’s an economy powered by the Internet and other 21st century technologies – the cloud, mobile, social media, and big data.
At the heart of every Digital Economy business are its web, mobile, and Internet of Things (IoT) applications. They’re the primary way companies interact with customers today, and how companies run more and more of their business.
The experience that companies deliver via apps largely determines how satisfied and how loyal customers will be.
How are the web applications like Team Xpress, Time Xpress, and Schedule Xpress different from enterprise applications like Etime Application? These web/mobile applications share one or more (if not all) of the following characteristics. They need to:
-Support large numbers of concurrent users (tens of thousands, perhaps millions)
-Deliver highly responsive experiences to a globally distributed base of users
-Be always available – no downtime
-Handle semi- and unstructured data
-Rapidly adapt to changing requirements with frequent updates and new features
One may wonder why relational databases fall short of these requirements. Relational databases were born in the era of mainframes and business applications. They were designed to run on a single server, the bigger, the better.
The only way to increase the capacity and demands of these databases was to upgrade the servers (processors, memory, and storage), in another word scaling up. This process can become expensive as the number of users increases and the demands of the application changes.
To be continuously successful, speed and agility in developing software application is critical. The traditional relational database has become somewhat a roadblock due to the fixed data model.
One of the advantages of NoSQL offers is the flexibility for faster development. Often, when a requirement changes, the data model often changes, and to do a data schema change is a time-consuming process and may involve database administrators. This not only slows down development speed, it may also impact other application and services.
By comparison, a NoSQL document database fully supports agile development, because it is schema-less and does not statically define how the data must be modeled. Instead, it defers to the applications and services, and thus to the developers as to how data should be modeled. With NoSQL, the data model is defined by the application model.