The number one performance consideration for a database is design. A bad
relational database design can lead to inefficiencies so great that no amount of soft-
ware tuning or extra hardware can correct it. Bad designs can lead to deadlocking,
exponential relational calculations, or simply table scans of millions of rows.
Proper design is such a great concern that we'll talk more about it in section 1.3.
Software tuning is the second-most important performance consideration for
large databases. Tuning a relational database management system requires a per-
son educated and experienced in the particular RDBMS software being used.
Although some characteristics of RDBMS software are transferable across different
products, generally each product has intricacies and sneaky differences that
require a specialist for that particular software. Performance tuning can yield
some great benefits. Proper tuning of a database index alone can cause a complex
query to execute in seconds instead of minutes. There are a lot of parts to an
RDBMS , such as caches, file managers, various index algorithms, and even operat-
ing system considerations. The same RDBMS software will behave differently if the
operating system changes, and therefore must be tuned differently. Needless to
say, a lot of effort is involved with tuning database software. Exactly how we do that
is beyond the scope of this topic, but it is important to know that this is one of the
most important factors for improving database performance. Work with your DBA !
Large relational database systems are usually very demanding on computer
hardware. For this reason, it is not uncommon that the most powerful servers in a
company are the database servers. In many companies the database is the center
of their universe, so it makes sense that big investments are made in hardware for
databases. Fast disk arrays, I/O controllers, hardware caches, and network inter-
faces are all critical to the performance of large database management systems.
Given that, you should avoid using hardware as an excuse for bad database design
or as a replacement for RDBMS tuning. Hardware should not be used to solve per-
formance problems—it should be used to meet performance requirements. Fur-
ther discussion of hardware is also beyond the scope of this topic, but it is
important to consider it when you're working with a large database system. Again,
work with your DBA !
Relational database systems also provide the benefit of added security. Much of
the data that we work with in everyday business is confidential. In recent years, pri-
vacy has become more of a concern, as has security in general. For this reason,
even something as simple as a person's full name can be considered confidential
because it is potentially “uniquely identifiable information.” Other information—