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

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


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

 -4-3 ترکیب های معنایی  دیتالوگ غیر بازگشتی

ما ترکیب های معنایی دیتالوگ را ملاحظه کرده ایم. و اکنون تنها به بررسی برنامه هایی می پردازیم که غیر بازگشتی اند. ترکیب های معنایی برنامه های بازگشتی تا اندازه ای پیچیده ترند که در بخش 5-4-6 مورد بحث قرار می گیرند. 
ما ترکیب های معنایی یک برنامه را با تعریفی از ترکیب های معنایی یک دستور واحد شروع میکنیم.

5-4-3-1 ترکیب های معنایی یک دستور
اصل نمونه سازی یک دستور، نتیجه جایگزین نمودن چند ثابت به جای هر متغیر درون دستور است. اگر متغیری چندین مرتبه در یک دستور تکرار شود، باید در تمام موارد ، ثابت یکسانی جایگزین آنها شود. اصول نمونه سازی را اغلب به راحتی instatiations می نامند. 

empl( X,Y) :- manager (X,Y)
empl( X,Y) :- manager (X,Z) , empl( Z,Y)
تصویر شماره 5-8: برنامه دیتالوگ بازگشتی
دستور مثال ما که معرف v1 است و نمونه سازی این دستور عبارت است از:
V1(A , B) :- account (A , "Perryridge" , B) , B >700
V1("A-217" , 750) :- account ("A-217" , "Perryridge" , 750 ) , 750 >700

در اینجا« 217-A » را جایگزین متغیرA  و عدد 750 را جایگزین متغیر B کرده ایم. معمولا یک دستور، نمونه سازیهای ممکن بسیاری دارد. این نمونه سازی ها با شیوه های مختلف تعیین مقدار برای هر متغیر درون این دستور مطابقت دارد. فرض کنید که دستور Ri به ما داده شود:
P(t1 , t2 , ….. , tn) :- L1 , L2 , … , Ln
و همین طور مجموعه حقایق I برای رابطه های بکار رفته در دستور (I را همچنین می توان نمونه ای از پایگاه داده تصور کرد) هر یک از نمونه سازی های R' در دستور R را ملاحظه نمایید:
  P(v1,v2,…vn) :- L1 , L2 , … , Ln
بطوریکه هر حرف Li یا از شکل qi (Vi ,1  , V1,2  , … , Vi , ni) است و یا از شکل منفی
 not qi (Vi ,1  , V1,2   , … , Vi , ni)  بطوریکه هر Vi و هر Vi,j یک ثابت باشد.

گوئیم که بدنه نمونه سازی دستورR' در I اقناع  می شود اگر:
1- در برابر هر حرف مثبت qi (Vi ,1  , … , Vi , nj)  در بدنه R' ، مجموعه حقایق I شامل این حقیقت باشد که qi (Vi ,1  , … , Vi , nj) .      
2- در برابر هر حرف منفی not qi (Vi ,1  , … , Vi , nj) در بدنه R' ، مجموعه حقایق I شامل حقیقت qi (Vi ,1  , … , Vi , nj)  نباشد.
ما این مجموعه حقایق را میتوانیم از مجموعه حقایق I با کمک دستور R نتیجه بگیریم و همانند زیر تعریف کنیم. 
مجموعه ای از دستورات مفروض R= { R1 , R2 , … , Rn }  را تعریف می کنیم. 
Infer (R,I) = infer (R1 , I) U infer (R2 , I) U …U infer (Rn , I)
فرض کنید که مجموعه ای از حقایق I که شامل چند تایی هایی برای relation_account در تصویر شماره 5-5 است، به ما داده شود. یک نمونه سازی ممکن از دستور R که مثال فعلی ماست چنین است: 
V1( "A-217" , 750) :- account ( "A-217" , "Perryridge" , 750 ) , 750 > 700
این حقیقت account ("A-217" , "Perryridge" , 750) در مجموعه حقایق I است. علاوه بر این 750 بزرگتر از 700 است و از اینرو از نظر ادراکی (700 و 750 ) در این رابطه «>»  است. از اینرو بدنه نمونه سازی دستور با I اقناع می شود. نمونه سازی ممکن دیگری از R وجود دارد و ما با استفاده از آنها می فهمیم که (R , I)infer عیناً مجموعه ای از حقایق را برای V1 دارد که در تصویر 5-9 نمایش داده شده است.

balance

Account-number

 

 

900

A-201

750

A-217

