Relational database


 * This article presents an overview of the topics associated with relational databases. For more detailed presentations on specific topics, follow the Main article  links under each major heading, or refer to the See also  section at the end of the article.

A relational database is a database based on the relational model. Strictly speaking the term refers to a specific collection of data but it is invariably employed together with the software used to manage that collection of data. That software is more correctly called a relational database management system, or RDBMS.

All data which is stored in and retrieved from a relational database is cast in the form of relations. A relation is a set of n-tuples that represents the extension of an n-adic predicate. However, these n-tuples are not the ordered tuples of mathematics; instead, their components, called attribute values, are identified and referenced by names. Queries and integrity constraints are expressed declaratively, without the use of iterative loops or pointers, using operators based on the relational algebra and relation comparisons. The relational algebra is complete with respect to first-order predicate calculus except that certain restrictions are imposed on the use of negation and disjunction to address problems of computability.

Relational algebra
The relational algebra is a set of operations that manipulate relations as they are defined in the relational model and as such describes part of the data manipulation aspect of this data model. Because of their algebraic properties these operations are often used in database query optimization as an intermediate representation of a query to which certain rewrite rules can be applied to obtain a more efficient version of the query.

The exact set of operations may differ per definition and also depends on whether the unlabeled relational model (that uses mathematical relations) or the labeled relational model (that uses the labeled specialization of mathematical relations) is used. We will assume the labeled case here as this is the most common way the relational model is defined. That means that we assume that tuples are partial functions from attribute names to values. The value of the tuple t on the attribute a is denoted in this article as t(a).

Application

 * Database
 * Database table
 * Database tuple
 * Database normalization
 * Dimensional database
 * Flat file database
 * Temporal database

Implementation

 * Relational database management system (RDBMS)
 * Structured Query Language (SQL)

Theory

 * Relation
 * Relation construction
 * Relation composition
 * Relation reduction


 * Cartesian product
 * Projection
 * Relational algebra
 * Relational model

History

 * De Morgan, Augustus (1806–1871)
 * Boole, George (1815–1864)
 * Peirce, Charles Sanders (1839–1914)
 * Codd, Edgar Frank (1923–2003)
 * Ullman, Jeffrey D. (1942– )


 * Date, Christopher J. (nd–nd)
 * Darwen, Hugh (nd-nd)