0% found this document useful (0 votes)
89 views

Basic Databases: Relational Model of Data

The document provides an overview of the relational database model, including its core concepts and operations. It defines key terms like relations, attributes, tuples, domains, keys, instances, and schemas. It also explains the basic relational algebra operations like selection, projection, join, union, difference, and rename that are used to manipulate relational data.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views

Basic Databases: Relational Model of Data

The document provides an overview of the relational database model, including its core concepts and operations. It defines key terms like relations, attributes, tuples, domains, keys, instances, and schemas. It also explains the basic relational algebra operations like selection, projection, join, union, difference, and rename that are used to manipulate relational data.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

BASIC DATABASES

Relational Model of Data

NGUYEN Hoang Ha
Email: [email protected]
Objectives
 Understand concepts of
 Data models
 Relational data model
 Structure
 Operations
 Constraints

2
What is a Data Model?
 Mathematical representation of data.
 Relational model = tables;
 Semi-structured model = trees/graphs.

 A model consists of:


 Structure of data
 Operations on data.
 Constraints.

3
Data Models in history

4
Why Relation?
 Very simple model.
 Often matches how we think about data.
 Abstract model that underlies SQL, the most important
database language today.

Reference: E. F. Codd, “A relational model for large shared data


banks,” Comm. ACM 13:6, pp. 377-387, 1970.

5
STRUCTURE OF RELATIONAL MODEL
Relational Model in brief
Attribute

Tuple

 The relational model represents data as a 2-dimensional


table (called a relation)

7
Attributes
Attribute

 Each column represent a property of film and also called a


“attribute”: title, year, length, genre

8
Domains

 The relational model requires that each component of


each tuple must be atomic, that is, it must be of some
elementary type such as INTEGER or STRING
 It is not permitted for a value to be a record
structure, set, list, array or any type that can have its
values broken into smaller components
 A Domain is a particular elementary type of an
attribute
 More general: a set of values for an attribute

→ What are domains of title, year, length, genre?


9
Tuples

Tuple

 A row of a relation is called a tuple (or record)


 Eg: Each row represents a film

 When we want to write a tuple in isolation, not as


part of a relation, we normally use commas to
separate components
 Eg: (Star Wars, 1977, 124, sciFi)

10
Equivalent representation of a relation
 Relation is a bag (extended set) of tuples, not a list of tuples
 Order of tuples is not important

=
 There could be identical tuples

 Question:
 What is/are the difference(s) between a set and a list?
 What is/are the difference(s) between a set and a bag?

11
Relation instances

 A relation about Movies is not static but changing


over time:
 We want to insert tuples for new Movies as these appear
 We want to edit existing tuples if we get corrected
information about a Movies
 We want to delete a tuple from the relation

 Sometime, we also want to add or delete attributes,


this lead to the changing of the schema. So, a set of
tuples for a given relation is called an instance of
that relation
12
Relation instances example
R R R

A B A B A B
1 2 1 3 3 5
3 4 2 5 4 6

13
Keys of relations
 A set of attributes forms a key for a relation if we don’t
allow 2 tuples in a relation instance to have the same values
in all the attributes of the key
 Eg: The key of relation
People(ID, name, address) is ID

14
Schemas
 Relation schema:
 Name
 Set of attributes.
 Order of attributes is arbitrary. In practice we assume the order given in
the relation schema
 Other structure infor: keys…
 Eg: Movies (Id, title, year, length, genre)

 Database schema: set of relation schema


 Movies (Id, title, year, length, genre)
 Producers (name, address, country)

15
DB Schema about Movies

16
OPERATIONS OF RELATIONAL MODEL
Relational Algebra (RA)
 Algebra is Mathematical system consisting of:
 Operands --- variables or values from which new values can be
constructed.
 Operators --- symbols denoting procedures that construct new values
from given values.
 Relational Algebra: an offshoot of algebra of bags
 Operands:
 Variables that stand for relations
 Constants, which are finite relations

 Operators work with relation(s) to create a new relation

18 18
Notations

19
Primitive operations
 In any algebra, some operators are primitive and
the others, being definable in terms of the primitive
ones, are derived
 The six primitive operators of relational algebra
are:
 the SELECTION,
 the PROJECTION,
 the CARTESIAN PRODUCT (also called the cross product
or cross join),
 the SET UNION,
 the SET DIFFERENCE, and
 the RENAME
20
Operations on Relations - Bag Union
 Example: {1,2,1} U {1,1,2,3,1} = {1,1,1,1,1,2,2,3}

21
Operations on Relations - Bag Difference
 Example: {1,2,1,1} – {1,2,3} = {1,1}.

