پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620

برجسته ترین ها
گروه های مقاله ها
HyperLink


پایگاه داده رابطه ای بخش اول تاریخ درج: ١٣٩۴/٠٩/٢٣

زبان هاي رابطه اي

 در اين فصل ابتدا دوزباني را كه بيشتر رسميت دارند را مطالعه مي كنيم يكي حساب رابطه اي چندتايي و يكي حساب رابطه اي حوزه . كه اين دو زبان رسمي زبان هايي هستند بر پاية پرس و جو  و مبتني بر منطق رياضي ، و اين دو زبان رسمي شكل پايه اي براي دو يا بيشتر زبان هاي دوستانه هستند ، كه بعداً در اين فصل QBE  و Datalog را مطالعه مي كنيم .
بر خلاف SQL و QBE يك زبان گرافيكي به گونه اي به شكل جداول مي باشد .QBE و جايگزينش خيلي مورد استفاده قرار مي گيرند در سيستمهاي پايگاه داده در كامپيوترهاي شخصي . Datalog يك نمونه تركيبي بعد از زبان Prolog دارد . هر چند در حال حاضر به صورت تجاري از اين دست آورد استفاده نمي شود . Datalog بيشتر در جستجوي سيستم هاي پايگاه داده اي مورد استفاده قرار مي گيرد .
براي QBE و Datalog ، ما ساختارها و مفاهيم بنيادي را سريع تر از يك كتاب راهنماي جامع كاربران براي اين زبان ها به دست مي آوريم ، عقيده بر اين است كه شخص يكي از اين زبان ها را  انتخاب كند ، ممكن است در جزئيات متفاوت باشند يا ممكن است تنها يك زير مجموعه از تمام زبان ها را تأييد كند .

5-1  حساب رابطه اي چندتايي 
وقتي كه ما يك عبارت جبري رابطه اي را مي نويسم . ما يك روالي را كه جوابهايي براي پرس و جو به وجود مي آورند را مهيا مي كنيم . در مقام مقايسه حساب رابطه اي چندتايي يك زبان تحقيقي غیر رویه ای اطلاعات خوبي را بدون دادن يك روال ويژه براي به دست آوردن آن اطلاعات ارائه مي دهد . يك پرس و جو در حساب رابطه اي چندتايي که مثل { t | p (t ) } بيان مي شود منظور اين است كه آن يك مجموعه اي از همه متغییرهائی  چون t مي باشد به گونه اي كه p ( t )  مبتني بر آن درست باشد به ازاء همه t ها. در دنباله مطالبمان ، ما از t [A] براي مشخص كردن مقدار متغییر t بر روي صفت A استفاده مي كنيم و ما از   r   t براي مشخص كردن يك متغییر t كه در رابطه با r مي باشد ، استفاده مي نماييم.
قبل از اين كه ما يك تعريف رسمي از حساب رابطه اي چندتايي ارائه بدهيم ، ما به بعضي از پرس و جو ها که در جملات جبري رابطه اي  در بخش 2-2 نوشته ایم برمي گرديم . به ياد آوريد كه پرس و جو ها از الگوي هاي زير پيروي مي كنند :
شاخه ( نام شاخه ـ شهر شاخه ـ موجودي (  دارائي ) ) 
خريدار ـ مشتري ( نام مشتري و جبر مشتري ، شهر مشتري ) 
وام ( شماره وام ـ نام شاخه ـ مقدار ) 
وام گيرنده ( نام مشتري ـ شماره وام ) 
حساب ( شماره حساب ـ نام شاخه ـ موجودي ) 
سپرده گذار ( نام مشتري ـ شماره حساب ) 

5- 1- 1- طرح مثال 
پيدا كردن نام شاخه ، شماره وام ، مبلغ وام براي وام هاي بيشتر از 1200 دلار :
طرح مثال
فرض كنيد كه ما خواسته باشيم فقط صفت ( شماره وام ) ، بيشتر از همه صفات رابطه وام باشد . براي نوشتن اين پرس و جو در حساب رابطه اي چندتايي ما به نوشتن يك توضيح نياز داريم . براي يك رابطه در اين طرح يا مدل ( شماره وام ) ما به چندتايي ها بر روي  شماره وام  نياز داريم هم چنانكه يك چندتايي در وام به وسيله يك صفت, مقداري بزرگتر از 1200 وجود دارد . براي بيان اين تقاضا ما به ساختار وجود داشتن  از مطلق رياضي نياز داريم . نكته :

 وجود يك متغییر t متعلق به r به گونه ای که  Q (t) درست باشد . از اين نكات استفاده مي كنيم ، تا بتوانيم پرس و جو را بنويسيم همچون ، پيدا كردن شماره وام براي هر يك از وام ها به گونه اي كه مبلغ بزرگ تر از 1200 دلار باشد . همچون :
 پرس و جو
 
 
