ספרייה - דוגמאות

7
גגג"ג- גגגג236363- DBMS, גג- גגגגגג גגגגג1 גגגגגגג- גגגגגג תתתתתתת: • Customers(CId , CName, Faculty) • Books(BId , BName, Year, MaxTime, Faculty, Pages) Ordered(CId, BName , ODate ) • Borrowed(BId , CId, FDate , TDate) 1 . (גגגג גגגגגגגג) גגג גגגגגגג גגגגגגג גגגגגגגגג גגגגגג גג גג גגגגג) גגגג גגגג גגגגג גגג?( גגגגג גגגגגגג2 . גג גג גג גגגגגגג גגגגגגג גגגג גגגגג גג גגגגגג גגגגגג גג גג גגגגג, גג) גג גגגגגג גגגג גגג?( גגגגג גגגגגג גגגגגג גגגגגג

Upload: carson-glass

Post on 01-Jan-2016

25 views

Category:

Documents


3 download

DESCRIPTION

ספרייה - דוגמאות. הטבלאות : Customers( CId , CName, Faculty) Books( BId , BName, Year, MaxTime, Faculty, Pages) Ordered( CId, BName , ODate ) Borrowed( BId , CId, FDate , TDate). 1.  מהם הכותרים הקיימים בספרייה (כולל המושאלים) שלהם יותר מעותק אחד (יש להדפיס את שם הכותר ומספר ההעתקים)? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ספרייה - דוגמאות

1ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

ספרייה - דוגמאות

:הטבלאות• Customers(CId, CName, Faculty)• Books(BId, BName, Year, MaxTime, Faculty, Pages)• Ordered(CId, BName, ODate)• Borrowed(BId, CId, FDate, TDate)

מהם הכותרים הקיימים בספרייה (כולל המושאלים) שלהם יותר מעותק . 1אחד (יש להדפיס את שם הכותר ומספר ההעתקים)?

מי הם כל הלקוחות שהזמינו כותר כלשהו אך עדין לא השאילו עותק שלו . 2(יש להדפיס את שם הלקוח, שם הכותר המוזמן ותאריך ההזמנה)?

Page 2: ספרייה - דוגמאות

2ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

SQL, 1ספרייה: שאלה

SELECT BName, COUNT(BId)

FROM Books

GROUP BY BName

HAVING COUNT(BName) > 1;

SELECT B.BName, COUNT(B.BName)FROM Books BWHERE 1 < (SELECT COUNT(BName) FROM Books WHERE BName = B.BName)GROUP BY B.BName;

Page 3: ספרייה - דוגמאות

3ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

,RA, TRC: 1ספרייה, שאלה DRC

BName(Books Bname=nameBIdidB(id,name,y,mt,f,p)Books)

{ t (1) | u,v (u Books v Books u [BName] = v [BName] u [BId] v [BId] u [BName] = t [BName] ) }

{ <BN> | BId1,BId2,Y1,Y2,MT1,MT2,F1,F2,P1,P2

( Books(BId1, BN, Y1, MT1, F1, P1) Books(BId2, BN, Y2, MT2, F2, P2) (BId1 BId2))}

Page 4: ספרייה - דוגמאות

4ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

Datalog: 1ספרייה, שאלה

bookList(BName, nil).bookList(BName, pair(BId,Y))

books(BId,BName,F), bookList(BName,Y).

illegal_bookList(BName,L) bookList(BName,L), books(BId,BName,F), ¬in_once(L,BId).

legal_bookList(BName,L) bookList(BName,L), ¬illegal_ bookList(BName,L).

more_than_1(BName, n) legal_ bookList(BName,L), len(L,n), n>1.

Page 5: ספרייה - דוגמאות

5ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

SQL, 2ספרייה: שאלה

. מי הם כל הלקוחות שהזמינו כותר כלשהו אך עדין לא 2השאילו עותק שלו )יש להדפיס את שם הלקוח, שם

הכותר המוזמן ותאריך ההזמנה(? SELECT C.CName, O.BName, O.ODateFROM Customers C, Ordered OWHERE C.CId = O.CId AND NOT EXISTS (SELECT * FROM Borrowed BR, Books B WHERE BR.BId = B.BId AND B.BName = O.BName AND BR.CId = O.CId AND O.ODate <= BR.FDate);

Page 6: ספרייה - דוגמאות

6ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

RA, TRC: 2ספרייה, שאלה

CName,BName,ODate (Ordered Customers) \

CName,BName,Odate

(Customers ODate <= FDate(Ordered Borrowed Books))

{ t (3) | o,c (o Ordered c Customers o[CId] = c[CId] c[CName] = t[CName] o[BName] = t[BName] o[ODate] = t[ODate] w,z (w Borrowed z Books w[BId] = z[BId] w[CId] = o[CId] z[BName] = o[BName] o[ODate ] <= w[FDate] ))}

Page 7: ספרייה - דוגמאות

7ספרייה - דוגמאות ,DBMS -236363אביב-תשס"ג

DRC, Datalog: 2ספרייה, שאלה

{<CName,BName,ODate> | CId,F (Ordered(CId, BName, ODate) Customers(CId, CName, F) BId,FDate,TDate,Y,MT,F,P

(Borrowed(CId, BId, FDate, TDate) Books(BId, BName, Y, MT, F, P) ODate <= FDate)))}

borrowed_after(CId,Bname,Date) books(BId,BName,Y,M,F, P), borrowed(BId,CId,FDate,TDate), FDate≥ Date.

 not_taken(Name,BName,ODate) ordered(CId,BName,ODate),

custmer(CId, Name,F), ¬borrowed_after(CId,BName,ODate).