SlideShare uma empresa Scribd logo
1 de 49
Chapter 3: Relational Model
Structure of Relational Databases
Relational Algebra
Tuple Relational Calculus
Domain Relational Calculus
Extended Relational-Algebra-Operations
Modification of the Database
Views

Database System Concepts

3.1

©Silberschatz, Korth and Sudarshan
Example of a Relation

Database System Concepts

3.2

©Silberschatz, Korth and Sudarshan
Basic Structure
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
Example: if
customer-name = {Jones, Smith, Curry, Lindsay}
customer-street = {Main, North, Park}
customer-city = {Harrison, Rye, Pittsfield}
Then r = { (Jones, Main, Harrison),
(Smith, North, Rye),
(Curry, North, Rye),
(Lindsay, Park, Pittsfield)}
is a relation over customer-name x customer-street x customer-city

Database System Concepts

3.3

©Silberschatz, Korth and Sudarshan
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. multivalued attribute values are not atomic
E.g. composite attribute values are not atomic

The special value null is a member of every domain
The null value causes complications in the definition of many
operations
we shall ignore the effect of null values in our main presentation
and consider their effect later

Database System Concepts

3.4

©Silberschatz, Korth and Sudarshan
Relation Schema
A1, A2, …, An are attributes
R = (A1, A2, …, An ) is a relation schema
E.g. Customer-schema =
(customer-name, customer-street, customer-city)
r(R) is a relation on the relation schema R
E.g.

Database System Concepts

customer (Customer-schema)

3.5

©Silberschatz, Korth and Sudarshan
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

attributes
(or columns)
customer-name customer-street
Jones
Smith
Curry
Lindsay

Main
North
North
Park

customer-city
Harrison
Rye
Rye
Pittsfield

tuples
(or rows)

customer

Database System Concepts

3.6

©Silberschatz, Korth and Sudarshan
Relations are Unordered
Order of tuples is irrelevant (tuples may be stored in an arbitrary order)
E.g. account relation with unordered tuples

Database System Concepts

3.7

©Silberschatz, Korth and Sudarshan
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 : stores information about accounts
depositor : stores information about which customer
owns which account
customer : stores information about customers
Storing all information as a single relation such as
bank(account-number, balance, customer-name, ..)
results in
repetition of information (e.g. two customers own an account)
the need for null values (e.g. represent a customer without an
account)

Normalization theory (Chapter 7) deals with how to design
relational schemas

Database System Concepts

3.8

©Silberschatz, Korth and Sudarshan
The customer Relation

Database System Concepts

3.9

©Silberschatz, Korth and Sudarshan
The depositor Relation

Database System Concepts

3.10

©Silberschatz, Korth and Sudarshan
E-R Diagram for the Banking
Enterprise

Database System Concepts

3.11

©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)
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.

K is a candidate key if K is minimal
Example: {customer-name} is a candidate key for Customer,
since it is a superkey (assuming no two customers can possibly
have the same name), and no subset of it is a superkey.

Database System Concepts

3.12

©Silberschatz, Korth and Sudarshan
Determining Keys from E-R Sets
Strong entity set. The primary key of the entity set becomes
the primary key of the relation.
Weak entity set. The primary key of the relation consists of
the union of the primary key of the strong entity set and the
discriminator of the weak entity set.
Relationship set. The union of the primary keys of the related
entity sets becomes a super key of the relation.
For binary many-to-one relationship sets, the primary key of the
“many” entity set becomes the relation’s primary key.
For one-to-one relationship sets, the relation’s primary key can be
that of either entity set.
For many-to-many relationship sets, the union of the primary keys
becomes the relation’s primary key

Database System Concepts

3.13

©Silberschatz, Korth and Sudarshan
Schema Diagram for the Banking
Enterprise

Database System Concepts

3.14

©Silberschatz, Korth and Sudarshan
Query Languages
Language in which user requests information from the database.
Categories of languages
procedural
non-procedural

“Pure” languages:
Relational Algebra
Tuple Relational Calculus
Domain Relational Calculus

Pure languages form underlying basis of query languages that
people use.

Database System Concepts

3.15

©Silberschatz, Korth and Sudarshan
Relational Algebra
Procedural language
Six basic operators
select
project
union
set difference
Cartesian product
rename

The operators take one or more relations as inputs and give a
new relation as a result.

Database System Concepts

3.16

©Silberschatz, Korth and Sudarshan
Select Operation – Example

• Relation r

A

B

C

D

1

7

5

7

12

3

23 10

•

A=B ^ D > 5

(r)
A

B

C

D

1

7

23 10
Database System Concepts

3.17

©Silberschatz, Korth and Sudarshan
Select Operation
Notation:

σ p(r)

p is called the selection predicate
Defined as:

