A database is a repository of information that is shared between programs and systems. The database provides a mechanism for updating and viewing the data stored within it and also provides the capability of restricting access to some of the information stored to specific applications or programs.
The concept of having a database is to store each piece of information only once together with its relationships to other pieces of information and to control the access to the information.
The most primitive form of database is the flat file. All information in such a database is stored in records with identical layouts. To store other information requires the use of multiple databases and any relationships between the databases needs to be maintained manually.
A Hierarchical database can store multiple record types. One type of record is known as the root record type and every entry in the database has one of these. Other record types are optionally attached to a single root (indicating a relationship with that root record) or to a single record which itself is attached to a root record (either directly or via further records in a chain). If several different types of root record are required then multiple databases need to be built but in many cases logical databases that cross several physical databases can also be defined to help maintain relationships within the database.
A Network database contains many different record types and links between them to indicate relationships. Unlike hierarchical databases, a network database can have several different record types that act as the starting point for accessing the data contained within the database.
A Relational database is very similar to a network database in the data that is stored and the links between them. The difference is that instead of directly following the data links to search for the required information, you instead pass a request to an optimizer or database engine which itself works out the best way to obtain the information requested rather than your program having to directly follow all of the links. Most PC databases are of this type. Relational databases also mostly use a common language for the database accesses called 'Structured Query Language' (abbreviated to SQL and pronounced sequel).
A recent database type is the object oriented database. Databases of this type are still relatively rare. They have the capability of directly supporting persistent objects used within programs that use an object oriented structure.
A database is not a stand alone product. There is very little that you can do with a database by itself. If you are a programmer then you can code database accesses within your program to sore and retrieve the required data. These accesses will only perform the precise functions that are coded.
To make databases more flexible and user friendly, most databases also come with some sort of scripting language processor that allows you to build ad hoc queries and process them against the database. If a suitable scripting language is provided then you may find a database package to be useful even without having programs that directly access and process the data in your database.
This article written by Stephen Chapman, Felgall Pty Ltd.