در انگليسي ، ما مي خوانيم جمله يا توضيحي قبلي به عنوان ” دسته اي از همه متغيرهايي همچون t كه وجود دارد يك متغير ( چندتايي) S متعلق به loan براي هر مقدار t و s متعلق به loan-number كه مساوي هستند و مقدار S براي صفت amount بزرگ تر از 1200 دلار هستند . 
متغير چندتايي t تنها در نشانه هاي loan-number تعريف مي شود از اين كه تنها صفتي از بودن يك حالت ويژه براي t وجود دارد . نتيجه اين است كه يك ارتباط روي loan – number وجود دارد .
نتیجه  پرس و جو  پيدا كردن اسامي همه مشتري ها كه يك وام از شاخة Perryridge دارند . اين  پرس و جو  اندكي پيچيده تر از تحقيقات قبلي است. بعد از درگير كردن دو رابطه : قرض كننده و وام . ما بايد همه درخواست ها را مشاهده كنيم . بنابراين ، ما دو شرط « وجود داشتن » در عبارت حساب رابطه اي چندتايي داريم كه به وسيله ( ^ ) and متصل شده اند . ما  پرس و جو را به شكل زير مي نويسيم:
عبارت حساب رابطه اي چندتايي
شكل 5-1 اسامي همه مشتري هايي كه يك وام در شاخه Perryridge دارند .
در انگليسي ، اين مطلب به صورت همه متغيرهائي ( customer – name ) براي هر مشتري كه يك وام از يك شاخه Perryridge دارد ، بيان مي گردد . متغيرهاي چندتايي u اين اطمينان را مي دهند كه مشتري يك قرض كنند از شاخه Perryridge مي باشد . متغيرهاي چندتايي S در شماره وام يكسان مثل S محصور شده اند . شكل 1- 5 نتيجه اين  پرس و جو  را نشان مي دهد .
براي يافتن همه مشتري هايي كه يك وام دارند و يك موجودي و يا هر دو را در بانك دارند ، ما عملوند مشترك در روابط جبري به كار مي بريم . در جبر رابطه اي چندتايي ما به دو شرط « وجود داشتن » نياز داريم كه به وسيله ( v ) يا متصل مي شوند :
جبر رابطه اي چندتايي
اين توضيح  جمله  همه اسامي مشتري هاي چندتايي را براي نگهداري آن به يكي از روشهاي زير را مي دهد . 
نام مشتري در بعضي چندتايي ها از رابطه قرض كننده نوشته مي شود همچون قرض كننده از بانك 
نام مشتري در بعضي چندتايي ها از رابطه امانت گذار نوشته مي شود همچون امانت گذار در بانك .

اگر بعضي از مشتري ها هر دو ، يك وام و يك حساب در بانك را داشته باشند، مشتري فقط يكبار در نتيجه ظاهر مي شود . چرا كه در تعريف رياضي در يك مجموعه اجازه داده نمي شود كه از عناصر نسخه برداري شود . 
نتيجه اين تحقيق در شكل 11-2 نشان داده شده است. 
اکنون اگر تنها آن مشتري هايي را كه هر دو يك حساب و يك وام بانك دارند را خواسته باشيم، نياز داريم به اينكه ( v ) or را به ( ^ ) and در جمله قبلي تغيير دهيم.
نتيجه اين پرس و جو  در شكل 19- 2 نشان داده شده ا ست .
حال پرس و جوی  يافتن همه مشتري هايي كه يك حساب بانكي دارند اما يك وام از بانك ندارند را ملاحظه کنید. بيان رياضي رابطه اي براي اين پرس و جو مانند بيان هايي كه ما ارائه كرديم مي باشد . بجز آنهايي كه ما از علامت  ~))  not استفاده كرديم .  
رس و جوی  يافتن همه مشتري هايي كه يك حساب بانكي
اين بيان رياضي رابطه اي چندتايي از depositor ( ...) u   استفاده مي كند . با شرط آن كه نياز است به اين كه مشتري يك حساب در بانك داشته باشد و از
 borrower ( ...)    S  ~ استفاده مي شود با شرط اين كه آن مشتري ها كه پيدا مي شوند متعلق به بعضي از متغير رابطه اي وام گيرنده اي كه يك وام از بانك دارند ,نباشد .
نتايج اين پرس و جو در شكل 12 – 2 نشان داده شده است .
 پرس و جو
پرس و جویی را كه ما در بخش 3-3-2 استفاده كرده ايم ملاحظه نمائيد. براي توضيح بخش عمل : « يافتن همه مشتري هائي كه يك حساب در همه شاخه هاي كه معلوم شده در Brooklyn دارند . نوشتن اين پرس و جو در حساب رابطه اي چندتايي ، « براي همه » ساختار مشخص شده اي را به وسيله    ايجاد مي كنيم .
توجه : 
  پرس و جو
 
در انگليسي ، ما اين جمله را اين گونه بيان مي كنيم « همه مشتري هايي كه در آن 
( customer- name ) متغير t هست .  براي همه متغيرهاي u در رابطة branch و اگر مقدار u به عنوان يك صفت branch-city مساوي Brooklyn باشد آن گاه مشتري يك حساب در شاخه اي كه نام آن ظاهر شده است در صفت name -  branch متغير u داشته باشد» .
نكته ظريفي  در بالاي اين پرس و جو وجود دارد اين است كه : اگر هيچ شعبه ای درBrooklyn  وجود نداشته باشد و نام همه مشتري هائي كه در اين شرط برقرارند وجود نداشته باشد .
خط اول توضيح پرس و جو در اين حالت بحراني است ـ بدون شرط 
  توضيح پرس و جو
اگر هيچ شاخه اي در Brooklyn  وجود نداشته باشد ، هيچ مقدار t ( به انضمام مقاديري كه نام مشتري در رابطه customer نيستند . ) محدود شود .

تگها: پایگاه داده   پایگاه داده رابطه ای   جبر رابطه ای   حساب رابطه اي چندتايي   حساب رابطه ای   زبان های رابطه ای   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: