پایگاه داده رابطه ای بخش پنجم
5-3-5 رابطه نتیجه
پرس و جوهایی که نوشته ایم در بیشتر موارد یک ویژگی عمومی دارد: نتیجه ای که باید نمایش داده شود در یک الگوی واحد ظاهر می شوند. اگر نتیجه پرس و جو شامل صفاتی از چندین الگوی رابطه باشد، به مکانیزی برای نمایش مطلوب در یک جدول واحد نیاز مندیم. به این منظور، می توانیم یک رابطه نتیجه موقت تعریف کنیم که شامل همه صفات داده در پرس و جو است. ما نتیجه مطلوب را با قرار دادن فرمانP. فقط در جدول ساختمان چاپ می کنیم.
به عنوان مثال، این پرس و جو را در نظر بگیرید «costomer-name،account-number، balance را برای همه حسابها در شعبه پریریج بیابید» در جبر رابطه ای این پرس و جو را بصورت زیر بیان کنیم:
1-join depositor and account
2-project customer-name ،Account number And balance.
برای ایجاد همان پرس و جو در QBE بصورت زیر عمل می کنیم:
1- یک جدول ساختمان بنام result با صفتهای customer – name , account- number , balance ایجاد کنید . نام جدول ساختمان که جدیدا ایجاد شده است که نام (result) است با نام همه رابطه های موجود در پایگاه داده متفاوت باشد.
2- پرس و جو را بنویسید.
پرس و جوی نتیجه چنین خواهد بود:
Balance
|
Branch_name
|
account _number
|
account
|
|
|
|
|
_z
|
Perryridge
|
-y
|
|
account_number
|
Customer_name
|
depositor
|
|
|
|
_y
|
_x
|
|
Balance
|
account_number
|
customer_name
|
result
|
|
|
|
|
_z
|
_y
|
-x
|
P.
|
5-3-6 QBE در مایکروسافت اکسس
در این قسمت، ما نسخه ای از QBE که بوسیله مایکروسافت اکسس مورد پشتیبانی قرار گرفته را مورد بررسی قرار می دهیم.در طول زمانی که نسخه اصلی QBEبرای یک محیط مبتنی بر متن طراحی می شد، Access QBE برای یک محیط نمایش گرافیکی طراحی می شد و بطور توافقی پرس و جو با مثال گرافیکی (GQBE) نامگذاری شد.
تفاوت جزئی در ورژن GQBE آنست که خصوصیات جدول به جای آنکه بصورت افقی نوشته شود زیر هم نوشته می شود. تفاوت مهم تر آنست که ورژن گرافیکی QBE از خصوصیات پیوند خطی دو جدول بجای متغیر به اشتراک گذاشته شده استفاده می کند،تا وضعیت الحاق را معلوم کند.
ویژگی جالب QBE در Access آنست که پیوندهای میان جداول اتومات (خودکار)، بر اساس نام مشخصه ، بوجود می آیند. در مثال تصویر 5-3، دو جدول account و depositor برای پرس و جو اضافه می شوند. مشخصه Account-number بین دو جدول مورد نظر مشترک است . و سیستم به صورت خود کار پیوندی را درون دو جدول جای می دهد، این پیوند را می توان اگر مطلوب نبود از بین برد. این پیوند را می توان به جای پیوند طبیعی هم برای تفکیک پیوند بیرونی تر طبیعی به کار برد.
تفاوت جزئی دیگر در Access QBE آنست که خصوصیاتی را مشخص می کند که در باکس جداگانه چاپ شوند و design grid نامیده شود به جای آنکه از p. درون جدول استفاده شود. ضمنا آن گزینه های روی مقادیر خصوصیات درون design grid را هم مشخص می کند.
پرس و جو های در بردارنده group by و تراکم را می توان در Access نشان داد، همان طور که در جدول 5-4 آمده است. این پرس و جو در تصویر، نام،خیابان و شهر همه مشتریانی که بیش از یک حساب در بانک دارند پیدا می کند. خصوصیات group by به همان اندازه توابع تراکمی در design grid مورد توجه اند.
توجه داشته باشید که زمانیکه وضعیتی را در یک ستون design grid با مجموعه ردیف کامل برای تراکم نشان می دهد، این وضعیت در مورد مقدار متراکم شده به کار می رود. برای مثال در تصویر 5-4 گزینه "1<" در مورد account-number برای نتیجه "count" تراکم به کار می رود. چنین گزینه هایی با گزینه های درون SQL , clause دار مطابقت می کند.
وضعیت های انتخابی را می توان در مورد ستونهای dsign grid که نه group by می شوند و نه متراکم به کار برد. چنین خصوصیتی را باید در ردیف "total" با "where" نشان گذاری کرد.
این گزینه های "where" قبل از تراکم به کار برده می شوند و با گزینه های عبارت where که درون SQL است مطابقت دارد.
البته چنین ستونهایی را نمی توان چاپ کرد (به گونه ای که به نمایش در آمده است علامت گذاری کرد) تنها ستونهایی که ردیف" "total, هم "group by" و هم توابع تراکم را مشخص می کند چاپ می شوند.
پرس و جو ها از طریق واسطه کاربر گرافیکی و به وسیله اولین جدول انتخابی ایجاد می شوند. پس خصوصیات را می توان به وسیله drag کردن و drop کردن آنها از جداول به design grid افزود.
پس وضعیت های انتخابی، گروه بندی کردن و تراکم را می توان درمورد خصوصیات درdesign grid مشخص کرد.Access QBE از ویژگیهای دیگری هم که عبارت اند از پرس و جوهایی برای تعریف پایگاه داده از طریق جاسازی، حذف، یا بروز کردن پشتیبانی می کند.