σp(r) = {t | t ∈ r and p(t)}
Where p is a formula in propositional calculus consisting
of terms connected by : ∧ (and), ∨ (or), ¬ (not)
Each term is one of:
<attribute> op <attribute> or <constant>
where op is one of: =, ≠, >, ≥. <. ≤
Example of selection:
σ branch-name=“Perryridge”(account)

Database System Concepts

3.18

©Silberschatz, Korth and Sudarshan
Project Operation – Example

A

1
1

40
A

1

30

(r)

C

20

A,C

B
10

Relation r:

2

C

A

1

1
1
1

C

=

1
2

2
Database System Concepts

3.19

©Silberschatz, Korth and Sudarshan
Project Operation
Notation:
∏A1, A2, …, Ak (r)
where A1, A2 are attribute names and r is a relation name.
The result is defined as the relation of k columns obtained by
erasing the columns that are not listed
Duplicate rows removed from result, since relations are sets
E.g. To eliminate the branch-name attribute of account
∏account-number, balance (account)

Database System Concepts

3.20

©Silberschatz, Korth and Sudarshan
Union Operation – Example
Relations r, s:

A

B

A

B

1

2

2

3

1

s

r

r  s:

A

B
1
2
1
3

Database System Concepts

3.21

©Silberschatz, Korth and Sudarshan
Union Operation
Notation: r ∪ s
Defined as:
r ∪ s = {t | t ∈ r or t ∈ s}
For r ∪ s to be valid.
1. r, s must have the same arity (same number of attributes)
2. The attribute domains must be compatible (e.g., 2nd column
of r deals with the same type of values as does the 2nd
column of s)
E.g. to find all customers with either an account or a loan
∏customer-name (depositor) ∪ ∏customer-name (borrower)

Database System Concepts

3.22

©Silberschatz, Korth and Sudarshan
Set Difference Operation – Example
Relations r, s:

A

B

A

B

1

2

2

3

1

s

r

r – s:

A

B
1
1

Database System Concepts

3.23

©Silberschatz, Korth and Sudarshan
Set Difference Operation
Notation r – s
Defined as:
r – s = {t | t ∈ r and t ∉ s}
Set differences must be taken between compatible relations.
r and s must have the same arity
attribute domains of r and s must be compatible

Database System Concepts

3.24

©Silberschatz, Korth and Sudarshan
Cartesian-Product OperationExample
Relations r, s:

A

B

C

2
r

E

10
10
20
10

1

D

a
a
b
b

s

r x s:
A

B
1
1
1
1
2
2
2
2

Database System Concepts

C

D

E

10
10
20
10
10
10
20
10

a
a
b
b
a
a
b
b
3.25

©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation
Notation r x s
Defined as:
r x s = {t q | t ∈ r and q ∈ s}
Assume that attributes of r(R) and s(S) are disjoint. (That is,
R ∩ S = ∅).
If attributes of r(R) and s(S) are not disjoint, then renaming must
be used.

Database System Concepts

3.26

©Silberschatz, Korth and Sudarshan
Composition of Operations
Can build expressions using multiple operations
Example: σA=C(r x s)
rxs

A

B

C

σA=C(r x s)

A

B
1
2
2

Database System Concepts

3.27

a
a
b
b
a
a
b
b

D

E

10
20
20

C

E

10
10
20
10
10
10
20
10

1
1
1
1
2
2
2
2

D

a
a
b

©Silberschatz, Korth and Sudarshan
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:

ρ x (E)
returns the expression E under the name X
If a relational-algebra expression E has arity n, then

ρx (A1, A2, …, An) (E)
returns the result of expression E under the name X, and with the
attributes renamed to A1, A2, …., An.

Database System Concepts

3.28

©Silberschatz, Korth and Sudarshan
Banking Example
branch (branch-name, branch-city, assets)
customer (customer-name, customer-street, customer-only)
account (account-number, branch-name, balance)
loan (loan-number, branch-name, amount)
depositor (customer-name, account-number)
borrower (customer-name, loan-number)

Database System Concepts

3.29

©Silberschatz, Korth and Sudarshan
Example Queries
Find all loans of over $1200

amount > 1200

(loan)

Find the loan number for each loan of an amount greater than
$1200
loan-number

Database System Concepts

(

amount > 1200

3.30

(loan))

©Silberschatz, Korth and Sudarshan
Example Queries
Find the names of all customers who have a loan, an account, or
both, from the bank
customer-name

(borrower)

customer-name

(depositor)

Find the names of all customers who have a loan and an
account at bank.
customer-name

Database System Concepts

(borrower)

3.31

customer-name

(depositor)

©Silberschatz, Korth and Sudarshan
Example Queries
Find the names of all customers who have a loan at the Perryridge
branch.
customer-name

(

(

branch-name=“Perryridge”

borrower.loan-number = loan.loan-number(borrower

x loan)))

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)

Database System Concepts

3.32

©Silberschatz, Korth and Sudarshan
Example Queries
Find the names of all customers who have a loan at the Perryridge
branch.
−Query 1
customer-name(

branch-name = “Perryridge”

(

borrower.loan-number = loan.loan-number(borrower

x loan)))

Query 2
customer-name(

(

Database System Concepts

loan.loan-number = borrower.loan-number(

branch-name = “Perryridge”(loan))

3.33

x borrower))

©Silberschatz, Korth and Sudarshan
Example Queries
Find the largest account balance
Rename account relation as d
The query is:
balance(account)

(

Database System Concepts

-

account.balance

account.balance < d.balance

(account x ρd (account)))

3.34

©Silberschatz, Korth and Sudarshan
Formal Definition
A basic expression in the relational algebra consists of either one
of the following:
A relation in the database
A constant relation

Let E1 and E2 be relational-algebra expressions; the following are
all relational-algebra expressions:
E1 ∪ E2
E1 - E2
E1 x E2

σp (E1), P is a predicate on attributes in E1
∏s(E1), S is a list consisting of some of the attributes in E1

ρ x (E1), x is the new name for the result of E1
Database System Concepts

3.35

©Silberschatz, Korth and Sudarshan
Additional Operations
We define additional operations that do not add any power to the
relational algebra, but that simplify common queries.
Set intersection
Natural join
Division
Assignment

Database System Concepts

3.36

©Silberschatz, Korth and Sudarshan
Set-Intersection Operation
Notation: r ∩ s
Defined as:
r ∩ s ={ t | t ∈ r and t ∈ s }
Assume:
r, s have the same arity
attributes of r and s are compatible

Note: r ∩ s = r - (r - s)

Database System Concepts

3.37

©Silberschatz, Korth and Sudarshan
Set-Intersection Operation - Example
Relation r, s:

A

B

A

B

1
2
1

2
3

r

r∩s

A

s

B
2

Database System Concepts

3.38

©Silberschatz, Korth and Sudarshan
Natural-Join Operation
Notation: r

s

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:

Database System Concepts

3.39

©Silberschatz, Korth and Sudarshan
Natural Join Operation – Example
Relations r, s:
A

C

1
2
4
1
2

D

B

D

a
a
b
a
b

B

1
3
1
2
3

a
a
a
b
b

r

r

s

s
A

B
1
1
1
1
2

Database System Concepts

E

C

D

E

a
a
a
a
b
3.40

©Silberschatz, Korth and Sudarshan
Division Operation
rs
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 ) }

Database System Concepts

3.41

©Silberschatz, Korth and Sudarshan
Division Operation – Example
Relations r, s:

A

B
1
2
3
1
1
1
3
4
6
1
2

r

s:

Database System Concepts

A

B
1
2
s

r

3.42

©Silberschatz, Korth and Sudarshan
Another Division Example
Relations r, s:

A

B

C

E

D

E

a
a
b
a
b
a
b
b

a
a
a
a
a
a
a
a

D

1
1
1
1
3
1
1
1

a
b

1
1
s

r

r

s:

A

B

C

a
a

Database System Concepts

3.43

©Silberschatz, Korth and Sudarshan
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.
Database System Concepts

3.44

©Silberschatz, Korth and Sudarshan
Assignment Operation
The assignment operation (←) provides a convenient way to
express complex queries.
Write query as a sequential program consisting of
a series of assignments
followed by an expression whose value is displayed as a result of
the query.
Assignment must always be made to a temporary relation variable.

Example: Write r ÷ s as
temp1 ← ∏R-S (r)
temp2 ← ∏R-S ((temp1 x s) – ∏R-S,S (r))
result = temp1 – temp2
The result to the right of the ← is assigned to the relation variable on
the left of the ←.
May use variable in subsequent expressions.

Database System Concepts

3.45

©Silberschatz, Korth and Sudarshan
Example Queries
Find all customers who have an account from at least the
“Downtown” and the Uptown” branches.
Query 1
CN(

BN=“Downtown”(depositor
CN(

account))

BN=“Uptown”(depositor

account))

where CN denotes customer-name and BN denotes
branch-name.
Query 2
customer-name, branch-name (depositor

account)

temp(branch-name) ({(“Downtown”),

Database System Concepts

3.46

(“Uptown”)})

©Silberschatz, Korth and Sudarshan
Example Queries
Find all customers who have an account at all branches located
in Brooklyn city.
customer-name, branch-name
branch-name

Database System Concepts

(

(depositor

branch-city = “Brooklyn”

3.47

account)

(branch))

