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

(123doc) Assignment2 Solution Database

Uploaded by

doanviethong123
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

(123doc) Assignment2 Solution Database

Uploaded by

doanviethong123
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Solution to the

Assignment 2
Dirk Van Gucht & Mo

Zhou September 29, 2008

Relational Algebra
- We write r(ABC) for a relational schema with relation name r and
attributes (or fields) A, B, and C. The underlined attribute is the
primary key.

Basic Algebra
1. Given following relational schema, write expressions of relational
algebra to answer the following queries.

Relational schema of question 1.


Product(model, maker, type)
PC(model, speed, ram, hd, price)
Laptop(model, speed, ram, hd, screen, price)
Printer(model, color, type, price)

1
The sample data for relations of question 1. These data are not used
to calculate results of following questions.

Product:
model maker type
1001 A PC
3001 B Printer
2001 C laptop
PC:
model speed ram hd price
1001 2.66 1024 250 2114
1002 1.42 512 250 955
1003 3.20 2048 160 1049

Laptop:
model speed ram hd screen price
2001 2.00 1024 250 15 2114
2002 1.73 512 80 24 955
2003 1.83 2048 60 20 1049

Printer:
model color type price
3001 true ink-jet 99
3002 false laser 239
3003 true laser 899

2
(a) What PC models have a speed of at least 3.00?
πmodel(σmodel≥3.00(P C))
(b) Find the model numbers of all color laser printers.
πmodel(σtype=laser∧color=true(P rinter))
(c) Which manufacturers make laptops with a hard disk of at least
100GB?
πmaker (P roduct Da σhd≥100 (Laptop))
(d) Find the model number and price of all products (of any type)
made by manufacturer B.
πmodel,price (σmaker=B (P roduct)) Da
(πmodel,price(P C) ∪ πmodel,price(Laptop) ∪ πmodel,price(P rinter))
(e) Find those manufacturers that sell Laptops, but not PC’s.
πmaker(σtype=Laptop(P roduct)) − πmaker(σtype=P C (Product))
(f) Find those manufacturers that sell all models of PCs and lazer
Printers.
πmaker(Product/(πmodel(PC) ∪ πmodel(σtype=lazer(Printer))))
(g) Find those manufacturers whose laptops have all ram sizes that
manufacturer B’s laptops have.
(πmaker,ram (P roduct Da Laptop)) / (πram (σmaker=B (P roduct) Da
Laptop))
(h) Find those manufacturers of at least two different computers
(PC’s or laptops) with speeds of at least 2.80. ρ(TEMP
1, πmodel(σspeed≥2.80(PC)) ∪
πmodel (σspeed≥2.80 (Laptop)))
ρ(T EM P 2, P roduct Da T EM P
1)
πmaker(σT EMP 2.maker=T EMP 3.maker∧T EMP 2.model TEMP 3.model(T EMP 2×
ρ(TEMP 3, TEMP 2)))
(i) Find the manufacturers of PC’s with at least two different
speeds.
πR1.maker (σR1.speed R2.speed∧R1.maker=R2.maker ((ρ(R1, (P roduct Da
P C)) × ρ(R2, (P roduct Da P C)))))
(j) Find the manufacturers who sell exactly two different models of
PC.
πR1.maker (σR1.model R2.model∧R1.maker=R2.maker (ρ(R1, (P roduct Da
P C)) × ρ(R2, (P roduct Da P C)))) −
πR1.maker (σR1.modelƒ=R2.model∧R1.modelƒ=R3.model∧R2.modelƒ=R3.model
∧R1.maker=R2.maker∧R1.maker=R3.maker
3
(ρ(R1, (P roduct Da P C)) × ρ(R2, (P roduct Da
P C)) × ρ(R3, (P roduct Da P C))))
(k) Find those pairs of PC models that have both the same speed
and RAM. A pair should be listed only once; e.g., list (i, j) but
not (j, i).
Hint: The model numbers can be compared.
πPC1.model,PC2.model
(σPC1.speed=PC2.speed∧PC1.ram=PC2.ram∧PC1.model>PC2.model
(ρ(PC1, PC) × ρ(PC2, PC)))
(l) Find the manufacturer(s) of the computer (PC or laptop) with
the highest available speed.
Hint: the highest speed means that it is not smaller than any
other speeds. If you can find all the speeds which are
smaller than some speed, you can solve this problem.
ρ(Computer, (πmodel,speed(PC) ∪ πmodel,speed(Laptop)))

