۱۳۸۹ فروردین ۲۱, شنبه

تمرين پايگاه داده براي 89/01/26


جداول زير را فرض كنيد:

users (usrId, usrName)

كاربران (كد كاربر، نام كاربر

-----------------------------------

meals ( mealId, mealPrice, mealDesc )

وعده غذايي ( كد وعده غذايي، قيمت وعده غذايي، شرح وعده غذايي

-----------------------------------

(receipts ( rcptId, rcpUsrId, rcpAmount, rcpNo, rcpDate

فيش ( كد فيش، كد كاربر، مبلغ فيش، شماره فيش، تاريخ فيش

-----------------------------------

reserveMeal( mealUsrId, mealId, mealDate )

رزرو غذا ( كد كاربر، كد وعده غذايي، تاريخ وعده غذايي رزرو شده

-----------------------------------

eatMeal( mealUsrId, mealId, mealDate )

خوردن غذا ( كد كاربر، كد وعده غذايي، تاريخ وعده غذايي خورده شده

-----------------------------------

فرض كنيد علي تا بحال يك بار براي امور غذايي مبلغ 5000 تومان پول واريز كرده است. براي روز شنبه صبحانه و ناهار ر ا رزرو كرده است و فقط ناهار را خورده است. بنابراين اطلاعات زير در جداول وجود خواهد داشت

users: 1, علي

meals: 1, صبحانه, 100

2, 300, ناهار

3, 200, شام

receipt: 10, 1, 5000, 12345, 89/01/15

reserveMeal: 1, 1, 89/01/17
1, 2, 89/01/17

eatMeal: 1, 2, 89/01/17

مبلغ هر وعده غذايي پس از رزرو از حساب فرد كسر خواهد شد، چه فرد آن را بخورد چه نخورد!
-----------------------------------

سوالات زير را به زبان جبر رابطه‌اي و به زبان Sql پاسخ دهيد:

  • بررسي كنيد كه كاربر با نام علي براي يك تاريخ خاص چه وعده هاي غذايي را رزرو كرده است؟
  • بررسي كنيد كدام كاربران تمام وعده هاي غذاهايي را كه رزرو كرده ‌اند، حتما خورده اند؟
  • بررسي كنيد كدام وعده غذايي (شام يا ناهار يا صبحانه)، اگر رزرو شده است، حتما خورده شده است؟
  • بررسي كنيد آيا مانده پول يك فرد براي رزرو يك ناهار كافي است؟
  • بررسي كنيد چه وعده غذايي بيشترين طرفدار را دارد؟
  • بررسي كنيد چند درصد كساني كه صبحانه را در يك روز رزرو كرده اند، شام همان روز را هم رزرو كرده‌اند؟
  • بررسي كنيد كدام روز و كدام وعده غذايي از همه بيشتر رزرو شده است؟
  • بررسي كنيد كل مبلغي كه تا بحال براي ناهار پرداخت شده است چقدر بوده است؟
  • بررسي كنيد كل مانده موجود از كل فيش‌هاي واريزي چقدر است؟
  • بررسي كنيد كه هر فرد آخرين روزي كه يك وعده غذايي را هم رزرو كرده و هم خورده است چه روزي بوده است؟
  • بررسي كنيد كدام افراد تا بحال هيچ غذايي رزرو نكرده‌اند؟
  • بررسي كنيد كدام افراد تا بحال هر چه ناهار رزرو كرده اند، نخورده‌اند؟
  • بررسي كنيد چه كسي از همه بيشتر غذا رزرو كرده است كه نخورده است؟
  • چه كسي بيشترين پول را بابت رزرو غذاي نخورده داده است؟
  • نام كاربران، تعداد نهار، تعداد شام، مجموع مبلغ پرداختي براي غذا و مبلغ آخرین فیش پرداختي را اعلام نماييد؟

هیچ نظری موجود نیست:

ارسال یک نظر