Chapter 2. Relational Data Architecture
Good sense is the most evenly shared thing in the world, for each of
us thinks that he is so well endowed with it that even those who are
the hardest to please in all other respects are not in the habit of
wanting more than they have. It is unlikely that everyone is mistaken
in this. It indicates rather that the capacity to judge correctly and
to distinguish true from false, which is properly what one calls
common sense or reason, is naturally equal in all men, and
consequently the diversity in our opinions does not spring from some
of us being more able to reason than others, but only from our
conducting our thoughts along different lines and not examining the
same things. —René Descartes
Discourse on the Method
Database programming begins with the database. A well-performing,
scalable database application depends heavily on proper database
design. Just about every time I have encountered a problematic
database application, a large part of the problem sat in the
underlying data model. Before you worry too much about writing Java
code, it is important to lay the proper foundation for that Java code
in the database.
Relational data architecture is the
discipline of structuring databases to serve application needs while
remaining scalable to future demands and usage patterns. It is a
complex discipline well beyond the scope of any single chapter. We
will focus instead on the core data architecture needs of Java
applications—from basic data normalization to object-relational
mapping.
Though knowledge of SQL (Structured Query Language) is not a
requirement for this chapter, I use it to illustrate some concepts. I
provide a SQL tutorial in the tutorial section of the book should you
want to dive into SQL now. You will definitely need it as we get
further into database programming.
|