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

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


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

5-4-7 قدرت بازگشتی

ديتالوگ داراي بازگشت نسبت به ديتالوگ بدون بازگشت قدرت گویایی بیشتری دارد. به عبارت ديگر بر روي پايگاه داده، پرس وجوهايي وجود داردکه بااستفاده از بازگشت مي توان به آنها پاسخ داد ولي بدون استفاده از آنها خير. براي مثال ما نمي توانيم بدون استفاده از بازگشت در ديتالوگ (يا براي آن موضوع، SQL ياQBE  بدون بازگشت) بستار انتقالي بيان کنيم. بستار انتقالي رابطه manager را بررسي کنيد. تعداد ثابتی از پیوندها را از راه انتقال می توان پیداکرد، یعنی تنها آن کارکنانی که چند عدد ثابت (دیگر) از سطوح هرمدیر پایین تر هستند. (ما در اینجا قصد اثبات این نتیجه را نداریم.) از آنجایی که هر پرس وجوی غیربرگشتی ثابتی تعداد پیوند ثابتی دارد. تعداد سطوح کارکنانی راکه می توان پیدا کرد، محدود است. اگر تعداد سطوح کارکنان دررابطه manager بیشتر ازحد پرس وجو باشد؛ پرس وجو چند سطح از کارکنان را ازدست خواهد داد. بنابراین برنامه دیتالوگ غیر بازگشتی نمی تواند بستارانتقالی را بیان کند.
یک گزینه برای بازگشتی، استفاده ازمکانیزم خارجی همچون SQL ترکیبی است که برای تکرار درمورد پرس وجوی غیربازگشتی می آید. نتیجه این تکرار در حلقه Fixed-Point در تصویر 11- 5 به اجرا در می آید. درحقیقت آن به این معناست که چگونه چنین پرس وجوهایی درباره سیستم های پایگاه داده که بازگشت را پشتیبانی نمی کند اجرا می شود. البته نوشتن چنین پرس وجوهایی از طریق تکرار نسبت به آنهایی که با استفاده از بازگشت بدست می آیند، پیچیده تر است وارزشیابی با بازگشت را می توان نسبت به ارزشیابی به وسیله تکرار سریعتر انجام داد.
این نیروی بیان که به وسیله بازگشت ایجاد می شود، باید بامراقبت استفاده شود. نوشتن برنامه های بازگشتی که تعداد نامحدودی حقیقت به وجودآورد نسبتاً آسان است. همچنان که این برنامه نشان می دهد:
Number(0)
A = B +1,Number(A) :-  Number (B)
این برنامه برای همه n های صحیح مثبت، number(n) ایجاد می کند که به وضوح نامحدود است وبه انتها نخواهد رسید. دومین دستور برنامه وضعیت ایمنی بخش 5- 4-4  را اقناع نمی کند. برنامه هایی که وضعیت ایمنی را اقناع می کنند، پایان خواهند یافت حتی اگر بازگشتی باشند، مشروط براین که آن می تواند تنها حاوی ثابتهایی از پایگاه داده باشند وبدین ترتیب رابطه های دیدگاه می بایست محدود باشند. عکس این مسئله صادق نیست، یعنی برنامه هایی وجود دارند که اوضاع ایمنی را اقناع نمی کنند اما، پایان می پذیرند.
روش Dotalog-Fixpoint به صورت تکراری، ازتابع infer(R,I) برای محاسبه اینکه چه حقایقی درست است استفاده می کند، حقایقی که در برنامه دیتالوگ برگشتی ارائه شده اند. اگر چه تنها برنامه های دیتالوگ بدون لیترال منفی را بررسی کردیم لیکن این روش را می توان در مورد دیدگاههایی هم که به زبانهای دیگر تعریف شده اند، از قبیل SQL یا جبر رابطه ای، استفاده کرد، به شرط اینکه دیدگاهها، شرایطی را که بعداً توضیح می دهیم اقناع کنند. صرفنظر از زبانی که برای تعریف یک دیدگاه V بکار     می رود، این دیدگاه را می توان از سوی عبارت EV تعریف شده دانست که با فرض مجموعه ای از حقایق I، مجموعه ای از حقایق EV(I) را برای رابطه دیدگاهV برمی گرداند. و با فرض مجموعه ای از تعریف هایR (به هرزبان که باشد) می توانیم تابع I), infer(Rرا که  را بر می گرداند، تعریف کنیم. تابع قبلی برای دیتالوگ همان شکل تابع infer را دارد.
یک دیدگاه V را یکنواخت  گویند اگر هردو مجموعه حقایقI1  و  I2 معلوم باشند بنحویکه  I1 I2   پس EV(I2)   EV(I1) ، بطوریکه EV عبارتی است که برای تعریف V بکار رفته است. به همین ترتیب تابع infer را نیز یکنواخت می گویند اگر:
Infer(R,I2)  I2  infer (R,I1)     I1
بنابراین اگرinfer را یکنواخت بگیریم، بافرض مجموعه ای از حقایقI0  که زیرمجموعه حقایق درست است، می توانیم مطمئن باشیم که همه حقایقinfer (R,I0) هم درست هستند. بااستفاده ازاین استدلال که در بخش 5-4-6 آمده است، می توانیم نشان دهیم که رویه Dotalog-Fixpoint  درست است (یعنی آن، تنها حقایق درست را محاسبه می کند) مشروط براینکه تابعinfer یکنواخت باشد.
عبارات جبر رابطه ای که درآن تنها عملگرهای П ، σ ، × ،     ، U ، ∩ ، ویا ρ استفاده می شود یکنواخت هستند. دیدگاههای بازگشتی را می توان با استفاده از چنین عباراتی تعریف کرد.
البته عبارتهای رابطه ای که از عملگر –  استفاده می کنند یکنواخت نیستند. برای مثال فرض کنید رابطه های manager1 و manager2 رابطه هایی با همان الگوی رابطه manager باشند. فرض کنید:
I1 = { manager1 ("Alon" , "Barinsky") , manager1 ("Barinsky " , "Estovar") , manager2 ("Alon" , "Barinsky")}
و فرض کنید
I2 = { manager1 ("Alon" , "Barinsky") , manager1 ("Barinsky " , "Estovar") , manager2 ("Alon" , "Barinsky") , manager2 ("Alon" , "Barinsky")}

عبارت manager1-manager2  را ملاحظه کنید. اکنون نتیجه عبارت قبلی در خصوص I1 چنین است ("Barinsky " , "Estovar") در حالیکه نتیجه عبارت در باره I2 تهی است. اما I2  I1، از اینرو این عبارت یکنواخت نیست. عبارتهایی هم که از عمل گروه بندی جبر رابطه ای گسترش یافته استفاده     می کنند، یکنواخت هستند. تکنیک Fixed-point در مورد دیدگاههای بازگشتی که با عبارتهای یکنواخت تعریف می شود، کار نمی کند. البته، مواردی وجود دارد که چنین دیدگاههایی مفیدند.بویژه برای تعریف تراکم ها برای روابط بخش-زیربخش. چنین رابطه هایی تعیین می کنند که زیر بخش هایی هر بخش را تشکیل می دهند. زیر بخشها ممکن است خود زیر بخشهای دیگری داشته باشند و به همین ترتیب تا آخر. از اینرو روابطی مثل رابطه manager ساختار بازگشتی طبیعی دارند.مثالی از پرس و جوی متراکم در خصوص چنین ساختاری کل زیر بخشهای هر بخش را محاسبه می کند.

5-5 خلاصه
 حسابهای چندگانه رابطه ای و حسابهای قلمرو رابطه ای زبانهای غیر رویه ای هستند که قدرت     پایه ای لازم در زبان پرس و جو را نمایش می دهد. جبر رابطه ای پایه ای زبان رویه ای است که از نظر قدرت با هر دو شکل حساب رابطه ای در زمانی که به عبارات ایمنی محدود میشوند برابر است.
محاسبات رابطه ای، محاسباتی  مختصر و مفید و برای کاربران موقتی سیستم پایگاه داده نامناسب هستند. لذا سیستم های پایگاه داده تجاری، زبانهای دارای «syntactic sugar» بیشتر را استفاده می کنند. ما دو زبان پرس و جوی دیتالوگ و QBE را بررسی کرده ایم.
QBE مبتنی بر پارادیگم  ویژوال است: این پرس و جوها بیشتر شبیه جدول مشاهده می شوند.
QBE و گونه های آن برای کاربران غیر متخصص پایگاه داده رایج شده است چون پارادیگم ویژوال مبتنی بر درک مستقیم آن است. سیستم پایگاه داده میکروسافت اکسس که بصورت گسترده ای بکار      می رود، نوعی ورژن گرافیکی QBE را پشتیبانی می کند که GQBE نامیده می شود.
دیتالوگ از پرولوگ مشتق می شود اما برخلاف پرولوگ، معانی اخباری دارد، که پرس و جوهای ساده ای ایجاد می کند که برای نوشتن راحت ترند و ارزشیابی آنها هم برای بهینه سازی راحت تر است.
دیدگاههای تعریف کننده در دیتالوگ بطرز خاصی راحتند و دیدگاههای بازگشتی که دیتالوگ پشتیبانی می کند این امکان را فراهم می سازد که پرس و جو بنویسیم. پرس و جوهای همچون پرس و جوهای بستار انتقالی، که نمیتوان آن را بدون بازگشت یا تکرار نوشت. البته استانداردهای موجود برای ترکیب های مهمی چون گروه بندی و تراکم، در دیتالوگ پذیرفته نمی شود. دیتالوگ اساساً یک زبان تحقیقاتی است.
 

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

HyperLink

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