©Silberschatz, Korth and Sudarshan
CourseWork
Kasus supermarket penjualan barang, nyatakan dalam aljabar
relasional
Tabel: pegawai, barang, transaksi, detil_transaksi, pelanggan
Soal:
1. Dapatkan nama barang yang memiliki harga paling mahal
2. Dapatkan transaksi yang paling besar nilai transaksinya
3. Dapatkan daftar pegawai yang berasal dari malang
4. Daparkan daftar pegawai yang minimal 5 tahun akan pensiun
5. Dapatkan nama pegawai yang melakukan transaksi pada bulan
Maret 2011
6. Dapatkan barang yang paling laku (jumlah terbanyak dalam
transaksi)
7. Dapatkan daftar pegawai dan jumlah transaksi yang ditangani
8. Dapatkan kode barang, nama barang, dan total transaksi yang
dihasilkan dari barang dengan nama “Indomie goreng”
Database System Concepts

3.48

©Silberschatz, Korth and Sudarshan
CourseWork
Kasus supermarket penjualan barang, nyatakan dalam aljabar
relasional
Tabel: pegawai, barang, transaksi, detil_transaksi, pelanggan
Soal:
9. Dapatkan Bagian, dan jumlah personal yang bertugas pada bagian
tersebut
10. Dapatkan total seluruh transaksi

Kumpulkan 1 kamis depan.

Database System Concepts

3.49

©Silberschatz, Korth and Sudarshan

Mais conteúdo relacionado

Mais procurados

Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...Beat Signer
 
chapter2 Relational Model
  chapter2  Relational Model  chapter2  Relational Model
chapter2 Relational ModelMrsGAmudhaIT
 
Database Assignment
Database AssignmentDatabase Assignment
Database AssignmentJayed Imran
 
5. Other Relational Languages in DBMS
5. Other Relational Languages in DBMS5. Other Relational Languages in DBMS
5. Other Relational Languages in DBMSkoolkampus
 
2 beginning problem solving concepts for the computer
2 beginning problem solving concepts for the computer2 beginning problem solving concepts for the computer
2 beginning problem solving concepts for the computerRheigh Henley Calderon
 
Module 2 - part i
Module   2 - part iModule   2 - part i
Module 2 - part iParthNavale
 
Relational algebra.pptx
Relational algebra.pptxRelational algebra.pptx
Relational algebra.pptxRUpaliLohar
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMSkoolkampus
 
The relational data model part[1]
The relational data model part[1]The relational data model part[1]
The relational data model part[1]Bashir Rezaie
 
The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...
The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...
The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...Raj vardhan
 
Relational algebra
Relational algebraRelational algebra
Relational algebrashynajain
 
Fundamentals of database system - Relational data model and relational datab...
Fundamentals of database system  - Relational data model and relational datab...Fundamentals of database system  - Relational data model and relational datab...
Fundamentals of database system - Relational data model and relational datab...Mustafa Kamel Mohammadi
 
Additional Relational Algebra Operations
Additional Relational Algebra OperationsAdditional Relational Algebra Operations
Additional Relational Algebra OperationsA. S. M. Shafi
 
Dbms ii mca-ch3-er-model-2013
Dbms ii mca-ch3-er-model-2013Dbms ii mca-ch3-er-model-2013
Dbms ii mca-ch3-er-model-2013Prosanta Ghosh
 
Relational database intro for marketers
Relational database intro for marketersRelational database intro for marketers
Relational database intro for marketersSteve Finlay
 
Database : Relational Data Model
Database : Relational Data ModelDatabase : Relational Data Model
Database : Relational Data ModelSmriti Jain
 

Mais procurados (19)

Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
Relational Model and Relational Algebra - Lecture 3 - Introduction to Databas...
 
ch3
ch3ch3
ch3
 
chapter2 Relational Model
  chapter2  Relational Model  chapter2  Relational Model
chapter2 Relational Model
 
App b
App bApp b
App b
 
Database Assignment
Database AssignmentDatabase Assignment
Database Assignment
 
5. Other Relational Languages in DBMS
5. Other Relational Languages in DBMS5. Other Relational Languages in DBMS
5. Other Relational Languages in DBMS
 
check 11
check 11check 11
check 11
 
2 beginning problem solving concepts for the computer
2 beginning problem solving concepts for the computer2 beginning problem solving concepts for the computer
2 beginning problem solving concepts for the computer
 
Module 2 - part i
Module   2 - part iModule   2 - part i
Module 2 - part i
 
Relational algebra.pptx
Relational algebra.pptxRelational algebra.pptx
Relational algebra.pptx
 
3. Relational Models in DBMS
3. Relational Models in DBMS3. Relational Models in DBMS
3. Relational Models in DBMS
 
The relational data model part[1]
The relational data model part[1]The relational data model part[1]
The relational data model part[1]
 
