The Relational Data Model
The Relational Data Model
The model was first proposed by Dr. E.F. Codd of IBM in 1970 in the following paper:
"A Relational Model for Large Shared Data Banks," Communications of the ACM, June 1970.
FORMAL DEFINITIONS
A Relation may be defined in multiple ways.
The Schema of a Relation: R (A1, A2, .....An)
Relation schema R is defined over attributes A1, A2, .....An
For Example -
CUSTOMER (Cust-id, Cust-name, Address, Phone#)
Here, CUSTOMER is a relation defined over the four attributes Cust-id, Cust-name, Address,
Phone#, each of which has a domain or a set of valid values.
For example, the domain of Cust-id is 6 digit numbers.
Tuple
A tuple is an ordered set of values
Each value is derived from an appropriate domain.
Each row in the CUSTOMER table may be referred to as a tuple in the table and would
consist of four values.
<632895, "John Smith", "101 Main St. Atlanta, GA 30332", "(404) 894-2000">
is a tuple belonging to the CUSTOMER relation.
A relation may be regarded as a set of tuples (rows).
Columns in a table are also called attributes of the relation.
Domain
A domain has a logical definition: e.g.,
“USA_phone_numbers” are the set of 10 digit phone numbers valid in the U.S.
A domain may have a data-type or a format defined for it. The USA_phone_numbers
may have a format: (ddd)-ddd-dddd where each d is a decimal digit. E.g., Dates have
various formats such as monthname, date, year or yyyy-mm-dd, or dd mm,yyyy etc.
An attribute designates the role played by the domain. E.g., the domain Date may be used
to define attributes “Invoice-date” and “Payment-date”.
In Relation
The relation is formed over the cartesian product of the sets; each set has values from a
domain; that domain is used in a specific role which is conveyed by the attribute name.
For example, attribute Cust-name is defined over the domain of strings of 26 characters.
The role these strings play in the CUSTOMER relation is that of the name of customers.
Formally,
Given R(A1 , A2, .........., An)
r(R) dom (A1) X dom (A2) X ....X dom(An)
R: schema of the relation
r of R: a specific "value" or population of R.
R is also called the intension of a relation
r is also called the extension of a relation
Let S1 = {0,1}
Let S2 = {a,b,c}
Let R S1 X S2
Then for example: r(R) = {<0,a> , <0,b> , <1,c> }
is one possible “state” or “population” or “extension” r of the relation R, defined over
domains S1 and S2. It has three tuples.
Table Relation
Column Attribute/Domain
Row Tuple