What is a Database?
- A DB (database) is an organized information repository or data store that can be easily accessed, managed, and updated. A DB is accessed via a DBMS (DB Management System). The DB and DBMS make up the back end. The backend is itself sometimes called the database or database system.
- A programmer uses DB API (Application Programming Interface) code to get data from the DBMS. DB API is used in the code that makes up an application or program. The application with its DB API code make up the front end.
- The front end accesses the back end (the DB and the DBMS). The front end is all that clients see, use, and really care about. As far as the user is concerned, the front end is seamless with the back end. The front end is used by a real-world user to accomplish some real-world process (EG: A business process), a game, a not-for-profit service, or an ad. Here are different front ends:
- PC-based DB programs. That is the front end and back end are very tightly integrated. EG: Borland's Paradox, Microsoft's Access, Microsoft's FoxPro, Lotus' Approach, and Ashton Tate's dBASE.
- End-user DB access tools. These make reports and such. EG: Trinzic's Forest & Trees, Crystal Services' Crystal Reports Professional, Centura's Quest, etc.
- Proprietary DB access programs. These are custom programs to access databases. Written in C, C++, VisualBasic, Java, PowerBuilder, etc.
- Web applications. A client uses a browser to access a mix of of client-side and server-side scripting, and possibly even installed components. See my section on Webs.
Here is an analogous setup prior to computers:
- The system of files in drawers is equivalent to a database.
- The files were manipulated by an organized individual, a "File Manager", who knew where everything was and assured the correctness of the files. That File Manager is equivalent to a DBMS.
- The files produced by the DBMS were used by users who ran the processes. (There was no DB API or application.)
In most cases, the DB backend (DB and DBMS), DB APIs, and front end may have multiple components. EG: IBM mainframes might have a combination of the following:
- DBMS of DB2
- IMS (Information Management System)
- CICS (Customer Information Control System)
- An application written in COBOL (Common Business Oriented Language) or C.
- A dummy terminal with access to the above.