به نام یگانه خالق هستی بخش
تمرین سوم درس طراحی پایگاه داده
اهداف:
 آشنایی با امکانات پیشرفتهی SQL
 آشنایی با جبر و حساب رابطهای
 آشنایی با طراحی باال به پایین و نرمال(تر)سازی پایگاه داده
دانشکده مهندسی کامپیوتر
دانشگاه صنعتی شریف
بهار ۱۹
0
بخش اول :سواالت تشریحی
پاسخ سواالت زیر را بصورت تشریحی و تا جای ممکن شامل ،جامع ،مانع و موجز بنویسید.
.۹
رابطهی از درجهی  nحداکثر چند سوپرکلید دارد؟ حداکثر چند کلید کاندید دارد؟
.2
تفاوت رابطه و جدول چیست؟
.3
دو رابطه مثال بزنید که در  2NFباشد ولی در  3NFنباشد.
.4
برای طراحی باال به پایین ،با ذکر یک مثال (به غیر از محیط آموزش!) تکنیکهای تجمیع و تخصیص و اجتماع را به
رابطههای معادل تقسیم کنید.
با مکانیزم اظهار(  ، ) Assertionعبارتی در  SQLبنویسید که رعایت شدن قاعدهی پیشنیازی را در هنگام گرفتن
.5
یک درس توسط یک دانشجو بررسی کند و در صورت رعایت نشدن آن به سیستم (و شاید معاون آموزشی !) اخطار
بدهد .
بخش دوم :سواالت تحلیلی
.۹
پایگاه داده دانشجو و درس و اخذ (دارای صفت ترم و سال تحصیلی) را در نظر بگیرید .در جبر رابطهای نام دانشجویانی
را بدهید که:
الف -در تمام درسهای ارایه شده در ترم اول سال تحصیلی  ۱2-۱۹نمرهی باالی  ۹2گرفتهاند.
ب -در تمام درسهایی که آن دانشجو اخذ کرده نمرهی باالی  ۹2گرفته است (در همان ترم و سال تحصیلی).
ج -در همان ترم و سال تحصیلی حداقل تمام دروس اخذ شده توسط دانشجوی شماره ( ۹در همان ترم و سال) را اخذ
کرده باشند.
.2
برای هر مورد زیر پاسخ را هم در جبر و هم در حساب رابطهای بنویسید.
) S ( SID, SNAME , City
) P ( PID , PNAME, City , Color
) J ( JID , JNAME, City
) SPJ ( SID , PID , JID , QTY
-
شماره تامینکنندگانی را بدهید که حداقل در دو پروژه مجزا دو قطعه مجزا تامین کردهاند.
-
زوج مرتبهای اسم شهرهایی را بدهید که حداقل یک تامینکننده در شهر اول پروژهای در شهر دوم را تامین
میکند.
-
تمام شماره تامینکننده ،قطعه و پروژههایی را بدهید که هیچ دوتایی در یک شهر نباشند.
-
شماره پروژههایی را بدهید که با قطعه شماره یک تامین شدهاند در حالی که میانگین تعداد تامینشدهی آنها از
بیشترین تعداد قطعه تامین شده (نه مجموع قطعات) برای پروژهی شماره یک بیشتر است.
-
شماره پروژههایی را بدهید که با حداقل همهی قطعاتی که تامینکننده شماره  ۹تامین میکند تامین شدهاند.
-
شماره قطعههایی را بدهید که برای همهی پروژههای تهران تامین شدهاند.
۹
.3
برای هر یک از دو مجموعه وابستگیهای تابعی زیر ،مجموعه کاهشناپذیر را بیابید.
}F1 = { B -> D , E -> C , (A,C) -> D , (C,D) -> A , (B,E) -> A
} )F2 = { A -> (C,D,E) , B -> (C,E) , (A,D) -> E , (C,D) -> F , (B,D) -> A , (C,E,D) -> (A,B,D
.4
با فرض مجموعهی وابستگیهای زیر  F+را محاسبه کنید (روند را ذکر کنید):
} F = { A -> D , (C,D) -> B , (A,D) -> C
.5
رابطهی زیر را به تعداد الزم رابطهی  3NFتبدیل کنید.
PRJWRK( PName, MgrID, EmpID, Hours , EmpName, Budget, StartDate, EmpSalary,
) EmpMgrID , EmpDpt , EmpRate
 Hoursتعداد ساعت کار کارمند در هفته EmpMgrID ،مدیر کارمند که با مدیر پروژه فرق دارد و  EmpRateنمرهی
کارمند در پایان پروژه میباشد که توسط مدیر پروژه داده میشود.
قواعد معنایی محیط به شرح زیر است:
.6
.7
-
هر پروژه یک نام واحد دارد.
-
هر پروژه یک مدیر دارد که شناسهی آن مشخص است.
-
در یک پروژه تعدادی کارمند کار میکنند و یک کارمند ممکن است در بیش از یک پروژه کار کند.
با رسم شکل در هر دو مورد زیر بگویید رابطه در کدام فرم نرمال است:
-
)  R( A , B , C , D , Eبا مجموعه وابستگی }{E -> (C,D) , (B,C,D) -> E
-
)  SCPG( STID , COID , STNAME , Gradeبا کلیدهای کاندید ) (COID , STNAMEو )(STID , COID
رهانایی ( )Triggerدر  SQLبنویسید که تبدیل  E/Cبرای عملیات درج بر روی دید ( V1که برابر با  S JOIN SPاست)
را شبیه سازی کند  .توجه کنید که در صورتی که دادههای بخش تهیه کننده ( از جمله نام و … ) با دادههای قبلی
پایگاه داده ناسازگاری داشته باشد  ،عملیات درج نباید انجام شود .
2
.8
شکل زیر که مدلسازی یک سیستم مدیریت پایگاه داده است را در نظر بگیرید .به روش باال به پایین رابطههای آن را
طراحی کنید.
3
:  در نظر بگیرید، رابطه زیر را که در محیط کارمند تعریف شده است
.۱
EMPLR ( EMPL# , EMPNAME , EMPSALARY , … , EMPMANAGER# )
الف ) رهانای زیر بیانگر چه قاعدهی معنایی از این محیط میباشد ؟
CREATE TRIGGER
T1
BEFORE UPDATE OF EMPSALARY ON EMPLR
REFERENCING OLD TABLE AS OEMPL , NEW TABLE AS NEMPL
WHEN ( EXISTS ( SELECT * FROM NEMPL , EMPL
WHERE NEMPL.EMPLMANAGER# == EMPL.EMPL#
AND
NEMPL.EMPSALARY > EMPL.EMPSALARY
)
)
THEN
BEGIN
DELETE FROM EMPL
WHERE EMPL# IN ( SELECT EMPL# FROM NEMPL ) ;
INSERT INTO EMPL ( SELECT * FROM OEMPL ) ;
END
FOR EACH STATEMENT ;
، استفاده شودFOR EACH ROW  ازFOR EACH STATEMENT  به جای عبارت، ب ) اگر در خط پایانی این رهانا
آیا قاعده معنایی محیط به درستی بررسی میشود؟
4
بخش سوم :سواالت تحقیقی
این بخش به عنوان نمرهی اضافی میباشد .در مورد یکی از موضوعات زیر گزارشی یک یا دو صفحهای تهیه کنید.
-
حساب رابطهای دامنهای.
-
شرح چگونگی تجزیه  BCNFبه .4NF
-
).RFNF (Redundancy Free Normal Form
-
کاربرد نرمالترسازی در طراحی پایگاه دادههای شی گرا.
-
هر موضوع جالبی مربوط به پایگاه داده که میدانید با بیان دانش خود.
5
                
    
            
    
                © Copyright 2025 Paperzz