A database that maintains a set of separate, related files (tables), but combines data elements from the files for queries and reports when required. The concept was developed in 1970 by Edgar Codd, whose objective was to accommodate a user's ad hoc request for selected data. Most every business database management system (DBMS), including Oracle, DB2, SQL Server, MySQL, etc., is a relational DBMS (RDBMS) (see DBMS).|
Hierarchical, Network and Object Databases
In non-relational "hierarchical" and "network" databases, records in one file contain embedded pointers to the locations of records in another, such as customers to orders and vendors to purchases. These are fixed links set up ahead of time to speed up daily processing. Another type of non-relational database is the "object database," which stores data consistent with their object model (see object database).
Comparing and Joining
Routine queries to a relational database often require data from more than one file. For example, to obtain the names of customers who purchased a particular product, data must be extracted from both the customer and order files. A relational DBMS has the flexibility to "join" two or more files by comparing key fields such as account number and name and generating a new file from the records that meet the matching criteria (see join).
Indexes Are Used
In practice, a pure relational query can be very slow. In order to speed up the process, indexes are built and maintained on the key fields used for matching. Sometimes, indexes are created "on the fly" when the data are requested.
Relational Terms Common Terms
Table or Relation File
Row or Tuple Record
Attribute or Field Field