نوشته شده توسط
sheytoon.bala89
ميشه بگي:
- ضرب دكارتي چيه؟
- ضرب دكارتي دو جدول چيه؟
- اگه دو جدول فيلد مشترك نداشته باشن ميتونيم Join كنيم يا نه.
- آيا بايد فيلد مشترك حتما كليد باشه؟ (اگه ميتونه كليد نباشه چه عواقبي را به دنبال داره.)
- آيا عكس عمل Join وجود داره؟
ضرب دکارتی : یک عمل ریاضی است که برای تولید یک زوج مرتب از دو مجموعه استفاده میشه ، و تمام اعضای مجموعه اول را در مجوعه دوم به صورت زوج مرتب ایجاد میکند . مولفه اول زوج مرتب از مجموعه اول و مولفه دوم از مجموعه دوم
A={a,b,c}
B={1,2}
دو مجموعه فوق را در نظر بگیرید، حاصل ضرب دکارتی آن به این شکل است
C={(a,1)(a,2)(b,1)(b,2)(c,1)(c,2)}
-ضرب دکارتی دو جدول هم همین است ،با این تفاوت که بر روی رکوردهای انجام میشود.
-فیلد مشترک یعنی چی ؟ بله در CROSS Join شما نیازی به فیلد ندارید ولی در بقیه موارد برای اینکه یک رابطه بین دو جدول باشند باید فیلدی را مشخص کنید
-نه خیر ربطی به کلید بودن نداره ، ولی تا حالا برای من پیش نیومده که بخواهم پیوندی را بزنم که یک طرف کلید اصلی نباشه
مثال نقض : جدولی به این شکل دارید :
1- ID , int Primery Key , Auto increment
2- Melicode , nvarchar(15) Uniqe
,....
-----
جدول دوم به این شکل است
1-MeliCode nvarchar(15)
2-Cost money
,.....
پیوندی که روی این دو جدول زده میشه روی کد ملی انجام میشه ، وکد ملی کلید نیست . ( البته در جدول دوم به عنوان کلید خارجی شناخته میشه)
(البته از نظر طراحی مشکل دارد ، فقط برای اینکه سوالتون رو جواب داده باشم این مثال رو زدم)
-منظورتون از عکس عمل پیوند رو متوجه نشدم ؟!
چه چیزی رو میخواهین جدا کنید ؟! جداول که خودشون جدا هستند و هر زمان که نیاز دارید جداشون کنید خوب به تنهایی استفاده کنید