Sometimes you need to accept the devil that you know.
A relational database is a persistent storage mechanism that enables you to both store data and optionally implement functionality. The goal of this chapter is to provide an overview of relational database (RDB) technology and to explore the issues applicable to its use in modern organizations. RDBs are used to store the information required by applications built using procedural technologies such as COBOL or FORTRAN, object technologies such as Java and C#, and component-based technologies such as Visual Basic. Because RDBs are the dominant persistent storage technology, it is critical that all software professionals understand at least the basics of RDBs, the challenges surrounding the technology, and when it is appropriate to use RDBs.
In this chapter, I discuss the following topics:
Relational database technology
Simple features of relational databases
Advanced features of relational databases
Coupling: your greatest enemy
Additional challenges of relational databases
Encapsulation: your greatest ally
Beyond relational databases: you actually have a choice
Let's begin with an overview of some common terminology. Relational databases store data in tables. Tables are organized into columns, and each column stores one type of data (integer, real number, character strings, date, and so on). The data for a single "instance" of a table is stored as a ...