A "database" is software used to input, organize, manipulate, retrieve and analyze information. It also refers to the data -- and its structure -- stored by such software (sometimes called the "back-end"). Sometimes you need a piece of software (called a "front-end") to input, view, and report the information in the database. The type of database package you choose depends on the type of business you run, how many people need to access your data, and what your data is used for.
Some basic packages include the front-end and back-end capabilities of a database rolled into one package. These include packages like Microsoft Windows Cardfile. These small and inexpensive programs (some are free) are great for the single user or small business with simple data requirements like customer lists or inventory. Where all the data is in a single file, it is called a "flat file" database. These packages often include templates for simple input forms, searches, and reports.
The next level of database is the relational database. Relational databases allow for more efficient storage of data by "pointing" data in different databases to each other, instead of duplicating information. An invoice database might point to a customer database and an inventory database to avoid having to store basic (and repetitive) customer and product data with each invoice. A relational database helps redundant storage of information and makes it easier to define and perform searches.
When working with large volumes of data, a relational database is a must for speed and data integrity. Imagine in the invoicing and customer database discussed above if a client moved and only the customer database was changed...you might not be able to find old invoices for that particular client any more. Also, when creating new invoices, users don't have to re-enter the customer information: just the customer number.
Of course, relational databases come with a price: professional help is needed, and it takes more time for planning and programming (particularly for designing the most efficient storage of data, called "normalization"). Programs such as Microsoft Access and Claris FileMaker Pro are great mid-level database packages, and include a programmable front-end and report generators that most experienced users can work with.
Client/Server Relational Databases
The "elite" of databases today are client/server relational databases. The client/server architecture allows for multiple people on different computers to access the same data at the same time. The data resides on the "server", and the users access the data on other machines called "clients".
The sheer complexity of these systems demands professional and experienced development engineers to create a totally client-custom solution. Leading vendors like Progress, Oracle, and Microsoft SQL Server provide software to manage data in such complex environments. Some of these packages require customized front-end applications so users can enter or view the data itself. Front-end software can be created using tools like Borland's Delphi, Microsoft Visual Basic, and C++.
Of course, the new generation of databases will have varying degrees of web-enabling, allowing the database to be updated or queried using HTML web forms, and have information displayed as standard HTML web pages. Look forward to dramatic changes in database functionality in the coming year(s)