## Recent Post

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 SQL Server
• Microsoft Access
• Visual FoxPro
• InterBase
• JDataStore
• R:Base
Relational Model
• Based on mathematical concept of a relation.
• 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
• Attribute is a named column of a relation
• Domain is the set of allowable values for one or more attributes.
• 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
• Relation Database is a collection of normalized relations with distinct relation names.
Instances of Sample Relation

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 х D2 is,
- Set of all ordered pairs where first element is member of D1 and second element is member of D2
* D1 х 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.

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}
• Relating with database relations
- Consider Branch relation in the example where branchNo = {B002, B003}  city = {London, Glasgow}
• Cartesian product, branchNo х city is,
- {(B002, London), (B002, Glasgow), (B003, London), (B003, Glasgow)}
• Any subset of Cartesian product is a relation

Database Relations

Relation schema
• Named relation defined by a set of attribute and domain name pairs
• Let A1, A2,....,An be attributes with domain D1, D2,....,Dn
• Then the set {A1:D1, A2:D2, ..... , An:Dn} is a relation schema
• A relation T defined by a relation schema S is a set of mapping from the attributes 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
• Branch relation schema
* Branch = { branchNo:BranchNumbers, street:StreetNames, city:CityNames, postcode:PostCodes}
• Tuple of a Branch relation
{branchNo:B005, street:22DeerRd, 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:
R = {R1, R2,....., Rn}

Properties of Relations
• Relation name is distinct from all other relation names in relational schema.
• Each cell of relation contains exactly one atomic (single) value
• Each attributes has a distinct name
• Values of an attribute are all from the same domain
• Each tuple is distinct; there are no duplicate tuples
• Order of attributes has no significance
• Order of tuples has no significance, theoretically