A relational database is a database based on the relational model developed by E. F. Codd. In such a database the data and relations between them are organized in tables. A table is a collection of records and each record in a table contains the same fields. The type and name of the fields specify the record's format. Certain fields may be designated as keys, which means that searches for specific values of that field will use indexing to speed them up.
Where fields in two different tables take values from the same set, a join operation can be performed to select related records in the two tables by matching values in those fields. Often, but not always, the fields will have the same name in both tables. For example, an "orders" table might contain (customer-ID, product-code) pairs and a "products" table might contain (product-code, price) pairs so to calculate a given customer's bill you would sum the prices of all products ordered by that customer by joining on the product-code fields of the two tables. This can be extended to joining multiple tables on multiple fields. Because these relationships are only specified at retreival time, relational databases are classed as dynamic database management system.
Some commonly used SQL relational databases are the commerical offerings from Oracle Corporation (Oracle DBMS, Oracle Rdb), IBM (DB2, Informix), Microsoft (SQL Server) and Sybase and the free programs MySQL, mSQL, and PostgreSQL (Sybase version 11.0.3 is also available for free for use by non-profit organizations). Microsoft Access is a widely used commercial personal database which can also connect to and display data from SQL servers.
- Database management system (DBMS)