ρ(HighestSpeedM odel, πmodel(Computer) −


πmodel(σP 1.speed<P 2.speed(ρ(P 1, Computer) × ρ(P 2, Computer))))

πmaker (P roduct Da HighestSpeedM odel)

4
Constraints

2. Express the following constraints about the relations below.


Product(model,maker, type)
PC(model, speed, ram, hd, price)
Laptop(model, speed, ram, hd, screen, price)
Printer(model, color, type, price)

(a) A PC with a processor speed less than 2.00 must not sell for
more than $500.
σspeed<2.00∧price>500(P C) = ∅

(b) No manufacturer of PC’s may also make laptops.


πmaker(Product Da PC) ∩πmaker(Product Da Laptop) = ∅
OR
πmaker(σtype=P C (Product)) ∩ πmaker(σtype=Laptop(Product)) = ∅

(c) A manufacturer of a PC must also make a laptop with at least


as great a processor speed.
Find the highest speed of PC for each manufacturer.

ρ(T emp, πmaker,speed (P roduct Da P C))


ρ(T emp2, T emp −
πT 1.maker,T 1.speed(σT 1.speed<T 2.speed∧T 1.maker=T 2.maker(ρ(T 1, T emp) ×
ρ(T 2, T emp))))

Find the highest speed of Laptop for each manufacturer

ρ(T emp3, πmaker,speed (P roduct Da Laptop))


ρ(T emp4, T emp3 −
πT 3.maker,T 3.speed(σT 3.speed<T 4.speed∧T 3.maker=T 4.maker(ρ(T 3, T emp) ×
ρ(T 4, T emp))))

For the same manufacturer, the highest speed of the laptop


must as great as the one of the PC.

σT emp2.maker=T emp4.maker∧T emp2.speed≥T emp4.speed(T emp2 ×


T emp4) = ∅

5
3. Express the following constraints in relational algebra. The
constraints are based on the following relations.
Classes(class, type, country, numGuns, bore, displacement)
Ships(shipname, class, launched)
Battles(battlename, date)
Outcomes(shipname, battlename, result)

(a) No country may have both battleships and


battlecruisers.(battleship and battlecruiser are values of
attribute type in relation Classes)
πcontry(σtype=battlecruiser(Classes)) ∩
πcontry(σtype=battleship(Classes)) = ∅
(b) No ship with more than 9 guns may be in a battle with a ship
having fewer than 9 guns that was sunk. (sunk is a value of
attribute result in relation Outcomes)
πbattlename((σnumGuns>9(Classes) Da Ships) Da Battles) ∩
πbattlename((σnumGuns<9(Classes) Da Ships) Da (σresult=sunk(Battles)))
=∅

6
Special algebra

4. Suppose relations R and S have n tuples and m tuples, respectively.


Give the minimum and the maximum numbers of tuples that the
results of the following expressions can have.

(a) R ∪ S
(b) R Da S
(c) σC (R) × S, for some condition C.
(d) πL(R) − S, for some list of attributes L.

Expression Max Min


R ∪S n+m max(m,n)
R Da S min(m,n) 0
σC (R) × S m×n
0 πL(R) − S
n 0
5. The semijoin of relations R and S is the set of tuples t in R such that
there is at least one tuple in S that agrees with t in all attributes
that R and S have in common. Give three different expressions of
relational algebra equivalent to semijoin.
Suppose that R has n domains and S has m domains. And the first k
domains are the same for both R and S.

(a) π1,. ,n(R Da S)


(b) π1,...,n(σR.1=S.1∧. .∧R.k=S.k(R × S))
(c) R Da π1,. ,k (S)

6. The antisemijoin is the set of tuples t in R that do not agree with


any tuple of S in the attributes common to R and S. Give an
expression of relational equivalent to antisemijoin.
R − π1,. ,n (R Da S)

7. An operator on relations is said to be monotone if whenever we add


a tuple to one of its arguments, the result contains all the tuples that
it contained before adding the tuple, plus perhaps more tuples. Are
semijoin and antisemijoin monotone? For each, either explain why it
is monotone or give an example showing it is not.
7
Solution: Semijoin is monotone.
Antisemijoin is not monotone.

You might also like