Lecture 5
Lecture 5
Lecture # 5
Summary: Previous Lecture
Database languages
Functions of a DBMS
DBMS environment
Data models and their categories
The Relational Model
Chapter 3
History of Relational Model
Proposed by E.F. Codd in 1970
“ A relational model of data for large shared data banks”
Objectives of relational model
High degree of data independence
Dealing with issues e.g. data semantics, consistencies, and
redundancy
To enable the expansion of set-oriented data manipulation
languages
Examples of RDBMSs
Oracle
Microsoft SQLServer
Microsoft Access
Visual FoxPro
InterBase
JDataStore
R:Base
Relational Model
Based on mathematical concept of a
relation
Which is physically represented as a table
Codd, a trained mathematician, used
terminology taken from mathematics,
principally set theory and predicate logic
Relational Model Terminology
A relation is a table with columns and rows
Only applies to logical structure of the database (external
and conceptual level of ANSI-SPARC architecture), not
the physical structure
Attributeis a named column of a relation
Domain is the set of allowable values for
one or more attributes
Relational Model Terminology..
Tuple is a row of a relation
Degree is the number of attributes in a
relation
Cardinality is the number of tuples in a
relation
Relational Database is a collection of
normalized relations with distinct relation
names
Instances of Sample Relations
Examples of Attribute Domains
Alternative Terminology
Mathematical Relations
Consider two sets, D1 & D2,
Where D1 = {2, 4} and D2 = {1, 3, 5}
Cartesian product, D1 x D2 is,
Set of all ordered pairs, where first element is member of
D1 and second element is member of D2
D1 x D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)}
Alternative way is to find all combinations of elements
with first from D1 and second from D2
Mathematical Relations..
Any subset of Cartesian product is a
relation; e.g.
R = {(2, 1), (4, 1)}
May specify which pairs are in relation using some
condition for selection; e.g.
Second element is 1:
R = {(x, y) | x D1, y D2, and y = 1}
First element is always twice the second:
S = {(x, y) | x D1, y D2, and x = 2y}
Mathematical Relations..
Relating with database relations
Consider Branch relation in the example where
branchNo = {B002,B003} city = {London, Glasgow}
Cartesian product, branchNo x city is,
{(B002, London), (B002, Glasgow), (B003, London), (B003, Glasgow)}
Any subset of Cartesian product is a
relation
Mathematical Relations..
Consider three sets D1, D2, D3 with
Cartesian Product D1 x D2 x D3, e.g.
D1 = {1, 3} D2 = {2, 4} D3 = {5, 6}
D1 x D2 x D3 =
{(1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5), (3,2,6), (3,4,5), (3,4,6)}
Any subset of these ordered triples is a relation
Mathematical Relations..
Cartesian product of n sets (D1, D2,…, Dn)
is:
D1 x D2 x . . . x Dn = {(d1, d2, . . . , dn) | d1 D1, d2 D2,
. . . , dn Dn}
Usually written as:
n
XDi
i=1
Any set of n-tuples from this Cartesian product is a
relation on the n sets
Database Relations
Relation schema
Named relation defined by a set of attribute and domain
name pairs
Let A1, A2,...,An be attributes with domains D1, D2,..., Dn
Then the set {A1:D1, A2:D2, ... , An:Dn} is a relation
schema
A relation R defined by a relation schema S is a set of
mappings from the attribute names to their
corresponding domains. Thus, relation R is a set of n-
tuples:
(A1:d1, A2:d2,..., An:dn) such that
d1∈D1, d2∈D2,..., dn∈Dn
Database Relations
Relation schema
Named relation defined by a set of attribute and domain
name pairs
Let A1, A2,...,An be attributes with domains D1, D2,..., Dn
Then the set {A1:D1, A2:D2, ... , An:Dn} is a relation
schema
A relation R defined by a relation schema S is a set of
mappings from the attribute names to their
corresponding domains. Thus, relation R is a set of n-
tuples:
(A1:d1, A2:d2,..., An:dn) such that
d1∈D1, d2∈D2,..., dn∈Dn
Database Relations..
Branch relation schema
Branch =
{branchNo:BranchNumbers, street: StreetNames, city: CityNames, postcode:PostCodes}
Tuple of a Branch relation
{branchNo:B005, street: 22 Deer Rd, city: London, postcode:SW1 4EH}
Relational Database Schema
If R1, R2,..., Rn are a set of relation
schemas, then we can write the relational
database schema, or simply relational
schema, R, as: