SELECT *
FROM R1 CROSS JOIN R2
Bu erda R1 va R2 asl operand munosabatlarining nomlari. CROSS JOIN opsiyasi R1 va R2 munosabatlarining barcha juft juftlariga mos keladigan barcha atributlar (chunki "*" belgisi operatorning birinchi qatoriga joylashtirilganligi) natijada paydo bo'lgan munosabatlarga yozilishini ta'minlaydi.
Dekart ko’paytma amalining amalga oshirishning bitta xususiyatini eslab qolish juda muhimdir. Bu xususiyat Dekart ko’paytmaning ikkilik ishlashini aniqlashning natijasidir. Eslatib o'tamiz:
r 4(S 4) = r 1(S 1) × r 2(S 2) = {t (S 1 ∪ S 2) | t [S 1] ∈ r 1 & t (S 2) ∈ r 2}, S 1 ∩ S 2= ∅;
Yuqoridagi ta'rifdan ko'rinib turibdiki, juft juftliklar majburiy ravishda o'zaro munosabatlar sxemalari bilan hosil bo'ladi. Shuning uchun, hatto SQLda ishlaganda ham, operandalarning asl munosabatlari bir xil atribut nomlariga ega bo'lmasligi shart. Ammo, agar ushbu munosabatlar bir xil nomga ega bo'lsa, vaziyatni o'zgartirish uchun atributlarni ishlatish orqali vaziyatni osonlikcha hal qilish mumkin, ya'ni bunday hollarda siz oldin aytib o'tilgan AS opsiyasidan foydalanishingiz kerak.
Ikkala munosabatlarning dekart ko’paytmasini topish kerak bo'lgan misolni ko'rib chiqaylik, ularning ba'zi atributlari bir xil nomga ega. Shunday qilib, quyidagi munosabatlarga ruxsat berilgan:
R1 ( A, B),
R2 (B, C);
R1.B va R2.B atributlari bir xil nomga ega ekanligini ko'rishimiz mumkin. Shuni yodda tutgan holda, SQLda ushbu dekart ko’paytma operatsiyasini amalga oshiradigan SELECT iborasi quyidagicha bo'ladi:
Dostları ilə paylaş: |