The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...
The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...
The Relational Data Model and Relational Database Constraints Ch5 (Navathe 4t...
 
Relational algebra
Relational algebraRelational algebra
Relational algebra
 
Fundamentals of database system - Relational data model and relational datab...
Fundamentals of database system  - Relational data model and relational datab...Fundamentals of database system  - Relational data model and relational datab...
Fundamentals of database system - Relational data model and relational datab...
 
Additional Relational Algebra Operations
Additional Relational Algebra OperationsAdditional Relational Algebra Operations
Additional Relational Algebra Operations
 
Dbms ii mca-ch3-er-model-2013
Dbms ii mca-ch3-er-model-2013Dbms ii mca-ch3-er-model-2013
Dbms ii mca-ch3-er-model-2013
 
Relational database intro for marketers
Relational database intro for marketersRelational database intro for marketers
Relational database intro for marketers
 
Database : Relational Data Model
Database : Relational Data ModelDatabase : Relational Data Model
Database : Relational Data Model
 

Destaque (20)

E3 chap-19
E3 chap-19E3 chap-19
E3 chap-19
 
Aksioma Peluang
Aksioma PeluangAksioma Peluang
Aksioma Peluang
 
Imk pertemuan-2-compress
Imk pertemuan-2-compressImk pertemuan-2-compress
Imk pertemuan-2-compress
 
Kitab sistem operasi 4.0 [masyarakat digital gotong royong]
Kitab sistem operasi 4.0 [masyarakat digital gotong royong]Kitab sistem operasi 4.0 [masyarakat digital gotong royong]
Kitab sistem operasi 4.0 [masyarakat digital gotong royong]
 
Hci [2]human
Hci [2]humanHci [2]human
Hci [2]human
 
E3 chap-04-extra
E3 chap-04-extraE3 chap-04-extra
E3 chap-04-extra
 
Ch19
Ch19Ch19
Ch19
 
Hci [1]introduction
Hci [1]introductionHci [1]introduction
Hci [1]introduction
 
Hci [3]computer
Hci [3]computerHci [3]computer
Hci [3]computer
 
Ch20
Ch20Ch20
Ch20
 
E3 chap-07
E3 chap-07E3 chap-07
E3 chap-07
 
Ch23
Ch23Ch23
Ch23
 
Ch3 processes
Ch3   processesCh3   processes
Ch3 processes
 
Ch14 security
Ch14   securityCh14   security
Ch14 security
 
E3 chap-17-extra
E3 chap-17-extraE3 chap-17-extra
E3 chap-17-extra
 
Ch18
Ch18Ch18
Ch18
 
Ch10
Ch10Ch10
Ch10
 
Proses stokastik
Proses stokastikProses stokastik
Proses stokastik
 
E3 chap-05
E3 chap-05E3 chap-05
E3 chap-05
 
JVM Hardcore - Part 18 - Converting a logical expression into bytecode
JVM Hardcore - Part 18 - Converting a logical expression into bytecodeJVM Hardcore - Part 18 - Converting a logical expression into bytecode
JVM Hardcore - Part 18 - Converting a logical expression into bytecode
 

Semelhante a Ch3 a (20)

relational algebra and calculus queries .ppt
relational algebra and calculus queries .pptrelational algebra and calculus queries .ppt
relational algebra and calculus queries .ppt
 
Ch14
Ch14Ch14
Ch14
 
Relational Model
Relational ModelRelational Model
Relational Model
 
03 Relational Databases.ppt
03 Relational Databases.ppt03 Relational Databases.ppt
03 Relational Databases.ppt
 
3.ppt
3.ppt3.ppt
3.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
 
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybbjhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
 
ch2.ppt
ch2.pptch2.ppt
ch2.ppt
 
Lllll
LllllLllll
Lllll
 
Lecture_W9_Normalization.ppt
Lecture_W9_Normalization.pptLecture_W9_Normalization.ppt
Lecture_W9_Normalization.ppt
 
Relational Algebra and relational queries .ppt
Relational Algebra and relational queries .pptRelational Algebra and relational queries .ppt
Relational Algebra and relational queries .ppt
 
Details of RDBMS.ppt
Details of RDBMS.pptDetails of RDBMS.ppt
Details of RDBMS.ppt
 
ch3[1].ppt
ch3[1].pptch3[1].ppt
ch3[1].ppt
 
Unit04 dbms
Unit04 dbmsUnit04 dbms
Unit04 dbms
 
Extended relational algebra
Extended relational algebraExtended relational algebra
Extended relational algebra
 
relational algebra
relational algebrarelational algebra
relational algebra
 
Ch2
Ch2Ch2
Ch2
 
DBA
DBADBA
DBA
 
E-r Model.ppt
E-r Model.pptE-r Model.ppt
E-r Model.ppt
 
ch2.ppt
ch2.pptch2.ppt
ch2.ppt
 

Último

Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseAnaAcapella
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 

Último (20)

Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 

Ch3 a

  • 1. Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Tuple Relational Calculus Domain Relational Calculus Extended Relational-Algebra-Operations Modification of the Database Views Database System Concepts 3.1 ©Silberschatz, Korth and Sudarshan
  • 2. Example of a Relation Database System Concepts 3.2 ©Silberschatz, Korth and Sudarshan
  • 3. Basic Structure 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 Example: if customer-name = {Jones, Smith, Curry, Lindsay} customer-street = {Main, North, Park} customer-city = {Harrison, Rye, Pittsfield} Then r = { (Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield)} is a relation over customer-name x customer-street x customer-city Database System Concepts 3.3 ©Silberschatz, Korth and Sudarshan
  • 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. multivalued attribute values are not atomic E.g. composite attribute values are not atomic The special value null is a member of every domain The null value causes complications in the definition of many operations we shall ignore the effect of null values in our main presentation and consider their effect later Database System Concepts 3.4 ©Silberschatz, Korth and Sudarshan
  • 5. Relation Schema A1, A2, …, An are attributes R = (A1, A2, …, An ) is a relation schema E.g. Customer-schema = (customer-name, customer-street, customer-city) r(R) is a relation on the relation schema R E.g. Database System Concepts customer (Customer-schema) 3.5 ©Silberschatz, Korth and Sudarshan
  • 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 attributes (or columns) customer-name customer-street Jones Smith Curry Lindsay Main North North Park customer-city Harrison Rye Rye Pittsfield tuples (or rows) customer Database System Concepts 3.6 ©Silberschatz, Korth and Sudarshan
  • 7. Relations are Unordered Order of tuples is irrelevant (tuples may be stored in an arbitrary order) E.g. account relation with unordered tuples Database System Concepts 3.7 ©Silberschatz, Korth and Sudarshan
  • 8. 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 : stores information about accounts depositor : stores information about which customer owns which account customer : stores information about customers Storing all information as a single relation such as bank(account-number, balance, customer-name, ..) results in repetition of information (e.g. two customers own an account) the need for null values (e.g. represent a customer without an account) Normalization theory (Chapter 7) deals with how to design relational schemas Database System Concepts 3.8 ©Silberschatz, Korth and Sudarshan
  • 9. The customer Relation Database System Concepts 3.9 ©Silberschatz, Korth and Sudarshan
  • 10. The depositor Relation Database System Concepts 3.10 ©Silberschatz, Korth and Sudarshan
  • 11. E-R Diagram for the Banking Enterprise Database System Concepts 3.11 ©Silberschatz, Korth and Sudarshan
  • 12. 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. K is a candidate key if K is minimal Example: {customer-name} is a candidate key for Customer, since it is a superkey (assuming no two customers can possibly have the same name), and no subset of it is a superkey. Database System Concepts 3.12 ©Silberschatz, Korth and Sudarshan
  • 13. Determining Keys from E-R Sets Strong entity set. The primary key of the entity set becomes the primary key of the relation. Weak entity set. The primary key of the relation consists of the union of the primary key of the strong entity set and the discriminator of the weak entity set. Relationship set. The union of the primary keys of the related entity sets becomes a super key of the relation. For binary many-to-one relationship sets, the primary key of the “many” entity set becomes the relation’s primary key. For one-to-one relationship sets, the relation’s primary key can be that of either entity set. For many-to-many relationship sets, the union of the primary keys becomes the relation’s primary key Database System Concepts 3.13 ©Silberschatz, Korth and Sudarshan
  • 14. Schema Diagram for the Banking Enterprise Database System Concepts 3.14 ©Silberschatz, Korth and Sudarshan
  • 15. Query Languages Language in which user requests information from the database. Categories of languages procedural non-procedural “Pure” languages: Relational Algebra Tuple Relational Calculus Domain Relational Calculus Pure languages form underlying basis of query languages that people use. Database System Concepts 3.15 ©Silberschatz, Korth and Sudarshan
  • 16. Relational Algebra Procedural language Six basic operators select project union set difference Cartesian product rename The operators take one or more relations as inputs and give a new relation as a result. Database System Concepts 3.16 ©Silberschatz, Korth and Sudarshan
  • 17. Select Operation – Example • Relation r A B C D 1 7 5 7 12 3 23 10 • A=B ^ D > 5 (r) A B C D 1 7 23 10 Database System Concepts 3.17 ©Silberschatz, Korth and Sudarshan
  • 18. Select Operation Notation: σ p(r) p is called the selection predicate Defined as: σp(r) = {t | t ∈ r and p(t)} Where p is a formula in propositional calculus consisting of terms connected by : ∧ (and), ∨ (or), ¬ (not) Each term is one of: <attribute> op <attribute> or <constant> where op is one of: =, ≠, >, ≥. <. ≤ Example of selection: σ branch-name=“Perryridge”(account) Database System Concepts 3.18 ©Silberschatz, Korth and Sudarshan
  • 19. Project Operation – Example A 1 1 40 A 1 30 (r) C 20 A,C B 10 Relation r: 2 C A 1 1 1 1 C = 1 2 2 Database System Concepts 3.19 ©Silberschatz, Korth and Sudarshan
  • 20. Project Operation Notation: ∏A1, A2, …, Ak (r) where A1, A2 are attribute names and r is a relation name. The result is defined as the relation of k columns obtained by erasing the columns that are not listed Duplicate rows removed from result, since relations are sets E.g. To eliminate the branch-name attribute of account ∏account-number, balance (account) Database System Concepts 3.20 ©Silberschatz, Korth and Sudarshan
  • 21. Union Operation – Example Relations r, s: A B A B 1 2 2 3 1 s r r  s: A B 1 2 1 3 Database System Concepts 3.21 ©Silberschatz, Korth and Sudarshan
  • 22. Union Operation Notation: r ∪ s Defined as: r ∪ s = {t | t ∈ r or t ∈ s} For r ∪ s to be valid. 1. r, s must have the same arity (same number of attributes) 2. The attribute domains must be compatible (e.g., 2nd column of r deals with the same type of values as does the 2nd column of s) E.g. to find all customers with either an account or a loan ∏customer-name (depositor) ∪ ∏customer-name (borrower) Database System Concepts 3.22 ©Silberschatz, Korth and Sudarshan
  • 23. Set Difference Operation – Example Relations r, s: A B A B 1 2 2 3 1 s r r – s: A B 1 1 Database System Concepts 3.23 ©Silberschatz, Korth and Sudarshan
  • 24. Set Difference Operation Notation r – s Defined as: r – s = {t | t ∈ r and t ∉ s} Set differences must be taken between compatible relations. r and s must have the same arity attribute domains of r and s must be compatible Database System Concepts 3.24 ©Silberschatz, Korth and Sudarshan
  • 25. Cartesian-Product OperationExample Relations r, s: A B C 2 r E 10 10 20 10 1 D a a b b s r x s: A B 1 1 1 1 2 2 2 2 Database System Concepts C D E 10 10 20 10 10 10 20 10 a a b b a a b b 3.25 ©Silberschatz, Korth and Sudarshan
  • 26. Cartesian-Product Operation Notation r x s Defined as: r x s = {t q | t ∈ r and q ∈ s} Assume that attributes of r(R) and s(S) are disjoint. (That is, R ∩ S = ∅). If attributes of r(R) and s(S) are not disjoint, then renaming must be used. Database System Concepts 3.26 ©Silberschatz, Korth and Sudarshan
  • 27. Composition of Operations Can build expressions using multiple operations Example: σA=C(r x s) rxs A B C σA=C(r x s) A B 1 2 2 Database System Concepts 3.27 a a b b a a b b D E 10 20 20 C E 10 10 20 10 10 10 20 10 1 1 1 1 2 2 2 2 D a a b ©Silberschatz, Korth and Sudarshan
  • 28. 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: ρ x (E) returns the expression E under the name X If a relational-algebra expression E has arity n, then ρx (A1, A2, …, An) (E) returns the result of expression E under the name X, and with the attributes renamed to A1, A2, …., An. Database System Concepts 3.28 ©Silberschatz, Korth and Sudarshan
  • 29. Banking Example branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number) Database System Concepts 3.29 ©Silberschatz, Korth and Sudarshan
  • 30. Example Queries Find all loans of over $1200 amount > 1200 (loan) Find the loan number for each loan of an amount greater than $1200 loan-number Database System Concepts ( amount > 1200 3.30 (loan)) ©Silberschatz, Korth and Sudarshan
  • 31. Example Queries Find the names of all customers who have a loan, an account, or both, from the bank customer-name (borrower) customer-name (depositor) Find the names of all customers who have a loan and an account at bank. customer-name Database System Concepts (borrower) 3.31 customer-name (depositor) ©Silberschatz, Korth and Sudarshan
  • 32. Example Queries Find the names of all customers who have a loan at the Perryridge branch. customer-name ( ( branch-name=“Perryridge” borrower.loan-number = loan.loan-number(borrower x loan))) 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) Database System Concepts 3.32 ©Silberschatz, Korth and Sudarshan
  • 33. Example Queries Find the names of all customers who have a loan at the Perryridge branch. −Query 1 customer-name( branch-name = “Perryridge” ( borrower.loan-number = loan.loan-number(borrower x loan))) Query 2 customer-name( ( Database System Concepts loan.loan-number = borrower.loan-number( branch-name = “Perryridge”(loan)) 3.33 x borrower)) ©Silberschatz, Korth and Sudarshan
  • 34. Example Queries Find the largest account balance Rename account relation as d The query is: balance(account) ( Database System Concepts - account.balance account.balance < d.balance (account x ρd (account))) 3.34 ©Silberschatz, Korth and Sudarshan
  • 35. Formal Definition A basic expression in the relational algebra consists of either one of the following: A relation in the database A constant relation Let E1 and E2 be relational-algebra expressions; the following are all relational-algebra expressions: E1 ∪ E2 E1 - E2 E1 x E2 σp (E1), P is a predicate on attributes in E1 ∏s(E1), S is a list consisting of some of the attributes in E1 ρ x (E1), x is the new name for the result of E1 Database System Concepts 3.35 ©Silberschatz, Korth and Sudarshan
  • 36. Additional Operations We define additional operations that do not add any power to the relational algebra, but that simplify common queries. Set intersection Natural join Division Assignment Database System Concepts 3.36 ©Silberschatz, Korth and Sudarshan
  • 37. Set-Intersection Operation Notation: r ∩ s Defined as: r ∩ s ={ t | t ∈ r and t ∈ s } Assume: r, s have the same arity attributes of r and s are compatible Note: r ∩ s = r - (r - s) Database System Concepts 3.37 ©Silberschatz, Korth and Sudarshan
  • 38. Set-Intersection Operation - Example Relation r, s: A B A B 1 2 1 2 3 r r∩s A s B 2 Database System Concepts 3.38 ©Silberschatz, Korth and Sudarshan
  • 39. Natural-Join Operation Notation: r s 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: Database System Concepts 3.39 ©Silberschatz, Korth and Sudarshan
  • 40. Natural Join Operation – Example Relations r, s: A C 1 2 4 1 2 D B D a a b a b B 1 3 1 2 3 a a a b b r r s s A B 1 1 1 1 2 Database System Concepts E C D E a a a a b 3.40 ©Silberschatz, Korth and Sudarshan
  • 41. Division Operation rs 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 ) } Database System Concepts 3.41 ©Silberschatz, Korth and Sudarshan
  • 42. Division Operation – Example Relations r, s: A B 1 2 3 1 1 1 3 4 6 1 2 r s: Database System Concepts A B 1 2 s r 3.42 ©Silberschatz, Korth and Sudarshan
  • 43. Another Division Example Relations r, s: A B C E D E a a b a b a b b a a a a a a a a D 1 1 1 1 3 1 1 1 a b 1 1 s r r s: A B C a a Database System Concepts 3.43 ©Silberschatz, Korth and Sudarshan
  • 44. 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. Database System Concepts 3.44 ©Silberschatz, Korth and Sudarshan
  • 45. Assignment Operation The assignment operation (←) provides a convenient way to express complex queries. Write query as a sequential program consisting of a series of assignments followed by an expression whose value is displayed as a result of the query. Assignment must always be made to a temporary relation variable. Example: Write r ÷ s as temp1 ← ∏R-S (r) temp2 ← ∏R-S ((temp1 x s) – ∏R-S,S (r)) result = temp1 – temp2 The result to the right of the ← is assigned to the relation variable on the left of the ←. May use variable in subsequent expressions. Database System Concepts 3.45 ©Silberschatz, Korth and Sudarshan
  • 46. Example Queries Find all customers who have an account from at least the “Downtown” and the Uptown” branches. Query 1 CN( BN=“Downtown”(depositor CN( account)) BN=“Uptown”(depositor account)) where CN denotes customer-name and BN denotes branch-name. Query 2 customer-name, branch-name (depositor account) temp(branch-name) ({(“Downtown”), Database System Concepts 3.46 (“Uptown”)}) ©Silberschatz, Korth and Sudarshan
  • 47. Example Queries Find all customers who have an account at all branches located in Brooklyn city. customer-name, branch-name branch-name Database System Concepts ( (depositor branch-city = “Brooklyn” 3.47 account) (branch)) ©Silberschatz, Korth and Sudarshan
  • 48. CourseWork Kasus supermarket penjualan barang, nyatakan dalam aljabar relasional Tabel: pegawai, barang, transaksi, detil_transaksi, pelanggan Soal: 1. Dapatkan nama barang yang memiliki harga paling mahal 2. Dapatkan transaksi yang paling besar nilai transaksinya 3. Dapatkan daftar pegawai yang berasal dari malang 4. Daparkan daftar pegawai yang minimal 5 tahun akan pensiun 5. Dapatkan nama pegawai yang melakukan transaksi pada bulan Maret 2011 6. Dapatkan barang yang paling laku (jumlah terbanyak dalam transaksi) 7. Dapatkan daftar pegawai dan jumlah transaksi yang ditangani 8. Dapatkan kode barang, nama barang, dan total transaksi yang dihasilkan dari barang dengan nama “Indomie goreng” Database System Concepts 3.48 ©Silberschatz, Korth and Sudarshan
  • 49. CourseWork Kasus supermarket penjualan barang, nyatakan dalam aljabar relasional Tabel: pegawai, barang, transaksi, detil_transaksi, pelanggan Soal: 9. Dapatkan Bagian, dan jumlah personal yang bertugas pada bagian tersebut 10. Dapatkan total seluruh transaksi Kumpulkan 1 kamis depan. Database System Concepts 3.49 ©Silberschatz, Korth and Sudarshan