Of course in the 80's the "Relational
Database Model" became the rage. The Relational Model developed
out of the work done by Dr. E. F. Codd at IBM in the late
1960s who was looking for ways to solve the problems with
the existing models.
Because he was a mathematician, he naturally built
the model on mathematical concepts which he expounded in the
famous work called "A Relational Model of Data for Large Shared
At the core of the relational model is the
concept of a table (also called a relation) in which all data
is stored. Each table is made up of records (horizontal rows
also known as tuples) and fields (vertical columns also known
It is important to note that how or
where the tables of data are stored makes no difference.
Each table can be identified by a unique name and that
name can be used by the database to find the table
behind the scenes. As a user, all you need to know is the
table name in order to use it. You do not need to worry
about the complexities of how the data is stored on
the hard drive.
This is quite a bit different from the
network models in which the user
had to have an understanding of how the data was structured within the
database in order to retrieve, insert, update, or
delete records from the database.
So how do you find data in a relational
database if there is no map (like a hierarchy defined by
pointers) to follow?
Well, in the relational model, operations
that manipulate data do so on the basis of the data values
themselves. Thus, if you wish to retrieve a row from a table
for example, you do so by comparing the value stored within a
particular column for that row to some search criteria.
For example, you might say (not getting into
syntax yet) "Give me all the rows from the 'STUDENTS' table which
have 'Selena' in the 'FIRST_NAME' column."
The database might return a list which looks
essentially like this:
You could then use the data from a retrieved row
to query another table. For example, you might say "Okay, I want to
know what grade 'Selena Sol' received in 'Underwater Basket Weaving 101'.
So I will now use the 'Student ID' number from my previous query as the
keyword in my next query. I want the row in the 'Underwater Basket
Weaving Course' table where student ID equals 'SID-001'.
This data access methodology makes
the relational model a lot different from and better than the
earlier database models because it is a much simpler model to
understand. This is probably the main reason for the popularity
of relational database systems today.
Another benefit of the relational system is
that it provides extremely useful tools for database administration.
Essentially, tables can not only store actual data
but they can also be used as the means for generating meta-data
(data about the table and field names which form the database
structure, access rights to the database, integrity and data
validation rules etc).
Thus everything within the relational model can be
stored in tables. This means that many relational systems can use
operations recursively in order to provide information about the
database. In other words, a user can query information concerning table names,
access rights, or some data and the results of these queries would then
be presented to the user in the form of a table.
This makes database administration as easy as usage!
As we said before, most databases that
you will come across these days will be relational databases.
However, there are many types of relational databases and not
all of them will be useful for web applications.
In particular, it will be the client/server
databases rather than the stand-alone packages that you will use
for the web.
A client/server database works like this:
A database server is left running 24 hours a day, and 7 days
a week. Thus, the server can handle database requests
at any hour. Database requests come in from "clients" who
access the database through its command line interface or by connecting
to a database socket. Requests are handled as they come in and
multiple requests can be handled at one time.
For web applications which must be available
for world wide time zone usage, it is essential to build upon a
client/server database which can run all the time.
For the most part, these are the only types
of databases that Internet Service Providers will even provide.
However if you are serving web pages yourself, you should consider
many of the excellent freeware, shareware or commercial products
around. I myself like
for UNIX since I prefer a
UNIX-based web server. However, there are plenty of good
applications for PC and Mac as well.