If you've used any kind of computer, chances are you've already had some experience with a database. Simply put, databases are used to store and manage information. Databases are probably one of the most common uses of computers, and are available on just about every type of computer.
You probably deal with many different databases everyday without realizing it. Anytime you lookup a phone number in directory, do a transaction at the bank, pay for something with a credit card, or purchase something on the Web, you're using a database.
Databases are not specific to computers. Examples of non-computerised databases abound: phone book, dictionaries, almanacs, etc. (although in actuality these are examples of printed reports generated from databases). One classic database example is the Rolodex card file found on many desktops. It is used to store contact information for people and businesses you deal with on a regular basis. One popular feature of the Rolodex is the ability to separate your contacts alphabetically. One problem with this solution is that once you've decided to organise your Rolodex by, for example, Last Name, it's very difficult to find someone by Company Name, or First Name, or any other piece of information contained on a business card.
Electronic databases were designed to overcome this problem, and to take advantage of the enormous power available in modern computers. Computers are designed to process information using a variety of tools, or applications. Each application is designed to solve a particular task; word-processing, number crunching (spreadsheet), e-mail, and web surfing. In addition to these common tasks, computers are most often used for storing and manipulating data, the task of a database. Some databases have specialised interfaces for specific tasks, such as Accounting, CRM (Customer Resource Management), Inventory Control, Order Entry, etc. It's safe to say that just about every business has at least one use for a database application.
While a database is simply the structured collection of data (usually handled by a database engine), applications that utilise information contained in databases are typically created with a database development environment. These development tools are unlike traditional programming environments in that they provide tools to create applications that allow users to manage data easily, without having to deal with the low-level details normally associated with traditional programming (such as memory management, etc.) Instead, database development environments typically have tools for creating forms using a form editor, some kind of scripting environment or specialised high-level language for controlling the interface and access to the database engine, and other high-level tools specifically designed for manipulating information.
While most large databases (ORACLE, Sybase, etc) are only database engines, they are commonly accessed from a separate "client" application via a special database access language. Integrated database development environments usually contain their own (often proprietary) database engine, making the creation of self-contained applications much easier. However, if a database application requires access to an external database engine using a database access language (such as SQL or ODBC), then this is also possible.
When talking about databases, the term "relational" is often heard. This is used to describe database engines that are able to work with more than group (or table) of information at the same time. This allows for much efficiency when dealing with most types of data. For example, in the above Rolodex example, say that more than one person worked at the same Company. If the company address changed, each card (or record) in the People file (table) would have to be changed. With a relational database, a second table which contained just Company information (one company per record) would be created, and each person would link (or relate to) a single company. When a field in the Company record changes, the new data is immediately available to any related Contact records.
Examples of such database development environments are FileMaker, Microsoft Access, and 4th Dimension. All of these tools allow the creation of sophisticated commercial level applications with custom interfaces, and complex reports; the main difference is the ease in which solutions can be created, and scaled as your needs grow.
The next section introduces 4th Dimension and describes the 4D Product Family.