9
ational Algebra, R. Ramakrishnan and J. Gehrke 2003 Ungraded Homework P1 Reminder: Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day) that contains all pairs of sailors that have a reservation for the same boat on the same day. (Reserves1 (1sid1),Reserves) (Reserves2 (1sid2),Reserves) (Together, sid1,sid2,day (Reserves1 |X| Reserves2)) b. Give the sids of all sailors that have a reservation for 10/13/2003 but not for 10/17/2003. sid ( day=10/13/2003 (Reserves)) sid ( day=10/17/2003 (Reserves))

Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Embed Size (px)

Citation preview

Page 1: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 1

2003 Ungraded Homework P1

Reminder: Reserves(sid,bid,day)a.       Create a table Together(sid1,sid2,day) that

contains all pairs of sailors that have a reservation for the same boat on the same day.

(Reserves1 (1sid1),Reserves)(Reserves2 (1sid2),Reserves)(Together, sid1,sid2,day(Reserves1 |X| Reserves2))

b. Give the sids of all sailors that have a reservation for 10/13/2003 but not for 10/17/2003.

sid(day=10/13/2003 (Reserves)) sid(day=10/17/2003 (Reserves))

Page 2: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 2

2003 Ungraded Homework P1 (cont)

c.       Give the name and sid of all sailors that have reservations for all red boats

(Tempsids, sid,bid(Reserves) / bid(color=red (Boats)) )

sid,sname(Tempsids |X| Sailors)

d.      Give the name and sid of all sailors that have exactly one reservation for 11/11/2003

(Reserves2 (1sid2,2bid2), day=11/11/2003 Reserves)

(2+R, (sid(day=11/11/2003(Reserves) |X|sid=sid2 and bidbid2

Reserves2))sid,sname((sid(Reserves) 2+R) |X| Sailors))

Page 3: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 3

P2 All but one boat problem

SELECT R.sidFROM Reserves RGROUPED BY R.sidHAVING COUNT(DISTINCT R.bid)) + 1= (SELECT count(*) FROM Boats Bo)

Remarks: still needs to be tested if the query runs on ORACLE9i; counting, instead of checking the real bid’s is okay because of referentialintegrity.

Page 4: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 4

P3 NFL E/R Design Problem

Design an Entity-Relationship Diagram that models the following objects and relationships in the world of football (NFL): teams, players, games, managers and contracts. Each (NFL-) team has a unique team name, and a city it plays in. Each person being part of the NFL-world has a unique ssn and a name. Additionally, for players their weight, height, position and birth dates are of importance. Players have a contract with at most one team and receive a salary for their services, and teams have at least 24 and at most 99 players under contract. Each team has one to three managers; managers can work for at most 4 teams and receive a salary for each of their employments. Players cannot be managers. A game involves a home-team and visiting-team; additionally, the day of the game, and the score of the game are of importance; teams play each other several times in a season (not on the same day!). Moreover, for each game played we like to know which players participated in the game and how many minutes they played.

 Indicate the cardinalities for each relationship type; assign roles (role names) to each

relationship if there are ambiguities! Use sub-types, if helpful to express constraints!

Page 5: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Team

empl.

contr

name

city

Manager

Player

Person

namessn

weight pos

birthd

height

Game

play played-in.

Day

minscore

Home Visit

Sal

Sal

(1,3)

(0,4)

(1,1)

(24,99) (0,1)

(22,*)

(0,*)(0,*)NFLE/RProblem

(0,*)

isa

isa

Scoring: 1. Play relationship a Set: 32. Person/Player/Manager: 33. Weak Game Entity: 34. Played-in: 25. Can Only Play once on a day: 16. Contract: 37. Salary, score, min attribute: 3

Page 6: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 6

Using the Default Mappingto Map the E/R Diagram to

theRelational Data Model

Game(home, visit, day, score)

Played_in(home,visit, day, ssn, min)

Player(ssn, birthd, pos,…)

Team(name, city)

Person(ssn, name)

Contract(Team,Player,Salary)

Page 7: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 7

SQL-QueriesB1) “Give the dates of all reservations for red

boats” [2]SELECT R.day FROM Reserve R, Boat B WHERE R.bid = B. bid AND B.color = ‘red’B2) “Give the boats (return bid ) that have at least

2 reservations for 5/5/2003” [4]SELECT DISTINCT R1.bidFROM Reserve R1, Reserve R2WHERE R1.day= ‘5/5/03’ AND R2.day =

‘5/5/03’ AND R1.bid=R2.bid AND R1.Sid <> R2.Sid

Page 8: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 8

SQL-QueriesB2) “Give the name and sid of all sailors that do

not have any reservations for green boat(“There is no green boat that is reserved by this sailor”)[4]

Wrong:SELECT S.sname, S.sidFROM Sailor S, Reserve R, Boat BWHERE S.sid = R.sid AND R.bid=B.bid AND

not(B.color = ‘green’)

Page 9: Relational Algebra, R. Ramakrishnan and J. Gehrke1 2003 Ungraded Homework P1 Reminder : Reserves(sid,bid,day) a. Create a table Together(sid1,sid2,day)

Relational Algebra, R. Ramakrishnan and J. Gehrke 9

SQL-QueriesB2) “Give the name and sid of all sailors that do

not have any reservations for green boat(“There is no green boat that is reserved by this sailor”)[4]

Correct:SELECT S.sname, S.sidFROM Sailor SEXECPT SELECT S.sname S.sidFROM Sailor S, Reserve R, Boat BWHERE S.sid = R.sid AND R.bid=B.bid AND

B.color = ‘green’