We’ve covered several topics around what created the conditions for Software as a Service (SaaS), and wanted to tackle perhaps the last major technology component – the Relational Database (RDBMS) –thanks to Wikipedia for a refresher. It would be interesting to know if the initial developers considered the potential impact the technology would have in the marketplace, let alone the whole new industry segment it would help create. First, here’s a little background. In our next post we’ll talk about how the RDBMS supported SaaS.
In the early 1970s, researchers began working on the concepts that we today consider the RDBMS – the tables of rows and columns and Structured Query Language (SQL). The database architecture prior to the RDBMS was called hierarchical, and was optimized to handle transactions. We have to remember that computers back then were relatively slow and very expensive. Technologies like databases were optimized to minimize the amount of processing power needed to input or retrieve information. Computers were primarily used to support transactions.
The data paths in hierarchical databases were “hard-wired” to be efficient. Picture a tree trunk and its root system. To update or retrieve information from any location, one merely follows the path.
While this approach optimized use of the processor by minimizing steps, being able to retrieve information for reporting or trend analysis was extremely difficult and expensive. To get information from multiple places, one had to follow multiple roots. Another problem is that to change the way data was structured, one now had to also change the root structure. Businesses change, and changing the data structure was an impediment to change. The biggest priority was the ability to analyze information. To do this, a new data storage and retrieval approach was needed – the relational database.
Instead of pre-defining how data would be accessed, the RDBMS is optimized for data retrieval. For simplification, tables were structured to allow related data elements to be stored “near” each other. Columns within tables defined data types and the rows then stored all the data associated with each data type. SQL provided syntax to create queries to retrieve and manipulate data into formats for reporting.
The first RDBMS were extremely computationally inefficient. Over time, developers improved information update and query efficiency, and Moore’s Law provided ongoing and predictable reductions in cost and improved performance. While transactional speed of the RDBMS couldn’t match that of hierarchical databases, their flexibility proved the more important attribute over time. Gradually, corporations started building transactional systems on top of RDBMS instead of hierarchical data stores. The only major hierarchical applications remaining in use today are airline reservation systems.
In part II of this post, we’ll discuss how a key insight - taking one RDBMS schema and securely partitioning it so each user had their own “copy” - was instrumental to SaaS.