Nobody's perfect, and a normalized database is no exception. While the 3NF has weaknesses,
very few people have ever switched from a relational database model because the payoffs vastly
outweigh these inconveniences. But, in fairness, here are the major weak points of a normalized
relational database:
I/O Overhead
The input/output load can be greater for a normalized database than certain non-relational
counterparts. Since normalization is primarily a divide-and-conquer strategy, the 3NF means
more tables. Think of it as having to assemble your car every time you had to go to the
grocery store. The cost for enormous query flexibility is that we must query more tables
when assembling data. Normally the performance impact is offset by this power and
flexibility. But, in a poorly designed implementation, there can be degradation. Sometimes
a database designer will purposely leave certain tables unnormalized for efficiency of
processing. This is especially true when the other table will have very few fields (some
as few as only one!).
30 Years Old
Since 1969, newer and more complex data models have evolved.
Object Orientated Databases (OOD) and programming (OOP) have introduced the concepts
of objects, abstraction, and inheritance. Also the two-dimensional tables of the
relational database aren't as well suited to handle multi-dimensional data or
hierarchical data structures.
Structured
The two-dimensional structure of a relational database table is both
a benefit and a liability. For organized and structured data it's a
boon, but for free-form data it's a bane. Other data models can handle
certain data types, such as large volumes of text, more efficiently.
SQL vs. 4GL
Most relational databases use SQL as their native tongue. SQL is a
non-procedural syntax that drives procedural programmers to distraction. It is also
limited in some processing capabilities. Often a vendor provides a procedural tool to
accompany SQL to overcome these shortfalls (e.g., Oracle has PL/SQL [procedural language/SQL]
and PeopleSoft uses SQR [structured query and reporting]). Also, fourth generation
languages (4GL) have tried to make a debut, but a lack of standardization has prevented them
from supplanting 3GL (third generation languages). "Natural Language" is an example of a 4GL,
where a user could type in a question and the computer understands what is being requested.
For example: "List the names of all the dogs who know how to fetch and who are at the
Ruff Haus kennel and list them in alphabetical order by last name, then first name."
Obviously, once programmers actually get this to happen, it won't be long before you
can ask a database a question like this verbally. Star Trek here we come!
Top of page
Copyright © 1995 Craig Edward Given