shaklida tashkil qilishingiz mumkin:
A.FISH va B.FISH
Ba'zida bitta munosabat uchun dekart ko’paytma amalini bajarish kerak bo’lib qolishi mumkin. Bunday holda, yana bitta o'zgaruvchidan foydalanish kerak, aks holda natija atributlari nomlarini to'g'ri shakllantirish mumkin bo'lmaydi:
A1 = A, R = A × A1.
Bu erda "=" tayinlash operatorini bildiradi.
Tanlash. Berilgan jadvaldagi ma’lum shartni qanoatlantiruvchi barcha kortejlardan iborat yangi jadval hosil qiladi. Bu algebraik cheklanish hisoblanadi.
Shart =, >, < va boshqa taqqoslash amallari orqali beriladi. Tanlash amalining ko’rinishi quyidagicha bo’ladi:
A WHERE
Tanlash amali uchun bitta domendagi X va Y atributlari aniqlanishi kerak va θ operatori buning uchun mantiqiy bo'lishi kerak. Atributlardan biri yoki ikkalasining o'rniga konstanta qiymatni ko'rsatish mumkin.
Quyidagi berilgan A munosabat asosida Guruh raqami 302 ga teng bo’lgan kortejlarni topish talab qilinsin.
“Talaba” munosabati
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
303
|
124
|
Jonibekov A. B.
|
302
|
122
|
Salimov J. I.
|
302
|
TALABA [Guruh = 302]
θ – tanlash amalining ta'rifini kengaytiraylik. θ -tanlovi uchun taqqoslash sharti mantiqiy biriktiruvchilar bilan bog'langan oddiy taqqoslashlarning ixtiyoriy sonini o'z ichiga olishi mumkin deb fikr yuritish mumkin. Agar kerak bo'lsa, qavslardan ham foydalanish mumkin.
Mantiqiy biriktiruvchilar uchun alternativ yozuv shakllari ham qo'llaniladi, ulardan biri matematik mantiqda qabul qilinganga yaqin, ikkinchisi ma'lumotlar bazasi so'rovlari tillarida yozuv shakliga yaqinroq:
“EMAS” yoki NOT tarzida yoziladi;
“VA” ?, yoki AND
“YOKI”, yoki OR.
Quyidagicha ifodani yozish mumkin:
TALABA WHERE ((Guruh = 302) AND (StudID<124))
Yoki xuddi shu yozuvni quyidagi ko’rinishda yozamiz:
TALABA [Guruh=302 & StudID < 124]
Natijada quyidagi kortej natija sifatida olinadi:
<123, Salimov J. I., 302>
Proyeksiya – berilgan jadvaldagi ba’zi kortejlarni istisno (chiqarib tashlash) qilib qolgan kortejlardan (podkortej) yangi munosabat hosil qiladi.
Shunday qilib, proyeksiya natijasida dastlabki munosabatlarning ba'zi bir atributlari chiqarib tashlanadi, shundan so'ng takroriy kortejlarni olib tashlash kerak bo'lishi mumkin.
A munosabatining proyeksiyasi V, W, Z atributlari bilan A[V, W, Z] bilan belgilanadi.
Masalan, yuqoridagi TALABA munosabatini biroz o'zgartiramiz va "F.I.SH" atributi bo'yicha proyeksiyani amalga oshiramiz.
TALABA munosabati
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
303
|
124
|
Jonibekov A. B.
|
302
|
122
|
Salimov J. I.
|
302
|
125
|
Axrorov S. I.
|
301
|
Talaba munosabatiga Proyeksiya amalini qo’llash
TALABA [FISH]
FISH
|
Axrorov S. I.
|
Jonibekov A. B.
|
Salimov J. I.
|
Ko'rib turganingizdek, StudID va "Guruh" atributlarini olib tashlaganingizdan so'ng, nusxa ko'chirilgan <" Axrorov S. I."> kortejida bitta nusxada qoldirildi.
Ulash. Berilgan ikkala jadvalda umumiy qiymatga ega bo’lgan kortejlarning ulanishidan iborat yangi jadval hosil qiladi. Natijaviy jadvalda umumiy qiymat faqat bir marta qatnashadi. Bunday ulash tabiiy ulash deb ataladi (v).
Quyidagi ikki munosabatni qarab chiqamiz.
TALABA munosabati
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
303
|
124
|
Jonibekov A. B.
|
302
|
127
|
Salimov J. I.
|
302
|
GURUH munosabati
GuruhSardor
|
Guruh
|
Jonibekov A. B.
|
302
|
Akramov B. I.
|
304
|
TALABA va GURUH munosabatlari orasida ulash amalini qo’llash
TALABA JOIN GURUH
StudID
|
FISH
|
Guruh
|
GuruhSardor
|
124
|
Jonibekov A. B.
|
302
|
Jonibekov A. B.
|
127
|
Salimov J. I.
|
302
|
Jonibekov A. B.
|
TALABA munosabatida "Guruh" atributining qiymati "344" ga teng kortejlar mavjud emasligi sababli, GURUH munosabatida qiymati "302" guruhi talabalari to'g'risidagi ma'lumotlarni o'z ichiga olgan kortejlar munosabatda qoldi.
Birlamchi kalitning o'ziga xosligi va ortiqcha emasligi talablaridan kelib chiqadigan munosabatlarda asosiy kalit {StudID} ekanligi kelib chiqadi.
A va B munosabatlarning umumiy atributlari bo'lmasin va u holda θ operatori tanlash kabi aniqlanadi.
Join-qo'shilish ikki munosabatning dekart ko’paytmasini topishga va natijada θ-tanlashga tengdir.
Ushbu amalni yozishni ikkita usuli mavjud:
A [X θ Y] B
(A TIMES B) WHERE X θ Y
Quyidagi misolni ko’rib chiqaylik:
A munosabati qurilmalar narxi to'g'risida ma'lumotni o'z ichiga olsin, B munosabati esa jihozlar narxi to'g'risida ma’lumotlarni saqlaydi. Qurilmalarning narxlari ichida jihozlarning narxlaridan qimmatroq bo’lgan qurilmalar ro’yxatini aniqlash lozim. Buning uchun “QurilmaNarxi” > “JihozNarxi” sharti asosida ulash amalini bajaramiz.
A munosabat
Qurilma
|
QurilmaNarxi
|
Qurilma1
|
100
|
Qurilma2
|
200
|
B munosabat
Jihoz
|
JihozNarxi
|
Qurilma1
|
50
|
Qurilma2
|
150
|
A [QurilmaNarxi JihozNarxi] B
Qurilma
|
QurilmaNarxi
|
Jihoz
|
JihozNarxi
|
Qurilma1
|
100
|
Qurilma1
|
50
|
Qurilma2
|
200
|
Qurilma1
|
50
|
Qurilma2
|
200
|
Qurilma2
|
150
|
Bo’lish. A va B munosabatlari mos ravishda {X, Y} va {Y} atributlariga ega bo'lsin. Ikki munosabatlarning bir xil nomlangan atributlari bir xil domenlarda aniqlanadi.
Bo’lish – berilgan binar va unar ikkita jadval uchun unar jadvalning barcha qiymatlari bilan moslashgan binar jadvaldagi bitta atributning qiymatlaridan iborat jadval.
Ushbu amal quyidagicha yoziladi:
A / B
A DIVIDED B
Quyida keltirilgan A munosabatida qaysi talaba qaysi fanni topshirganligi to'g'risida ma'lumotlar mavjud. B munosabati fanlarning ro'yxatini o'z ichiga oladi. B jadvalida keltirilgan barcha fanlardan o'tgan talabalarning ID raqamlarini olishingiz kerak.
Muammo A ni B ga bo'lish yo'li bilan hal qilinadi.
A munosabat
StudID
|
Fan
|
123
|
Fizika
|
123
|
Matematika
|
124
|
Matematika
|
127
|
Fizika
|
B munosabat
Bo’lish amalini qo’llash natijasida hosil bo’lgan munosabat
A/B