تالار گفتمان مانشت
حساب رابطه ای - نسخه‌ی قابل چاپ

حساب رابطه ای - لهمشد - ۰۱ دى ۱۳۸۹ ۰۳:۵۵ ب.ظ

ببنید شکل کلی حساب رابطه ای این هستش خوب داریم
کد:
{<c1,c2,......,cn>}|P(c1,c2,............,cn,cn+1,...)}
که مفهو مش هم اینه:
ستون های c1وc2و...........cn را بده بطوریکه شرط P بر قرار باشد ؟
خوب ببینید این شکل کلی اش هستش که وجود داره بعد یه سری قواعد تعریف شده مثلا:
برای ارتباط متغیر‌ها به جدول از تعلق استفاده میشود و شرط همتایی باید رعایت شود ؟
خوب الان ببنید سوالم اینجاست ایا متغیر‌ها که در کل فرم ستوری بالا بیان شده باید شرط همتایی رو داشته باشند یا خیر فقط ان متغیر هایی که در شرط P قرار داده میشوند
خودم خیلی فکر کردم و دیدم که منطقی هستش که متغیر‌ها یی که فقط در شرط P عنوان میشوند ولی باز هم مفهوم غلطه چرا مثلا در فایل تصویری زیر ببنید جوابی که من برای پرس جو دادم شرط همتایی رو رعایت کردم و نیاز به تعریف متغیر there Exist نداشتم ولی پاسخ پرس و جو دومی درسته بنابراین جوابم غلطه ؟
[تصویر:  9259_1_1379099101.gif]

RE: حساب رابطه ای - ۵۴m4n3h - 03 دى ۱۳۸۹ ۰۸:۰۲ ب.ظ

اون there exist یه جور تعریف کردن متغیر هست، همه‌ی متغیرهایی که ازشون استفاده میکنید باید قبلش تعریف شده باشن! sn که از قبل توی خروجی اومده (انگار که تعریف شده) بعد برای این که از جدول stud استفاده کنیم، حتماً باید برای بقیه‌ی صفت هاش هم یه متغیری تعریف کنیم تا same arity برقرار بشه!

RE: حساب رابطه ای - لهمشد - ۰۳ دى ۱۳۸۹ ۰۸:۴۱ ب.ظ

نقل قول: همه‌ی متغیرهایی که ازشون استفاده میکنید باید قبلش تعریف شده باشن!
پس با این تفسیر یعنی در حساب رابطه ای هر چه در شرط P بیاید در خروجی یعنی سمت چپ قاعده کلی حساب رابطهای باید قرار گیرد و اگر چنین نباشد باید با exist there تعریف شود ؟ یا به زبان خیلی ساده‌تر شما می فر ماید که هر چیزی که در شرط P می‌اید باید در خروجی ظاهر گردد و اگر چنین نیست یعنی در حالتی که بعضی صفات قرار است در خروجی ظا هر گردد باید سایر صفاتی که در خروجی نمی ایند را با EXIST THERE تعریف شود ایا منظور چنین می باشد؟
حالا ۲ سوال:
۱-سوال اصلی من این هم بود که اگه ممکنه جواب بدهید شرط همتایی چگونه باید برقرار باشد یعنی هم صفات شر ط در P حساب رابطهای باید همتا باشد و هم خروجی یانه فقط صفات در شرط P ؟
۲-معنی exist there یعنی برای برخی وجود دارد و زمانی از این استفاده می کنیم" که برخی صفات در خروجی نمی ایند و باید تعریف شوند بقول شما " ایا درست است اگر رست لطفا بفرماید چون الان چند جنجالی از for all به ذهنم رسید بپیرسم ؟

RE: حساب رابطه ای - ۵۴m4n3h - 03 دى ۱۳۸۹ ۰۹:۰۸ ب.ظ

نقل قول: پس با این تفسیر یعنی در حساب رابطه ای هر چه در شرط P بیاید در خروجی یعنی سمت چپ قاعده کلی حساب رابطهای باید قرار گیرد و اگر چنین نباشد باید با exist there تعریف شود ؟ یا به زبان خیلی ساده‌تر شما می فر ماید که هر چیزی که در شرط P می‌اید باید در خروجی ظاهر گردد و اگر چنین نیست یعنی در حالتی که بعضی صفات قرار است در خروجی ظا هر گردد باید سایر صفاتی که در خروجی نمی ایند را با EXIST THERE تعریف شود ایا منظور چنین می باشد؟
بله!

نقل قول: سوال اصلی من این هم بود که اگه ممکنه جواب بدهید شرط همتایی چگونه باید برقرار باشد یعنی هم صفات شر ط در P حساب رابطهای باید همتا باشد و هم خروجی یانه فقط صفات در شرط P ؟
منظور از همتایی اینه که در صورتی میتونید از رابطه‌ی عضویت استفاده کنید که تعداد صفت هایی که داخل <> مینویسید با تعداد ستون های جدولی که دارید رابطه‌ی عضویت رو در موردش مینویسید برابر باشند.
مثلاً اگه یه جدول T دارید که ستون های A,B,C داره، اگه بخواید رابطه‌ی عضویت رو برای این جدول بنویسید حتماً باید یه چیزی شبیه این باشه [تصویر:  gif.download?%3Ca,b,c%3E\epsilon&amp;space;T] یعنی حتماً باید ۳ تا متغیر داشته باشه، حالا اگه متغییرهاش قبلاً تعریف شده بودن که هیچی ولی هر متغیری که قبلاً تعریف نشده بود، باید با there exist تعریف بشه.

نقل قول: معنی exist there یعنی برای برخی وجود دارد و زمانی از این استفاده می کنیم" که برخی صفات در خروجی نمی ایند و باید تعریف شوند بقول شما " ایا درست است اگر رست لطفا بفرماید چون الان چند جنجالی از for all به ذهنم رسید بپیرسم ؟

[تصویر:  gif.download?a&amp;space;\mid&am...mp;space;T]
الآن مثلاً این جا there exist یعنی این که یه b و c های در جدول وجود دارند که a,b,c با هم یه سطر از جدول T رو تشکیل میدن و باید اون شرایطی که در ادامه اومده رو داشته باشند.