Datasheet
14
Part I: Basic Concepts
application is dependent on the specific physical implementation of the
database. If you add a new attribute to the database, you must change your
application to accommodate the change, whether or not the application
uses the new attribute. An unmodified application will expect the data to
be arranged according to the old layout, so it will produce garbage when it
writes data into the file that now contains the new attribute.
Relational databases offer structural flexibility; applications written for
those databases are easier to maintain than similar applications written for
hierarchical or network databases. That same structural flexibility enables
you to retrieve combinations of data that you may not have anticipated
needing at the time of the database’s design.
Components of a relational database
Relational databases gain their flexibility because their data resides in tables
that are largely independent of each other. You can add, delete, or change
data in a table without affecting the data in the other tables, provided that
the affected table is not a parent of any of the other tables. (Parent-child
table relationships are explained in Chapter 5, and no, they don’t involve
discussing allowances over dinner.) In this section, I show what these tables
consist of and how they relate to the other parts of a relational database.
Dealing with your relations
At holiday time, many of my relatives come to my house and sit down at my
table. Databases have relations, too, but each of their relations has its own
table. A relational database is made up of one or more relations.
A relation is a two-dimensional array of rows and columns, containing single-
valued entries and no duplicate rows. Each cell in the array can have only one
value, and no two rows may be identical. If that’s a little hard to picture, here’s
an example that will put you in the right ballpark. . . .
Most people are familiar with two-dimensional arrays of rows and columns,
in the form of electronic spreadsheets such as Microsoft Excel. A major-
league baseball player’s offensive statistics, as listed on the back of baseball
card, are an example of such an array. On the baseball card are columns for