Chapter 3. Foundational data architecture patterns
This chapter covers
- Data architecture patterns
- RDBMSs and the row-store design pattern
- RDBMS implementation features
- Data analysis using online analytical processing
- High-availability, read-mostly systems
- Hash trees in revision control systems and databases
If I have seen further it is by standing on the shoulders of giants.
Isaac Newton
You may be asking yourself, “Why study relational patterns? Isn’t this book about NoSQL?” Remember, NoSQL means “Not only SQL.” Relational databases will continue to be an appropriate solution to many business problems for the foreseeable future. But there are situations where relational databases aren’t the best match for a business problem. This chapter will review how RDBMSs store data (in tabular and row-oriented structures) used by online transactional systems, and the performance challenges this creates in distributed environments.
We’ll begin with a definition of data architecture patterns and look at how the needs of enterprise resource planning (ERP) systems drove RDBMS feature sets. We’ll then look at the most common SQL patterns such as row stores (used in most RDBMSs) and star schemas (used in OLAP, data warehouse, and business intelligence systems). We’ll become familiar with key SQL terms and discuss the main features of directory services, DNS services, and revision control systems.