Relational database

One well-known definition of what constitutes a relational database system is composed of Codd's 12 rules.

However, no commercial implementations of the relational model conform to all of Codd's rules,[4] so the term has gradually come to describe a broader class of database systems, which at a minimum: In 1974, IBM began developing System R, a research project to develop a prototype RDBMS.

In 1984, the first RDBMS for Macintosh began being developed, code-named Silver Surfer, and was released in 1987 as 4th Dimension and known today as 4D.

A second school of thought argues that if a database does not implement all of Codd's rules (or the current understanding on the relational model, as expressed by Christopher J.

This view, shared by many theorists and other strict adherents to Codd's principles, would disqualify most DBMSs as not relational.

[citation needed] As of 2009, most commercial relational DBMSs employ SQL as their query language.

Codd showed that data relationships of arbitrary complexity can be represented by a simple set of concepts.

[2] Part of this processing involves consistently being able to select or modify one and only one row in a table.

Therefore, most physical implementations have a unique primary key (PK) for each row in a table.

When each cell can contain only one value and the PK migrates into a regular entity table, this design pattern can represent either a one-to-one or one-to-many relationship.

In order for a database management system (DBMS) to operate efficiently and accurately, it must use ACID transactions.

For increased security, the system design may grant access to only the stored procedures and not directly to the tables.

Fundamental stored procedures contain the logic needed to insert new and update existing data.

More complex procedures may be written to implement additional rules and logic related to processing or selecting the data.

The relational database was first defined in June 1970 by Edgar Codd, of IBM's San Jose Research Laboratory.

Another example of domain describes the possible values for the field "CoinFace" as ("Heads","Tails").

Constraints provide one method of implementing business rules in the database and support subsequent data use within the application layer.

These are usually defined using expressions that result in a Boolean value, indicating whether or not the data satisfies the constraint.

The surrogate key has no intrinsic (inherent) meaning, but rather is useful through its ability to uniquely identify a tuple.

Stored procedures usually collect and customize common operations, like inserting a tuple into a relation, gathering statistical information about usage patterns, or encapsulating complex business logic and calculations.

Stored procedures are not part of the relational database model, but all commercial implementations include them.

The use of efficient indexes on both primary and foreign keys can dramatically improve query performance.

[26] Distributed Relational Database Architecture (DRDA) was designed by a workgroup within IBM in the period 1988 to 1994.

DRDA enables network connected relational databases to cooperate to fulfill SQL requests.

[27][28] The messages, protocols, and structural components of DRDA are defined by the Distributed Data Management Architecture.

According to DB-Engines, in December 2024 the most popular systems on the db-engines.com web site were:[29] According to research company Gartner, in 2011, the five leading proprietary software relational database vendors by revenue were Oracle (48.8%), IBM (20.2%), Microsoft (17.0%), SAP including Sybase (4.6%), and Teradata (3.7%).

Relational database terminology
The general structure of a relational database