Chapter 2: Intro To Relational Model

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 31

Chapter 2: Intro to Relational Model

Database System Concepts, 6th Ed.


©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Example of a Relation

attributes
(or columns)

tuples
(or rows)

Database System Concepts - 6th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Attribute Types

 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
 The special value null is a member of every domain. Indicated
that the value is “unknown”
 The null value causes complications in the definition of many
operations

Database System Concepts - 6th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
 A1, A2, …, An are attributes

 R = (A1, A2, …, An ) is a relation schema


Example:
instructor = (ID, name, dept_name, salary)
 Formally, given sets 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

 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

Database System Concepts - 6th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Relations are Unordered

 Order of tuples is irrelevant (tuples may be stored in an arbitrary order)


 Example: instructor relation with unordered tuples

Database System Concepts - 6th Edition 2.5 ©Silberschatz, Korth and Sudarshan
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)
 Example: {ID} and {ID,name} are both superkeys of instructor.
 Superkey K is a candidate key if K is minimal
Example: {ID} is a candidate key for Instructor
 One of the candidate keys is selected to be the primary key.
 which one?
 Foreign key constraint: Value in one relation must appear in another
 Referencing relation
 Referenced relation
 Example – dept_name in instructor is a foreign key from instructor
referencing department

Database System Concepts - 6th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University Database

Database System Concepts - 6th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Relational Query Languages
 Procedural vs .non-procedural, or declarative
 “Pure” languages:
 Relational algebra
 Tuple relational calculus
 Domain relational calculus
 The above 3 pure languages are equivalent in computing power
 We will concentrate in this chapter on relational algebra
 Not turning-machine equivalent
 consists of 6 basic operations

Database System Concepts - 6th Edition 2.8 ©Silberschatz, Korth and Sudarshan
To call back

Query on set of relations produces


relation as a result

Database System Concepts - 6th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Examples:
 Simple college admissions database

College(cName,state,enrollment)
Student(sID,sName,GPA,sizeHS)
Apply(sID,cName,major,decision)
Apply
College

cName state enroll sID cName Maj Dec

Student

sID sName GP HS
A

Database System Concepts - 6th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Cont.
 Simple Query: Relation name

sID sName GP HS
Student - A

Apply
College

cName state enroll sID cName Maj Dec

Student

sID sName GP HS
A

Database System Concepts - 6th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Use operators to filter, silce, combine
 Select operator: picks certain rows
sID sName GPA HS
Student 1818 Ahmed 3 4
29 Ali 3.8 40

1. Student with GPA > 3.7


sID sName GPA HS
 GPA > 3.7 (Student) 29 Ali 3.8 40

2. Student with GPA>3.7 and HS<1000


GPA<3.7 ^ HS<1000 (Student) sID sName GPA HS
1818 Ahmed 3 4

3. Applications to stanford CS major

Database System Concepts - 6th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Select Operation – selection of rows (tuples)
 Relation r

A=B ^ D > 5 (r)

Database System Concepts - 6th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Use operators to filter, silce, combine
 Project operator: picks certain columns
sID cName Maj Dec
Apply
1818 stanford CS Accepted
29 Marej Bio Accepted
1. Student id and college
sID cName
 sID,cName (Apply)
1818 stanford
29 Marej

2. ID and name of student with GPA>3.7


 sID,sName (GPA<3.7 (Student)) sID sName
1818 Ahmed

3. sID with Applications to stanford CS major

Database System Concepts - 6th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Project Operation – selection of columns (Attributes)

 Relation r:

 A,C (r)

Database System Concepts - 6th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Cross-product: combine two relations
 Cartesian product
Student Apply
sID sName GPA HS sID cName Maj Dec
1818 Ahmed 3 4 1818 stanford CS Accepted
29 Ali 3.8 40 29 Marej Bio Accepted

- Student X Apply
1. Names and GPAs of students with HS >1000 who applied CS and
were rejected.
?
2. name of student who study at CS
 s.sName (s.sID=a.sID ^ maj=‘CS’ (Student X Apply))

Database System Concepts - 6th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Cross-product .cont
# Note: student as s and Apply as a

s.sID s.sName s.GPA s.HS a.sID a.cName a.Maj a.Dec


