Relational database management system

From Wikipedia, the free encyclopedia

A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by Edgar F. Codd. Relational databases are the most common kind of database in use today (assuming one does not count a file system as a database).

Contents

[edit] History of the term

E. F. Codd introduced the term in his seminal paper "A Relational Model of Data for Large Shared Data Banks", published in 1970. In this paper and later papers he defined what he meant by relational. One well-known definition of what constitutes a relational database system is Codd's 12 rules. However, many of the early implementations of the relational model did not conform to all of Codd's rules, so the term gradually came to describe a broader class of database systems. At a minimum, these systems:

  • presented the data to the user as relations (a presentation in tabular form, i.e. as a collection of tables with each table consisting of a set of rows and columns, can satisfy this property)
  • provided relational operators to manipulate the data in tabular form

The first systems that were relatively faithful implementations of the relational model were from the IBM UK Scientific Centre at Peterlee; IS1 (1970–1972) and its followon PRTV (1973–1979). The first system sold as an RDBMS was Multics Relational Data Store, first sold in 1978. Others have been Berkeley Ingres QUEL and IBM BS12.

[edit] Current usage

The most popular definition of an RDBMS is a product that presents a view of data as a collection of rows and columns not based strictly upon relational theory. The majority of real world popular RDBMS products implement some of Codd's 12 rules.

A second, theory-based 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 Date, Hugh Darwen and others), it is not relational. This view, shared by many theorists and other strict adherents to Codd's principles, would disqualify most DBMSs as not relational. For clarification, they often refer to RDBMSs as Truly-Relational Database Management Systems (TRDBMS), naming others Pseudo-Relational Database Management Systems (PRDBMS).

Almost all DBMSes employ SQL as their query language. Alternative query languages have been proposed and implemented, but very few have become commercial products.

[edit] Criticisms

Here are criticisms and complaints that can be found with regard to current RDBMS:

  • Vendors don't explore optional query languages outside of SQL. Many feel that SQL needs an update or overhaul, being about 30 years old.
  • They are usually statically-typed. Some feel that dynamically-typed or optional columns may make RDBMS more useful for prototyping or for domains where being nimble in a market is important. (Optional columns are implemented by returning null or blank for columns not defined in a given record.)
  • Over-ubiquity - Not all data models require a relational data store, but most developers will pick one up and run with it anyway. As a result, most non-relational DBMS have been starved of development time and innovation.

[edit] See also

Topics in database management systems (DBMS)view  talk  edit )

Concepts
Database | Database model | Relational database | Relational model | Relational algebra | Primary key - Foreign key - Surrogate key - Superkey
Database normalization | Referential integrity | Relational DBMS | Distributed DBMS | ACID

Objects
Trigger | View | Table | Cursor | Log | Transaction | Index | Stored procedure | Partition

Topics in SQL
Select | Insert | Update | Merge | Delete | Join | Union | Create | Drop
Comparison of syntax

Implementations of database management systems

Types of implementations
Relational | Flat file | Deductive | Dimensional | Hierarchical | Object oriented | Temporal

Products
Apache Derby | Caché | db4o | dBASE | Firebird | Helix database | DB2 | Informix | Ingres | InterBase | Microsoft SQL Server | MySQL | OpenLink Virtuoso | Oracle | PostgreSQL | SQLite | Sybase IQ | Sybase | Teradata | Visual FoxPro | Comparison - relational | Comparison - object-relational

Components
Query language | Query optimizer | Query plan | ODBC | JDBC
Lists
List of object-oriented database management systems
List of relational database management systems

[edit] External links

  • Database Debunkings - by Fabian Pascal. Critical point of view that argues that it is important that the predicate relational should be reserved for those database systems that are fully faithful to the relational model.