22
Set Operations on Relations - Bag Intersection

 Example: {1,2,1,1} ∩ {1,2,1,3} = {1,1,2}.

This

23
Projection

 R1 := π (R2)
L

 L is a list of attributes from the schema of R2.


 R1 is constructed by looking at each tuple of R2, extracting the
attributes on list L, in the order specified, and creating from those
components a tuple for R1.
 Eliminate duplicate tuples, if any.

24
Projection Example

Relation Sells:
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Sue’s Bud 2.50
Sue’s Miller 3.00

Prices := πbeer, price(Sells):


beer price
Bud 2.50
Miller 2.75
Miller 3.00
25
Extended Projection

 Using the same π L operator, we allow the list L to


contain arbitrary expressions involving attributes:
 Arithmetic on attributes, e.g., A+B → C.
 Duplicate occurrences of the same attribute.

R= (A B) πA+B->C, A, A (R) = C A1 A2
1 2 3 1 1
3 4 7 3 3

26
Exercises - 1
 Suppose relation R(A,B,C) has the tuples:

 Compute the projection πC,B(R)

27
Selection

R1 := σC (R2)
▪ C is a condition (as in “if” statements) that
refers to attributes of R2.
▪ R1 is all those tuples of R2 that satisfy C.

28
Selection Example

Relation Sells:
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Sue’s Bud 2.50
Sue’s Miller 3.00

JoeMenu := σbar=“Joe’s”(Sells):
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75

29
Renaming

 The ρ operator gives a new schema to a relation.


 R1 := ρ R1(A1,…,An)(R2) makes R1 be a relation with
attributes A1,…,An and the same tuples as R2.
 Simplified notation: R1(A1,…,An) := R2.

30
Renaming Example

Bars( name, addr )


Joe’s Maple St.
Sue’s River Rd.

R(bar, addr) := Bars

R( bar, addr )
Joe’s Maple St.
Sue’s River Rd.

31
Product
 R3 := R1 Χ R2
 Pair each tuple t1 of R1 with each tuple t2 of R2.
 Concatenation t1t2 is a tuple of R3.
 Schema of R3 is the attributes of R1 and then R2, in order.
 But beware attribute A of the same name in R1 and R2: use R1.A
and R2.A.

32
R3 = R1 Χ R2

R1( A, B) R3( A, R1.B, R2.B, C )


1 2 1 2 5 6
3 4 1 2 7 8
1 2 9 10
R2( B, C) 3 4 5 6
5 6 3 4 7 8
7 8 3 4 9 10
9 10

33
R3 = R1 Χ R2

34
Join
 Types
 Theta join
 Natural join
 Outer join:
 Left outer join
 Right outer join
 Full outer join

35
Theta-Join

 R3 := R1 ⋈ C R2
 Take the product R1 Χ R2.

 Then apply σ C to the result.

 As for σ, C can be any boolean-valued condition.


 Historic versions of this operator allowed only A  B, where  is =, <,
etc.; hence the name “theta-join.”

36 36
Theta-Join Example

Sells( bar, beer, price ) Bars( name, addr )


Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00

BarInfo := Sells ⋈Sells.bar = Bars.name Bars


