SlideShare a Scribd company logo
Relational Model
Chapter 2
ICT 2073
Prepare by : Ms. Siti Hajar Binti Ismail
Learning Objective
 Analyse the Relation Schema and
Relation instance
 Practice the relation algebra and
calculus
 Identify six keys in database
 Analyze query language and null
value
Example of a Relation
Attribute Types
 Each attribute of a relation has a name
 The set of allowed values for each attribute is called the domain
of the attribute
 Attribute values are (normally) required to be atomic; that is,
indivisible
◦ E.g. the value of an attribute can be an account number,
but cannot be a set of account numbers
 Domain is said to be atomic if all its members are atomic
 The special value null is a member of every domain
Relation Schema
 Formally, given domains D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai
 Di
 Schema of a relation consists of
◦ attribute definitions
 name
 type/domain
◦ integrity constraints
Relation Instance
 The current values (relation instance) of a relation are specified by a table
 An element t of r is a tuple, represented by a row in a table
 Order of tuples is irrelevant (tuples may be stored in an arbitrary order)
Jones
Smith
Curry
Lindsay
customer_name
Main
North
North
Park
customer_street
Harrison
Rye
Rye
Pittsfield
customer_city
customer
attributes
(or columns)
tuples
(or rows)
Database
 A database consists of multiple relations
 Information about an enterprise is broken up into parts,
with each relation storing one part of the information
 E.g.
account : information about accounts
depositor : which customer owns which account
customer : information about customers
The customer Relation
The depositor Relation
Keys
 Let K  R
 K is a superkey of R if values for K are sufficient to
identify a unique tuple of each possible relation r(R)
◦ by “possible r ” we mean a relation r that could exist in the
enterprise we are modeling.
◦ Example: {customer_name, customer_street} and
{customer_name}
are both superkeys of Customer, if no two customers can
possibly have the same name
Keys (Cont.)
 K is a candidate key if K is minimal
Example: {customer_name} is a candidate key for
Customer, since it is a superkey and no subset of it is a
superkey.
 Primary key: a candidate key chosen as the principal
means of identifying tuples within a relation
◦ Should choose an attribute whose value never, or very
rarely, changes.
◦ E.g. email address is unique, but may change
Foreign Keys
 A relation schema may have an attribute that corresponds to the
primary key of another relation. The attribute is called a foreign
key.
◦ E.g. customer_name and account_number attributes of depositor
are foreign keys to customer and account respectively.
◦ Only values occurring in the primary key attribute of the
referenced relation may occur in the foreign key attribute of the
referencing relation.
Schema Diagram
Query Languages
 Language in which user requests information from the database.
 Categories of languages
◦ Procedural
◦ Non-procedural, or declarative
 “Pure” languages:
◦ Relational algebra
◦ Tuple relational calculus
◦ Domain relational calculus
 Pure languages form underlying basis of query languages that people
use.
Composition of Operations
 Can build expressions using multiple operations
 Example: A=C(r x s)
 r x s
 A=C(r x s)
A B








1
1
1
1
2
2
2
2
C D








10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
A B C D E



1
2
2



10
10
20
a
a
b
Banking Example
branch (branch_name, branch_city, assets)
customer (customer_name,
customer_street, customer_city)
account (account_number, branch_name,
balance)
loan (loan_number, branch_name, amount)
depositor (customer_name,
account_number)
borrower (customer_name, loan_number)
Example Queries
 Find all loans of over $1200
n Find the loan number for each loan of an amount greater than
$1200
amount > 1200 (loan)
loan_number (amount > 1200 (loan))
n Find the names of all customers who have a loan, an account, or both,
from the bank
customer_name (borrower)  customer_name (depositor)
Example Queries
 Find the names of all customers who have a loan at the Perryridge
branch.
n Find the names of all customers who have a loan at the
Perryridge branch but do not have an account at any branch of
the bank.
customer_name (branch_name = “Perryridge”
(borrower.loan_number = loan.loan_number(borrower x loan))) –
customer_name(depositor)
customer_name (branch_name=“Perryridge”
(borrower.loan_number = loan.loan_number(borrower x loan)))
Example Queries
 Find the names of all customers who have a loan at the
Perryridge branch.
l customer_name(loan.loan_number =
borrower.loan_number (
(branch_name = “Perryridge” (loan)) x borrower))
l customer_name (branch_name = “Perryridge” (
borrower.loan_number = loan.loan_number (borrower x loan)))
Bank Example Queries Find the largest account balance
◦ Strategy:
 Find those balances that are not the largest
 Rename account relation as d so that we can compare each account
balance with all others
 Use set difference to find those account balances that were not found in
the earlier step.
◦ The query is:
balance(account) - account.balance
(account.balance < d.balance (account x rd (account)))
Bank Example Queries
 Find the name of all customers who have a loan
at the bank and the loan amount
n Find the names of all customers who have a loan and an account at
bank.
customer_name (borrower)  customer_name (depositor)
customer_name, loan_number, amount (borrower loan)
l Query 1
customer_name (branch_name = “Downtown” (depositor account )) 
customer_name (branch_name = “Uptown” (depositor account))
l Query 2
customer_name, branch_name (depositor account)
 rtemp(branch_name) ({(“Downtown” ), (“Uptown” )})
Note that Query 2 uses a constant relation.
Bank Example Queries
 Find all customers who have an account from
at least the “Downtown” and the Uptown”
branches.
Bank Example Queries
 Find all customers who have an account at all
branches located in Brooklyn city.
customer_name, branch_name (depositor account)
 branch_name (branch_city = “Brooklyn” (branch))
Relational Algebra
 Procedural language
 Six basic operators
◦ select: 
◦ project: 
◦ union: 
◦ set difference: –
◦ Cartesian product: x
◦ rename: r
 The operators take one or two relations as inputs and produce a new
relation as a result.
Select Operation – Example
n Relation r
A B C D








1
5
12
23
7
7
3
10
 A=B ^ D > 5 (r)
A B C D




1
23
7
10
Project Operation – Example
 Relation r: A B C




10
20
30
40
1
1
1
2
A C




1
1
1
2
=
A C



1
1
2
A,C (r)
Union Operation – Example Relations r, s:
n r  s:
A B



1
2
1
A B


2
3
r
s
A B




1
2
1
3
Set Difference Operation –
Example
 Relations r, s:
n r – s:
A B



1
2
1
A B


2
3
r
s
A B


1
1
Cartesian-Product Operation –
Example
n Relations r, s:
n r x s:
A B


1
2
A B








1
1
1
1
2
2
2
2
C D








10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
C D




10
10
20
10
E
a
a
b
br
s
Rename Operation Allows us to name, and therefore to refer to, the results of relational-algebra expressions.
 Allows us to refer to a relation by more than one name.
 Example:
r x (E)
returns the expression E under the name X
 If a relational-algebra expression E has arity n, then
returns the result of expression E under the name X, and with the
attributes renamed to A1 , A2 , …., An .
)(),...,,( 21
EnAAAxr
Additional Operations
 Additional Operations
◦ Set intersection
◦ Natural join
◦ Aggregation
◦ Outer Join
◦ Division
 All above, other than aggregation, can be expressed
using basic operations we have seen earlier
Set-Intersection Operation –
Example
 Relation r, s:
 r  s
A B



1
2
1
A B


2
3
r s
A B
 2
Natural Join Operation –
Example Relations r, s:
A B





1
2
4
1
2
C D





a
a
b
a
b
B
1
3
1
2
3
D
a
a
a
b
b
E





r
A B





1
1
1
1
2
C D





a
a
a
a
b
E





s
n r s
n Notation: r s
Natural-Join Operation
 Let r and s be relations on schemas R and S respectively.
Then, r s is a relation on schema R  S obtained as follows:
◦ Consider each pair of tuples tr from r and ts from s.
◦ If tr and ts have the same value on each of the attributes in R  S, add a tuple t to the result,
where
 t has the same value as tr on r
 t has the same value as ts on s
 Example:
R = (A, B, C, D)
S = (E, B, D)
◦ Result schema = (A, B, C, D, E)
◦ r s is defined as:
r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))
Aggregate Functions and
Operations
 Aggregation function takes a collection of values and returns a single value as a
result.
avg: average value
min: minimum value
max: maximum value
sum: sum of values
count: number of values
 Aggregate operation in relational algebra
E is any relational-algebra expression
◦ G1, G2 …, Gn is a list of attributes on which to group (can be empty)
◦ Each Fi is an aggregate function
◦ Each Ai is an attribute name
)()(,,(),(,,, 221121
Ennn AFAFAFGGG  
Aggregate Operation –
Example Relation
r:
A B








C
7
7
3
10
n g sum(c) (r) sum(c )
27
n Question: Which aggregate operations cannot be expressed
using basic relational operations?
Aggregate Operation –
Example Relation account grouped by branch-name:
branch_name g sum(balance) (account)
branch_name account_number balance
Perryridge
Perryridge
Brighton
Brighton
Redwood
A-102
A-201
A-217
A-215
A-222
400
900
750
750
700
branch_name sum(balance)
Perryridge
Brighton
Redwood
1300
1500
700
Aggregate Functions (Cont.)
 Result of aggregation does not have a
name
◦ Can use rename operation to give it a name
◦ For convenience, we permit renaming as
part of aggregate operation
branch_name g sum(balance) as sum_balance (account)
Outer Join
 An extension of the join operation that avoids loss of information.
 Computes the join and then adds tuples form one relation that
does not match tuples in the other relation to the result of the
join.
 Uses null values:
◦ null signifies that the value is unknown or does not exist
◦ All comparisons involving null are (roughly speaking) false by
definition.
 We shall study precise meaning of comparisons with nulls later
Outer Join – Example
 Relation loan
n Relation borrower
customer_name loan_number
Jones
Smith
Hayes
L-170
L-230
L-155
3000
4000
1700
loan_number amount
L-170
L-230
L-260
branch_name
Downtown
Redwood
Perryridge
Outer Join – Example
 Join
loan borrower
loan_number amount
L-170
L-230
3000
4000
customer_name
Jones
Smith
branch_name
Downtown
Redwood
Jones
Smith
null
loan_number amount
L-170
L-230
L-260
3000
4000
1700
customer_namebranch_name
Downtown
Redwood
Perryridge
n Left Outer Join
loan borrower
Outer Join – Example
loan_number amount
L-170
L-230
L-155
3000
4000
null
customer_name
Jones
Smith
Hayes
branch_name
Downtown
Redwood
null
loan_number amount
L-170
L-230
L-260
L-155
3000
4000
1700
null
customer_name
Jones
Smith
null
Hayes
branch_name
Downtown
Redwood
Perryridge
null
n Full Outer Join
loan borrower
n Right Outer Join
loan borrower
n Question: can outerjoins be expressed using basic relational
algebra operations
Null Values
 It is possible for tuples to have a null value, denoted by null, for
some of their attributes
 null signifies an unknown value or that a value does not exist.
 The result of any arithmetic expression involving null is null.
 Aggregate functions simply ignore null values (as in SQL)
 For duplicate elimination and grouping, null is treated like any
other value, and two nulls are assumed to be the same (as in
SQL)
Null Values
 Comparisons with null values return the special truth
value: unknown
◦ If false was used instead of unknown, then not (A < 5)
would not be equivalent to A >= 5
 Three-valued logic using the truth value unknown:
◦ OR: (unknown or true) = true,
(unknown or false) = unknown
(unknown or unknown) = unknown
◦ AND: (true and unknown) = unknown,
(false and unknown) = false,
(unknown and unknown) = unknown
◦ NOT: (not unknown) = unknown
◦ In SQL “P is unknown” evaluates to true if predicate P
evaluates to unknown
 Result of select predicate is treated as false if it evaluates
to unknown
Division Operation
 Notation:
 Suited to queries that include the phrase “for
all”.
 Let r and s be relations on schemas R and S
respectively where
◦ R = (A1, …, Am , B1, …, Bn )
◦ S = (B1, …, Bn)
The result of r  s is a relation on schema
R – S = (A1, …, Am)
r  s = { t | t   R-S (r)   u  s ( tu  r ) }
Where tu means the concatenation of tuples t and
u to produce a single tuple
r  s
Division Operation – Example
n Relations r, s:
n r  s: A
B


1
2
A B











1
2
3
1
1
1
3
4
6
1
2
r
s
Another Division Example
A B








a
a
a
a
a
a
a
a
C D








a
a
b
a
b
a
b
b
E
1
1
1
1
3
1
1
1
n Relations r, s:
n r  s:
D
a
b
E
1
1
A B


a
a
C


r
s
Division Operation (Cont.)
 Property
◦ Let q = r  s
◦ Then q is the largest relation satisfying q x s  r
 Definition in terms of the basic algebra operation
Let r(R) and s(S) be relations, and let S  R
r  s = R-S (r ) – R-S ( ( R-S (r ) x s ) – R-S,S(r ))
To see why
◦ R-S,S (r) simply reorders attributes of r
◦ R-S (R-S (r ) x s ) – R-S,S(r) ) gives those tuples t in
R-S (r ) such that for some tuple u  s, tu  r.
Learning Outcome
Student will be able to:
 Briefly explain six types of keys in
database
 Use query language to get sample
data from the database
 Identify the null value

More Related Content

What's hot

Dbms ii mca-ch4-relational model-2013
Dbms ii mca-ch4-relational model-2013Dbms ii mca-ch4-relational model-2013
Dbms ii mca-ch4-relational model-2013
Prosanta Ghosh
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMS
koolkampus
 
Unit04 dbms
Unit04 dbmsUnit04 dbms
Unit04 dbms
arnold 7490
 
relational algebra
relational algebrarelational algebra
relational algebra
Shashank Singh
 
Dbms ER Model
Dbms ER ModelDbms ER Model
Dbms ER Model
Sreedhar Chowdam
 
Dbms ii mca-ch5-ch6-relational algebra-2013
Dbms ii mca-ch5-ch6-relational algebra-2013Dbms ii mca-ch5-ch6-relational algebra-2013
Dbms ii mca-ch5-ch6-relational algebra-2013
Prosanta Ghosh
 
chapter2 Relational Model
  chapter2  Relational Model  chapter2  Relational Model
chapter2 Relational Model
MrsGAmudhaIT
 
dbms first unit
dbms first unitdbms first unit
dbms first unit
Raghu Bright
 
Lecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusLecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculus
emailharmeet
 
7. Relational Database Design in DBMS
7. Relational Database Design in DBMS7. Relational Database Design in DBMS
7. Relational Database Design in DBMS
koolkampus
 
Database Design and Normalization Techniques
Database Design and Normalization TechniquesDatabase Design and Normalization Techniques
Database Design and Normalization Techniques
Nishant Munjal
 
The Relational Data Model and Relational Database Constraints
The Relational Data Model and Relational Database ConstraintsThe Relational Data Model and Relational Database Constraints
The Relational Data Model and Relational Database Constraints
sontumax
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational Algebra
guest20b0b3
 
Database system by VISHAL PATIL
Database system by VISHAL PATILDatabase system by VISHAL PATIL
Database system by VISHAL PATIL
Vishal Patil
 
Decaf language specification
Decaf language specificationDecaf language specification
Decaf language specification
Sami Said
 
My slide relational algebra
My slide  relational algebraMy slide  relational algebra
My slide relational algebra
Rushdi Shams
 
Additional Relational Algebra Operations
Additional Relational Algebra OperationsAdditional Relational Algebra Operations
Additional Relational Algebra Operations
A. S. M. Shafi
 
Relational algebra-and-relational-calculus
Relational algebra-and-relational-calculusRelational algebra-and-relational-calculus
Relational algebra-and-relational-calculus
Salman Vadsarya
 
Structure & Union in C++
Structure & Union in C++Structure & Union in C++
Structure & Union in C++
Davinder Kaur
 
ch2
ch2ch2

What's hot (20)

Dbms ii mca-ch4-relational model-2013
Dbms ii mca-ch4-relational model-2013Dbms ii mca-ch4-relational model-2013
Dbms ii mca-ch4-relational model-2013
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMS
 
Unit04 dbms
Unit04 dbmsUnit04 dbms
Unit04 dbms
 
relational algebra
relational algebrarelational algebra
relational algebra
 
Dbms ER Model
Dbms ER ModelDbms ER Model
Dbms ER Model
 
Dbms ii mca-ch5-ch6-relational algebra-2013
Dbms ii mca-ch5-ch6-relational algebra-2013Dbms ii mca-ch5-ch6-relational algebra-2013
Dbms ii mca-ch5-ch6-relational algebra-2013
 
chapter2 Relational Model
  chapter2  Relational Model  chapter2  Relational Model
chapter2 Relational Model
 
dbms first unit
dbms first unitdbms first unit
dbms first unit
 
Lecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusLecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculus
 
7. Relational Database Design in DBMS
7. Relational Database Design in DBMS7. Relational Database Design in DBMS
7. Relational Database Design in DBMS
 
Database Design and Normalization Techniques
Database Design and Normalization TechniquesDatabase Design and Normalization Techniques
Database Design and Normalization Techniques
 
The Relational Data Model and Relational Database Constraints
The Relational Data Model and Relational Database ConstraintsThe Relational Data Model and Relational Database Constraints
The Relational Data Model and Relational Database Constraints
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational Algebra
 
Database system by VISHAL PATIL
Database system by VISHAL PATILDatabase system by VISHAL PATIL
Database system by VISHAL PATIL
 
Decaf language specification
Decaf language specificationDecaf language specification
Decaf language specification
 
My slide relational algebra
My slide  relational algebraMy slide  relational algebra
My slide relational algebra
 
Additional Relational Algebra Operations
Additional Relational Algebra OperationsAdditional Relational Algebra Operations
Additional Relational Algebra Operations
 
Relational algebra-and-relational-calculus
Relational algebra-and-relational-calculusRelational algebra-and-relational-calculus
Relational algebra-and-relational-calculus
 
Structure & Union in C++
Structure & Union in C++Structure & Union in C++
Structure & Union in C++
 
ch2
ch2ch2
ch2
 

Similar to Relation model part 1

3.ppt
3.ppt3.ppt
Details of RDBMS.ppt
Details of RDBMS.pptDetails of RDBMS.ppt
Details of RDBMS.ppt
ShivareddyGangam
 
relational model in Database Management.ppt.ppt
relational model in Database Management.ppt.pptrelational model in Database Management.ppt.ppt
relational model in Database Management.ppt.ppt
Roshni814224
 
Relational algebra operations
Relational algebra operationsRelational algebra operations
Relational algebra operations
SanthiNivas
 
Bab 5
Bab 5Bab 5
4. SQL in DBMS
4. SQL in DBMS4. SQL in DBMS
4. SQL in DBMS
koolkampus
 
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
Data Base Management system relation algebra ER diageam Sql Query -nested  qu...Data Base Management system relation algebra ER diageam Sql Query -nested  qu...
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
kudiyarc
 
Cs501 rel algebra
Cs501 rel algebraCs501 rel algebra
Cs501 rel algebra
Kamal Singh Lodhi
 
Module 2 - part i
Module   2 - part iModule   2 - part i
Module 2 - part i
ParthNavale
 
SQL PPT.ppt
SQL PPT.pptSQL PPT.ppt
SQL PPT.ppt
hemamalinikrishnan2
 
Relation Algebra
Relation AlgebraRelation Algebra
Relation Algebra
A. S. M. Shafi
 
RDBMS
RDBMSRDBMS
RDBMS
NilaNila16
 
14. Query Optimization in DBMS
14. Query Optimization in DBMS14. Query Optimization in DBMS
14. Query Optimization in DBMS
koolkampus
 
Relational+algebra (1)
Relational+algebra (1)Relational+algebra (1)
Relational+algebra (1)
Mathan Mathan K
 
1643 y є r relational calculus-1
1643 y є r  relational calculus-11643 y є r  relational calculus-1
1643 y є r relational calculus-1
Dr Fereidoun Dejahang
 
Sql server select queries ppt 18
Sql server select queries ppt 18Sql server select queries ppt 18
Sql server select queries ppt 18
Vibrant Technologies & Computers
 
relational algebra Tuple Relational Calculus - database management system
relational algebra Tuple Relational Calculus - database management systemrelational algebra Tuple Relational Calculus - database management system
relational algebra Tuple Relational Calculus - database management system
Surya Swaroop
 
Intro to relational model
Intro to relational modelIntro to relational model
Intro to relational model
ATS SBGI MIRAJ
 
relational model.pptx
relational model.pptxrelational model.pptx
relational model.pptx
ThangamaniR3
 
DBMS ppt (1).pptx
DBMS ppt (1).pptxDBMS ppt (1).pptx
DBMS ppt (1).pptx
spresentskava
 

Similar to Relation model part 1 (20)

3.ppt
3.ppt3.ppt
3.ppt
 
Details of RDBMS.ppt
Details of RDBMS.pptDetails of RDBMS.ppt
Details of RDBMS.ppt
 
relational model in Database Management.ppt.ppt
relational model in Database Management.ppt.pptrelational model in Database Management.ppt.ppt
relational model in Database Management.ppt.ppt
 
Relational algebra operations
Relational algebra operationsRelational algebra operations
Relational algebra operations
 
Bab 5
Bab 5Bab 5
Bab 5
 
4. SQL in DBMS
4. SQL in DBMS4. SQL in DBMS
4. SQL in DBMS
 
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
Data Base Management system relation algebra ER diageam Sql Query -nested  qu...Data Base Management system relation algebra ER diageam Sql Query -nested  qu...
Data Base Management system relation algebra ER diageam Sql Query -nested qu...
 
Cs501 rel algebra
Cs501 rel algebraCs501 rel algebra
Cs501 rel algebra
 
Module 2 - part i
Module   2 - part iModule   2 - part i
Module 2 - part i
 
SQL PPT.ppt
SQL PPT.pptSQL PPT.ppt
SQL PPT.ppt
 
Relation Algebra
Relation AlgebraRelation Algebra
Relation Algebra
 
RDBMS
RDBMSRDBMS
RDBMS
 
14. Query Optimization in DBMS
14. Query Optimization in DBMS14. Query Optimization in DBMS
14. Query Optimization in DBMS
 
Relational+algebra (1)
Relational+algebra (1)Relational+algebra (1)
Relational+algebra (1)
 
1643 y є r relational calculus-1
1643 y є r  relational calculus-11643 y є r  relational calculus-1
1643 y є r relational calculus-1
 
Sql server select queries ppt 18
Sql server select queries ppt 18Sql server select queries ppt 18
Sql server select queries ppt 18
 
relational algebra Tuple Relational Calculus - database management system
relational algebra Tuple Relational Calculus - database management systemrelational algebra Tuple Relational Calculus - database management system
relational algebra Tuple Relational Calculus - database management system
 
Intro to relational model
Intro to relational modelIntro to relational model
Intro to relational model
 
relational model.pptx
relational model.pptxrelational model.pptx
relational model.pptx
 
DBMS ppt (1).pptx
DBMS ppt (1).pptxDBMS ppt (1).pptx
DBMS ppt (1).pptx
 

Recently uploaded

BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
EduSkills OECD
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
iammrhaywood
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
Wahiba Chair Training & Consulting
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
paigestewart1632
 

Recently uploaded (20)

BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
 

Relation model part 1

  • 1. Relational Model Chapter 2 ICT 2073 Prepare by : Ms. Siti Hajar Binti Ismail
  • 2. Learning Objective  Analyse the Relation Schema and Relation instance  Practice the relation algebra and calculus  Identify six keys in database  Analyze query language and null value
  • 3. Example of a Relation
  • 4. Attribute Types  Each attribute of a relation has a name  The set of allowed values for each attribute is called the domain of the attribute  Attribute values are (normally) required to be atomic; that is, indivisible ◦ E.g. the value of an attribute can be an account number, but cannot be a set of account numbers  Domain is said to be atomic if all its members are atomic  The special value null is a member of every domain
  • 5. Relation Schema  Formally, given domains D1, D2, …. Dn a relation r is a subset of D1 x D2 x … x Dn Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai  Di  Schema of a relation consists of ◦ attribute definitions  name  type/domain ◦ integrity constraints
  • 6. Relation Instance  The current values (relation instance) of a relation are specified by a table  An element t of r is a tuple, represented by a row in a table  Order of tuples is irrelevant (tuples may be stored in an arbitrary order) Jones Smith Curry Lindsay customer_name Main North North Park customer_street Harrison Rye Rye Pittsfield customer_city customer attributes (or columns) tuples (or rows)
  • 7. Database  A database consists of multiple relations  Information about an enterprise is broken up into parts, with each relation storing one part of the information  E.g. account : information about accounts depositor : which customer owns which account customer : information about customers
  • 10. Keys  Let K  R  K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) ◦ by “possible r ” we mean a relation r that could exist in the enterprise we are modeling. ◦ Example: {customer_name, customer_street} and {customer_name} are both superkeys of Customer, if no two customers can possibly have the same name
  • 11. Keys (Cont.)  K is a candidate key if K is minimal Example: {customer_name} is a candidate key for Customer, since it is a superkey and no subset of it is a superkey.  Primary key: a candidate key chosen as the principal means of identifying tuples within a relation ◦ Should choose an attribute whose value never, or very rarely, changes. ◦ E.g. email address is unique, but may change
  • 12. Foreign Keys  A relation schema may have an attribute that corresponds to the primary key of another relation. The attribute is called a foreign key. ◦ E.g. customer_name and account_number attributes of depositor are foreign keys to customer and account respectively. ◦ Only values occurring in the primary key attribute of the referenced relation may occur in the foreign key attribute of the referencing relation.
  • 14. Query Languages  Language in which user requests information from the database.  Categories of languages ◦ Procedural ◦ Non-procedural, or declarative  “Pure” languages: ◦ Relational algebra ◦ Tuple relational calculus ◦ Domain relational calculus  Pure languages form underlying basis of query languages that people use.
  • 15. Composition of Operations  Can build expressions using multiple operations  Example: A=C(r x s)  r x s  A=C(r x s) A B         1 1 1 1 2 2 2 2 C D         10 10 20 10 10 10 20 10 E a a b b a a b b A B C D E    1 2 2    10 10 20 a a b
  • 16. Banking Example branch (branch_name, branch_city, assets) customer (customer_name, customer_street, customer_city) account (account_number, branch_name, balance) loan (loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
  • 17. Example Queries  Find all loans of over $1200 n Find the loan number for each loan of an amount greater than $1200 amount > 1200 (loan) loan_number (amount > 1200 (loan)) n Find the names of all customers who have a loan, an account, or both, from the bank customer_name (borrower)  customer_name (depositor)
  • 18. Example Queries  Find the names of all customers who have a loan at the Perryridge branch. n Find the names of all customers who have a loan at the Perryridge branch but do not have an account at any branch of the bank. customer_name (branch_name = “Perryridge” (borrower.loan_number = loan.loan_number(borrower x loan))) – customer_name(depositor) customer_name (branch_name=“Perryridge” (borrower.loan_number = loan.loan_number(borrower x loan)))
  • 19. Example Queries  Find the names of all customers who have a loan at the Perryridge branch. l customer_name(loan.loan_number = borrower.loan_number ( (branch_name = “Perryridge” (loan)) x borrower)) l customer_name (branch_name = “Perryridge” ( borrower.loan_number = loan.loan_number (borrower x loan)))
  • 20. Bank Example Queries Find the largest account balance ◦ Strategy:  Find those balances that are not the largest  Rename account relation as d so that we can compare each account balance with all others  Use set difference to find those account balances that were not found in the earlier step. ◦ The query is: balance(account) - account.balance (account.balance < d.balance (account x rd (account)))
  • 21. Bank Example Queries  Find the name of all customers who have a loan at the bank and the loan amount n Find the names of all customers who have a loan and an account at bank. customer_name (borrower)  customer_name (depositor) customer_name, loan_number, amount (borrower loan)
  • 22. l Query 1 customer_name (branch_name = “Downtown” (depositor account ))  customer_name (branch_name = “Uptown” (depositor account)) l Query 2 customer_name, branch_name (depositor account)  rtemp(branch_name) ({(“Downtown” ), (“Uptown” )}) Note that Query 2 uses a constant relation. Bank Example Queries  Find all customers who have an account from at least the “Downtown” and the Uptown” branches.
  • 23. Bank Example Queries  Find all customers who have an account at all branches located in Brooklyn city. customer_name, branch_name (depositor account)  branch_name (branch_city = “Brooklyn” (branch))
  • 24. Relational Algebra  Procedural language  Six basic operators ◦ select:  ◦ project:  ◦ union:  ◦ set difference: – ◦ Cartesian product: x ◦ rename: r  The operators take one or two relations as inputs and produce a new relation as a result.
  • 25. Select Operation – Example n Relation r A B C D         1 5 12 23 7 7 3 10  A=B ^ D > 5 (r) A B C D     1 23 7 10
  • 26. Project Operation – Example  Relation r: A B C     10 20 30 40 1 1 1 2 A C     1 1 1 2 = A C    1 1 2 A,C (r)
  • 27. Union Operation – Example Relations r, s: n r  s: A B    1 2 1 A B   2 3 r s A B     1 2 1 3
  • 28. Set Difference Operation – Example  Relations r, s: n r – s: A B    1 2 1 A B   2 3 r s A B   1 1
  • 29. Cartesian-Product Operation – Example n Relations r, s: n r x s: A B   1 2 A B         1 1 1 1 2 2 2 2 C D         10 10 20 10 10 10 20 10 E a a b b a a b b C D     10 10 20 10 E a a b br s
  • 30. Rename Operation Allows us to name, and therefore to refer to, the results of relational-algebra expressions.  Allows us to refer to a relation by more than one name.  Example: r x (E) returns the expression E under the name X  If a relational-algebra expression E has arity n, then returns the result of expression E under the name X, and with the attributes renamed to A1 , A2 , …., An . )(),...,,( 21 EnAAAxr
  • 31. Additional Operations  Additional Operations ◦ Set intersection ◦ Natural join ◦ Aggregation ◦ Outer Join ◦ Division  All above, other than aggregation, can be expressed using basic operations we have seen earlier
  • 32. Set-Intersection Operation – Example  Relation r, s:  r  s A B    1 2 1 A B   2 3 r s A B  2
  • 33. Natural Join Operation – Example Relations r, s: A B      1 2 4 1 2 C D      a a b a b B 1 3 1 2 3 D a a a b b E      r A B      1 1 1 1 2 C D      a a a a b E      s n r s
  • 34. n Notation: r s Natural-Join Operation  Let r and s be relations on schemas R and S respectively. Then, r s is a relation on schema R  S obtained as follows: ◦ Consider each pair of tuples tr from r and ts from s. ◦ If tr and ts have the same value on each of the attributes in R  S, add a tuple t to the result, where  t has the same value as tr on r  t has the same value as ts on s  Example: R = (A, B, C, D) S = (E, B, D) ◦ Result schema = (A, B, C, D, E) ◦ r s is defined as: r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))
  • 35. Aggregate Functions and Operations  Aggregation function takes a collection of values and returns a single value as a result. avg: average value min: minimum value max: maximum value sum: sum of values count: number of values  Aggregate operation in relational algebra E is any relational-algebra expression ◦ G1, G2 …, Gn is a list of attributes on which to group (can be empty) ◦ Each Fi is an aggregate function ◦ Each Ai is an attribute name )()(,,(),(,,, 221121 Ennn AFAFAFGGG  
  • 36. Aggregate Operation – Example Relation r: A B         C 7 7 3 10 n g sum(c) (r) sum(c ) 27 n Question: Which aggregate operations cannot be expressed using basic relational operations?
  • 37. Aggregate Operation – Example Relation account grouped by branch-name: branch_name g sum(balance) (account) branch_name account_number balance Perryridge Perryridge Brighton Brighton Redwood A-102 A-201 A-217 A-215 A-222 400 900 750 750 700 branch_name sum(balance) Perryridge Brighton Redwood 1300 1500 700
  • 38. Aggregate Functions (Cont.)  Result of aggregation does not have a name ◦ Can use rename operation to give it a name ◦ For convenience, we permit renaming as part of aggregate operation branch_name g sum(balance) as sum_balance (account)
  • 39. Outer Join  An extension of the join operation that avoids loss of information.  Computes the join and then adds tuples form one relation that does not match tuples in the other relation to the result of the join.  Uses null values: ◦ null signifies that the value is unknown or does not exist ◦ All comparisons involving null are (roughly speaking) false by definition.  We shall study precise meaning of comparisons with nulls later
  • 40. Outer Join – Example  Relation loan n Relation borrower customer_name loan_number Jones Smith Hayes L-170 L-230 L-155 3000 4000 1700 loan_number amount L-170 L-230 L-260 branch_name Downtown Redwood Perryridge
  • 41. Outer Join – Example  Join loan borrower loan_number amount L-170 L-230 3000 4000 customer_name Jones Smith branch_name Downtown Redwood Jones Smith null loan_number amount L-170 L-230 L-260 3000 4000 1700 customer_namebranch_name Downtown Redwood Perryridge n Left Outer Join loan borrower
  • 42. Outer Join – Example loan_number amount L-170 L-230 L-155 3000 4000 null customer_name Jones Smith Hayes branch_name Downtown Redwood null loan_number amount L-170 L-230 L-260 L-155 3000 4000 1700 null customer_name Jones Smith null Hayes branch_name Downtown Redwood Perryridge null n Full Outer Join loan borrower n Right Outer Join loan borrower n Question: can outerjoins be expressed using basic relational algebra operations
  • 43. Null Values  It is possible for tuples to have a null value, denoted by null, for some of their attributes  null signifies an unknown value or that a value does not exist.  The result of any arithmetic expression involving null is null.  Aggregate functions simply ignore null values (as in SQL)  For duplicate elimination and grouping, null is treated like any other value, and two nulls are assumed to be the same (as in SQL)
  • 44. Null Values  Comparisons with null values return the special truth value: unknown ◦ If false was used instead of unknown, then not (A < 5) would not be equivalent to A >= 5  Three-valued logic using the truth value unknown: ◦ OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown ◦ AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown ◦ NOT: (not unknown) = unknown ◦ In SQL “P is unknown” evaluates to true if predicate P evaluates to unknown  Result of select predicate is treated as false if it evaluates to unknown
  • 45. Division Operation  Notation:  Suited to queries that include the phrase “for all”.  Let r and s be relations on schemas R and S respectively where ◦ R = (A1, …, Am , B1, …, Bn ) ◦ S = (B1, …, Bn) The result of r  s is a relation on schema R – S = (A1, …, Am) r  s = { t | t   R-S (r)   u  s ( tu  r ) } Where tu means the concatenation of tuples t and u to produce a single tuple r  s
  • 46. Division Operation – Example n Relations r, s: n r  s: A B   1 2 A B            1 2 3 1 1 1 3 4 6 1 2 r s
  • 47. Another Division Example A B         a a a a a a a a C D         a a b a b a b b E 1 1 1 1 3 1 1 1 n Relations r, s: n r  s: D a b E 1 1 A B   a a C   r s
  • 48. Division Operation (Cont.)  Property ◦ Let q = r  s ◦ Then q is the largest relation satisfying q x s  r  Definition in terms of the basic algebra operation Let r(R) and s(S) be relations, and let S  R r  s = R-S (r ) – R-S ( ( R-S (r ) x s ) – R-S,S(r )) To see why ◦ R-S,S (r) simply reorders attributes of r ◦ R-S (R-S (r ) x s ) – R-S,S(r) ) gives those tuples t in R-S (r ) such that for some tuple u  s, tu  r.
  • 49. Learning Outcome Student will be able to:  Briefly explain six types of keys in database  Use query language to get sample data from the database  Identify the null value