DATABASE SYSTEMS

In the early days of personal computing, databases only lived on giant mainframes run by people in white lab coats. Database software was very expensive and the programming language libraries available did not provide much capability for dealing with database type operations. Furthermore, each database vendor had a proprietary language.

A lot has changed since then. Now there are free open-source database packages with capabilities rivaling the most expensive systems, and many Web sites use databases extensively. There has also been a great improvement in standardization of the way users interact with databases.

Designers of modern programming languages have not tried to incorporate database functionality directly into the language. Instead, database programs have remained separate and the emphasis has been on creating standardized ways of communication. This makes sense because the requirements for a database are quite different from the requirements of a user application. Database programs have to stay running all the time, store huge amounts of data, and respond to multiple queries.

Modern relational database systems organize data into what are called tables . Think of a table as a ledger or as a spreadsheet: You have rows and columns, and each column stores a particular type of information. To insert information into a database table, you can't just pick one cell where one row and one column meet and then write in the value. To make an entry, you must complete the entire row, providing data for each column.

Relational Databases

Relational databases are special because information from one table can be used to look up information from another table. For example, imagine that you're employed by the company who has the database tables described previously, and they want you to send flyers announcing their new products to anyone they know who hasn't received mail from them in the last two weeks. You can look up the names of people who've last received flyers more than two weeks ago from one table, and find the addresses for those people out of the address table. It's even possible to set up the system so that you need an entry in the address table for a person before you can create an entry for them in the flyer mailing table. By doing this, you don't have to worry about missing someone's address.