BarInfo( bar, beer, price, name, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Joe’s Maple St.
Sue’s Bud 2.50 Sue’s River Rd.
Sue’s Coors 3.00 Sue’s River Rd.
37
Natural Join
 A useful join variant (natural join) connects two relations
by:
 Equating attributes of the same name, and
 Projecting out one copy of each pair of equated attributes.

 Denoted R3 := R1 ⋈ R2.

38
Eg: Natural Join
Sells( bar, beer, price ) Bars( bar, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00

BarInfo := Sells ⋈ Bars


Note: Bars.name has become Bars.bar to make the natural
join “work.”
BarInfo( bar, beer, price, addr )
Joe’s Bud 2.50 Maple St.
Joe’s Milller 2.75 Maple St.
Sue’s Bud 2.50 River Rd.
39 Sue’s Coors 3.00 River Rd.
Inner Join

40
Outer join

41
Building Complex Expressions

 Combine operators with parentheses and precedence rules.


 Three notations, just as in arithmetic:
 Sequences of assignment statements.
 Expressions with several operators.
 Expression trees.

42 42
Sequences of Assignments
 Create temporary relation names.
 Renaming can be implied by giving relations a list of
attributes.

 Example: R3 := R1 ⋈ C R2 can be written:


R4 := R1 Χ R2

R3 := σ C (R4)

43 43
Expressions in a Single Assignment

 Example: the theta-join R3 := R1 ⋈ C R2 can be written:

R3 := σ
C (R1 Χ R2)

 Precedence of relational operators:


1. [σ, π, ρ] (highest).

2. [Χ, ⋈].
3. ∩.
4. [∪, —]

44 44
Expression Trees
 Leaves are operands --- either variables standing for
relations or particular, constant relations.
 Interior nodes are operators, applied to their child or
children.

45 45
Example: Tree for a Query
 Using the relations Bars(name, addr) and Sells(bar, beer,
price), find the names of all the bars that are either on Maple
St. or sell Bud for less than $3.

46 46
As a Tree:


ρ R(name)

π name π bar

σ addr = “Maple St.” σ


price<3 AND beer=“Bud”

Bars Sells 47

47
Example: Self-Join

 Using Sells(bar, beer, price), find the bars that sell two
different beers at the same price.
 Strategy: by renaming, define a copy of Sells, called S(bar,
beer1, price). The natural join of Sells and S consists of
quadruples (bar, beer, beer1, price) such that the bar sells
both beers at this price.

48 48
The Tree

π bar

σ
beer != beer1


ρ S(bar, beer1, price)

Sells Sells
49

49
CONSTRAINS IN RELATIONAL MODEL
Introduction
 A constraint is a relationship among data elements that the
DBMS is required to enforce.
 → mechanism that may be used to limit the values entered
into a relation.

CONSTRAINTS

NULL CHECK FOREIGN PRIMARY

Attribute-based check
Tube-based check

51
Assertions
Key of a relation

 A set attributes {A1, A2, .., An} is called a key of the


relation R if:
 1. Those attributes determine all other attributes.
→ It is impossible for 2 tuples of R to agree on all of {A1, A2, .., An}
 2. No subset of {A1, A2, .., An} determines all other attributes
 →A Key must be minimal
 Example
 AccademicResults (StudentID, SubjectID, grade, comment)

52
Different key types of a relation
 Super key
 Set of attributes (columns) to uniquely identify rows

 Key or candidate key


 Minimal super key

 Primary key
 One selected from candidate keys

 Alternate key
 Candidate key other than PK

 Foreign key
 Attribute refers to a PK of another relation

53
Express Primary Key Constraints by RA

 Suppose we have a schema R(A1,A2,A3)


 So, we have A1 is the primary key of R if:

δR1.A1=R2.A1 AND R1.A2<>R2.A2 AND R1.A3 <> R2.A3(R x R) = Φ

54
Example: Express Primary Key Constraints

 δR1.OrderId = R2.OrderId AND R1.Customer<>R2.Customer(R x R) = Φ


55
Express Foreign Key Constraints
 Suppose we have 2 relations R and S.
R contains an attribute A
S contains an attribute B

 “R references to S via A and B” if: ∏A(R) - ∏B(S) = Φ

56
Example: Express Foreign Key Constraints

Sells( bar, beer, price ) Bars( bar, addr )


Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00

❖∏Bar(Sells) - ∏Bar(Bars) = Φ

57
Express Check Constraints

 Give a schema:
EMPLOYEE(EmpId, Name, Sex)

 If we want to specify that the only legal values for


SEX attribute are ‘F’ and ‘M’, we can write:

SELECTsex <> ‘F’ and sex <> ‘M’ (EMPLOYEE) = Φ

58
Exercises 1

 Give a schema:
PC (Model, Speed, RAM, HDD, Price)

 Use Relational Algebra to express following constraints:

A PC with a processor speed less than 3.00 must not sell


for more than $800

59
Exercises 2

 Give a schema:
LAPTOP (Model, speed, RAM, HDD, Screen, Price)

 Use Relational Algebra to express following constraints:

A laptop with a screen size less than 15.4 inches must have
at least a 120GB hard disk or sell for less than $1000

60
Exercises 3

 PC (Model, Speed, RAM, HDD, Price)


 LAPTOP (Model, speed, RAM, HDD, Screen, Price)

 Use Relational Algebra to express following constraints:

If a laptop has a larger RAM than a PC, then the laptop must
also have a higher price than the PC

61
Exercises 4

 PC (Maker, Model)
 PRINTER (Maker, Model)

 Use Relational Algebra to express following constraints:

No manufacturer of PC’s may also make printers

62
Exercises 5

 PRODUCT (Maker, model)


 PC (Model)
 PRINTER (Model)

 Use Relational Algebra to express following constraints:

No manufacturer of PC’s may also make printers

63
Exercises 6

 PC (Model, Speed, RAM, HDD, Price)

 Use Relational Algebra to express following constraints:


 Higher model, higher price
 With the same model, higher Speed and RAM and HDD, higher price

64

You might also like