تصویر 5-9 نتیجه Infer (R,I)
 
 
5-4-3-2 ترکیبهای معنایی برنامه
وقتی که یک رابطه دیدگاه بر حسب رابطه دیدگاه دیگری تعریف می شود مجموعه ای از حقایق دیدگاه اول به مجموعه ای از حقایق دیدگاه دوم وابستگی دارد.
در این بخش فرض ما بر آن است که این تعریف غیر بازگشتی است؛ یعنی هیچ رابطه دیدگاهی به خودش وابستگی (مستقیم یا غیر مستقیم) ندارد. از اینرو می توانیم رابطه دیدگاهها را به روش زیر طبقه بندی کنیم و از این طبقه بندی می توانیم برای تعریف این ترکیبهای معنایی برنامه استفاده کنیم:
اگر همه رابطه هایی که در بدنه دستورات بکار رفته اند و رابطه ای را تعریف می کنند در پایگاه داده ذخیره شوند آن رابطه در لایه 1  است.
اگر همه رابطه هایی که در بدنه دستورات بکار رفته اند و رابطه ای را تعریف می کنند چه در پایگاه داده ذخیره شده باشند و چه در  لایه 1، آن رابطه در لایه 2 است.
در کل رابطه p در لایه i+1 است اگر که (1) در لایه های 1 و2 و3 و .... و i نباشد و (2) همه رابطه های بکار رفته در بدنه های دستورات که تعریف کننده p هستند یا در پایگاه داده و یا در لایه های 1 و2 و3 و .... و i ذخیره شوند. 
این برنامه ای را که در شکل 5-7  به همراه دستور اضافی آمده است ملاحظه کنید:
perryridge_account (X,Y) :- account (X, "perryridge" , Y)
در شکل 5-10 لایه بندی رابطه های دیدگاه درون برنامه نشان داده شده است. رابطه account در پایگاه داده است و رابطه Interest_rate در لایه 1 و از اینرو همه رابطه های بکار رفته در این دو دستور که تعریف کننده آنند در پایگاه داده اند. رابطه perryridge_account به همین شکل در لایه 1 است و بالاخره رابطه interest در لایه 2 واقع است. و از اینرو در لایه 1 نیست و همه رابطه های بکار رفته در دستور که تعریف کننده آنند یا در پایگاه داده اند و یا در لایه های پایین تر از لایه 2.
شکل 5-10
 
                               شکل 5-10
اکنون ما می توانیم ترکیبهای معنایی برنامه دیتا لوگ را بر حسب لایه بندی رابط دیدگاهها تعریف نماییم. اجازه دهید در یک برنامه معین لایه ها شامل 1 و 2 و 3 و .... و n باشد و R مجموعه همه دستورات تعریف کننده رابطه های دیدگاه را در لایه i مشخص کنند.
ما i0 را مجموعه ای از حقایق ذخیره شده در پایگاه داده و i1 را به قرار زیر تعریف    می کنیم.
I1 = I0 U infer (R1, I0)
ما به روشی مشابه تعریف I2 بر حسب I1 و R2 و از این قبیل می پردازیم. و این عمل را با استفاده از تعریف زیر انجام می دهیم:
Ii + 1 = Ii U infer(R1 + 1, Ii)
در پایان این مجموعه حقایق در رابطه دیدگاههایی که توسط برنامه تعریف شده اند (و ترکیبهای معنایی برنامه هم نام گرفته اند) با مجموعه ای از حقایق In منطبق بر بالاترین لایه n نشان داده می شوند.
در برنامه ای که در نمودار5-7 آمده است، I0 مجموعه حقایق درون پایگاه داده، و I1 مجموعه حقایق درون پایگاه داده همراه با همه حقایقی که می توانیم با کمک دستوراتی برای رابطه های interest_rate و perryridge_account از I0 نتیجه گیری کنیم است. 

بالاخره I2 شامل حقایق I1 همراه با حقایق رابطه interest  است که ما می توانیم با دستور تعریف کننده interest از حقایق درونI1  استنتاج کنیم این ترکیبهای معنایی برنامه –یعنی مجموعه ای از حقایقی که در هر یک از رابطه دیدگاه است- مجموعه حقایق I2 تعریف می شود. یاد آوری می کنیم که در بخش 3-9-2 چگونگی تعریف مفهوم دیدگاههای جبر رابطه ای غیر بازگشتی را بوسیله تکنیکی معروف به view expansion   مشاهده کردیم. به علاوه توسعه دیدگاه را می توان همراه با دیدگاههای دیتالوگ  غیر بازگشتی بکار برد. بر عکس تکنیک لایه بندی ای را که در اینجا شرح داده ایم می توان با دیدگاههای جبر رابطه ای استفاده کرد.
 

 


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

HyperLink

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