1818 Ahmed 3 4 1818 stanford CS Accepted
29 Ali 3.8 40 29 Marej Bio Accepted
1818 Ahmed 3 4 29 Marej Bio Accepted
29 Ali 3.8 40 1818 stanford CS Accepted

Database System Concepts - 6th Edition 2.17 ©Silberschatz, Korth and Sudarshan
joining two relations -- Cartesian-product
 Relations r, s:

 r x s:

Database System Concepts - 6th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Natural Join

Enforce equality on all attributes with same name.


Eliminate one copy of duplicate attributes.

Student Apply

sID sName GPA HS cName Maj Dec


1818 Ahmed 3 4 stanford CS Accepted
29 Ali 3.8 40 Marej Bio Accepted
EX: Names and GPAs of students with HS>500 who applied to CS and were accepted.

 sName,GPA (  HS>500 ^ maj=‘CS’ ^ dec=‘Accepted’( Student Apply ))

Q: Names and GPAs of students with HS>500 who applied to CS at college with enr >2000
and were accepted

Database System Concepts - 6th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Natural Join Example
 Relations r, s:

 Natural Join
 R s

 A, r.B, C, r.D, E ( r.B = s.B ˄ r.D = s.D (r x s)))

Database System Concepts - 6th Edition 2.20 ©Silberschatz, Korth and Sudarshan
Cartesian-product – naming issue
 Relations r, s: B

 r x s: r.B s.B

Database System Concepts - 6th Edition 2.21 ©Silberschatz, Korth and Sudarshan
Renaming a Table
 Allows us to refer to a relation, (say E) by more than one name.
 x (E)

returns the expression E under the name X

 Relations r

 r x  s (r) r.A r.B s.A s.B


α 1 α 1
α 1 β 2
β 2 α 1
β 2 β 2

Database System Concepts - 6th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Union of two relations
 Relations r, s:

 r  s:

Database System Concepts - 6th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Set difference of two relations
 Relations r, s:

 r – s:

Database System Concepts - 6th Edition 2.24 ©Silberschatz, Korth and Sudarshan
Set intersection of two relations

 Relation r, s:

 rs

Note: r  s = r – (r – s)

Database System Concepts - 6th Edition 2.25 ©Silberschatz, Korth and Sudarshan
Composition of Operations
 Can build expressions using multiple operations
 Example: A=C (r x s)

 rxs

 A=C (r x s)

Database System Concepts - 6th Edition 2.26 ©Silberschatz, Korth and Sudarshan
Joining two relations – Natural Join
 Let r and s be relations on schemas R and S respectively.
Then, the “natural join” of relations R and 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

Database System Concepts - 6th Edition 2.27 ©Silberschatz, Korth and Sudarshan
Natural join. note

Database System Concepts - 6th Edition 2.28 ©Silberschatz, Korth and Sudarshan
Notes about Relational Languages
 Each Query input is a table (or set of tables)
 Each query output is a table.
 All data in the output table appears in one of the input tables
 Relational Algebra is not Turning complete
 Can we compute:
 SUM
 AVG
 MAX
 MIN

Database System Concepts - 6th Edition 2.29 ©Silberschatz, Korth and Sudarshan
Summary of Relational Algebra Operators
Symbol (Name) Example of Use
σ
σ
(Selection) salary > = 85000 (instructor)
Return rows of the input relation that satisfy the predicate.
Π
Π
(Projection) ID, salary (instructor)
Output specified attributes from all rows of the input relation. Remove
duplicate tuples from the output.
x
(Cartesian Product) instructor x department
Output pairs of rows from the two input relations that have the same value on
all attributes that have the same name.

Π ∪ Π
(Union) name (instructor) name (student)
Output the union of tuples from the two input relations.
-
Π -- Π
(Set Difference) name (instructor) name (student)
Output the set difference of tuples from the two input relations.

(Natural Join) instructor ⋈ department
Output pairs of rows from the two input relations that have the same value on
all attributes that have the same name.

Database System Concepts - 6th Edition 2.30 ©Silberschatz, Korth and Sudarshan
End of Chapter 2

Database System Concepts, 6th Ed.


©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use

You might also like