Havola qilingan butunlik. Agar aloqada tashqi kalit mavjud bo'lsa, u holda tashqi kalit qiymati yoki uning bazaviy munosabatlaridagi ba'zi bir kortej potensial kalitining qiymatiga mos kelishi kerak yoki tashqi kalit butunlay NULL qiymatlari bo'lishi kerak.
62. Bo'sh qiymat – Atributning qiymati hozircha ma'lum/noma'lumligini yoki ushbu kortej qabul qilinmasligini bildiradi.
Bo'sh qiymat (uni shartli ravishda NULL deb atashadi) mantiqiy "noma'lum" sifatida ko'rib chiqilishi kerak. Boshqacha qilib aytganda, bu qiymat biron bir kortej doirasiga kirmaydi yoki hali hech qanday qiymat o'rnatilmagan. NULL kalit so'zi to'liq bo'lmagan yoki g'ayrioddiy ma'lumotlarni boshqarish usuli hisoblanadi. Biroq, NULLni bo'sh sonli bo'shliq yoki bo'shliq bilan to'ldirilgan matn qiymati deb tushunmaslik kerak. Nollar va bo'shliqlar ma'lum bir qiymatni anglatadi, NULL kalit so'zi esa hech qanday qiymat yo'qligini bildiradi.
63. . Har bir ma'lumotlar bazasida o'z amallar to'plami mavjud. Ushbu amallar ma'lumotlar bazalarini bir holatdan boshqasiga o'tkazadi. Har bir amal ma'lumotlarni tanlash (seleksiya) va tanlangan ma'lumotlarda bajariladigan amallarni o'z ichiga oladi. Relatsion ma'lumotlar bazasining nazariy asosi - bu to’plamlar nazariyaga asoslangan va munosabatlar bo'yicha maxsus operatsiyalarni hisobga oladigan relyatsion algebralar va matematik mantiqqa asoslangan relyatsion hisoblardir. Relatsion bazaning ma'lumotlarini boshqarish uchun munosabatlar nazariyasining operatsiyalari qo'llaniladi.
64. Relyatsion modelni ishlab chiqishda E. Kodd munosabatlarni operandlar sifatida ishlatadigan va natija sifatida munosabatlarni qaytaradigan relyatsion algebrani kiritdi. U sakkizta amalni o'z ichiga oladi:
• to'plamlar ustidagi an'anaviy amallar: birlashma, kesishma, ayirma, dekart ko’paytma;
65. Relyatsion algebra haqida gapirganda, biz yopiq bo'lish xususiyatini e'tiborsiz qoldirolmaymiz. Bu munosabatdagi relyatsion amal natijasi ham munosabat bo'lishi yotadi. Shuning uchun bitta amalning natijasi boshqasiga kirish sifatida ishlatilishi mumkin. Shunday qilib, ichki biriktirilgan ifodalardan foydalanish mumkin.
66. B irlashma. Berilgan ikkita munosabatdan biriga va ikkalasiga ham tegishli bo’lgan kortejlardan iborat yangi munosabatni qaytaradi.
Munosabatlar uchun ikkita bir xil kortej bo'lishi mumkin emasligi sababli, birlashma jarayoni dublikatlarni olib tashlaydi. Agar bu A va B birlashtirilgan munosabatlarda to'liq mos keladigan kortejlar uchrashadigan bo'lsa, yangi munosabatlar tanasini tashkil etadigan kortejlar to'plami to'liq mos keladigan elementlarni o'z ichiga olmaydi. Natija darajasi dastlabki munosabatlar darajasiga teng bo'ladi va kardinallik dastlabki munosabatlar kardinallari yig'indisidan oshmaydi.
Relyatsion amallarni yozish qoidalari adabiyotlarda turlicha ifodalangan. Birlashma yozish uchun, qoida tariqasida, ikkita belgidan biri ishlatiladi:
UNION
Ushbu yozuv shakllarining birinchisi to'plam nazariyasida qo'llanilganiga o'xshash, ikkinchisi ma'lumotlar bazasi so'rovlari tillarida ishlatiladigan yozuvlarga yaqinroq.
67. Kesishma. (∩). Bir vaqtning o’zida ikkala munosabatga ham tegishli bo’lgan barcha kortejlardan iborat yangi munosabatni qaytaradi. Kesishma quyidagicha tarzida ifodalanadi:
INTERSECT
Kesishma natijasining kardinal raqami A va B munosabatlarning kardinallik qiymatining eng kichigidan ko'p bo'lmaydi, daraja esa dastlabki munosabatlar darajalariga teng.
A va B munosabatlar o’rtasidagi kesishma amali.
.
68. Ayirma (–). Berilgan ikkala munosabatdan faqat birinchisiga tegishli bo’lgan kortejlardan iborat yangi munosabatni qaytaradi.
Kesishma quyidagicha tarzida ifodalanadi:
MINUS
Natijaning kardinal raqami A raqamidan ko'p bo'lmaydi, daraja dastlabki munosabatlar darajalariga teng.
Natijaning kardinal raqami A raqamidan ko'p bo'lmaydi, daraja dastlabki munosabatlar darajalariga teng.
Yuqorida keltirilgan ta'riflarni misollar bilan tushuntiramiz. A va B munosabatlar jadvalda ko'rsatilganidek berilgan bo'lsin. Mos ravishda 4.2 va 4.3. StudID atributi asosiy kalit sifatida belgilangan. A va B mohiyatlari ustida birlashma, kesishma, ayirma amallarining bajarilish natijalari keltirilgan. A munosabat
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
301
|
124
|
Salimov J. I.
|
301
|
B munosabat
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
301
|
127
|
Ne’matov A. B.
|
302
|
A va B munosabatlar o’rtasidagi birlashma amali.
.
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
301
|
124
|
Salimov J. I.
|
301
|
127
|
Ne’matov A. B.
|
302
|
A va B munosabatlar o’rtasidagi kesishma amali.
.
StudID
|
FISH
|
Guruh
|
123
|
Axrorov S. I.
|
301
|
A va B munosabatlar o’rtasidagi ayirma amali.
.
StudID
|
FISH
|
Guruh
|
124
|
Salimov J. I.
|
301
|
Quyidagi fikrlarga e'tibor qaratish lozim. Birinchidan, kalitlar va atribut nomlarining merosxo'rligi, natijada paydo bo'lgan munosabatlar sarlavhasini aniqlashga imkon berdi. Ikkinchidan, A–B natijasi odatda B–A natijasiga teng bo'lmaydi.
69. Dekart ko’paytma. (*) – berilgan ikkala jadvaldagi kortejlarning kombinatsiyalaridan iborat yangi jadval hosil qiladi.
Bu holatda A va B munosabatlarda umumiy atributlar mavjud bo’lmasligi mumkin. Dekart ko’paytma quyidagicha tarzida ifodalanadi:
TIMES
Quyidagi A va B munosabatlarning Dekart ko’paytmasini topamiz.
A munosabat
StudID
|
FISH
|
123
|
Axrorov S. I.
|
124
|
Salimov J. I.
|
127
|
Ne’matov A. B.
|
B munosabat
A va B munosabatlar o’rtasidagi dekart ko’paytma amali.
StudID
|
FISH
|
Fan
|
123
|
Axrorov S. I.
|
Matematika
|
123
|
Axrorov S. I.
|
Fizika
|
124
|
Salimov J. I.
|
Matematika
|
124
|
Salimov J. I.
|
Fizika
|
127
|
Ne’matov A. B.
|
Matematika
|
127
|
Ne’matov A. B.
|
Fizika
|
Dekart ko’paytma amali natijasida hosil bo’lgan munosabat darajasi dastlabki munosabatlar darajalari yig'indisiga (2 + 1), kardinallik esa munosabatlarning kardinallik raqamlari ko'paytmasiga teng ekanligiga ishonch hosil qilishingiz mumkin. (3 × 2). Natijada paydo bo'lgan munosabat birlamchi kalitga ega (StudID, Fan), dastlabki aloqada esa bu oddiy edi.
Ushbu amalning quyidagi xususiyatlariga va quyida muhokama qilinadigan "ulash" operatsiyasiga e'tibor qaratish lozim. Agar A va B munosabatlari bir xil atributlarga ega bo'lsa, natijada ularni ajratish uchun siz bunday atribut nomini . 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.
70. 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:
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>
71. 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.
72. 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
|
73. 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.
Do'stlaringiz bilan baham: |