Ma'lumotlarning yaxlitligi
Relyatsion modellarda ma'lumotlar yaxlitligi masalasi alohida o'rin tutadi. Eslatib o'tamiz, kalit yoki potentsial kalit - bu minimal darajadagi atributlar to'plami, ularning qiymatlari bo'yicha kerakli topleni noyob tarzda topish mumkin, minimallik shundan iboratki, to'plamdan biron bir atributni chiqarib tashlash, qolgan atributlar bo'yicha topleni aniqlashga imkon bermaydi.
Har qanday munosabat kamida bitta mumkin bo'lgan kalitga ega. Ulardan biri asosiy kalit sifatida qabul qilinadi.
Asosiy kalitni tanlashda kompozitsion bo'lmagan kalitlarga yoki minimal atributlar to'plamidan tashkil topgan kalitlarga ustunlik berish kerak. Uzun tugmachalardan foydalanish ham istalmagan matn qiymatlari (Butun sonli atributlar kalit sifatida afzal qilingan.) Shunday qilib, xodimni aniqlash uchun siz noyob xodimlar raqamidan yoki pasport raqamidan yoki familiyalar to'plamidan, otasining ismi va bo'lim raqamidan foydalanishingiz mumkin. O'zaro munosabatlarning asosiy kaliti, ya'ni birlamchi kalitda qatnashadigan har qanday atribut aniqlanmagan qiymatlarni qabul qilishiga yo'l qo'yilmaydi. Bunday holda qarama-qarshi vaziyat yuzaga keladi ( to'qnashuv): Birlamchi kalitning noyob elementi paydo bo'ladi. Shuning uchun ma'lumotlar bazasini loyihalashda buni diqqat bilan ko'rib chiqish kerak.
Chet el kalitlari haqida. Shuni ta'kidlash kerakki, S munosabati B va A munosabatlarni birlashtirganligi sababli, u A va B munosabatlarning asosiy tugmalariga mos keladigan chet el kalitlarini o'z ichiga olishi kerak.
Jadvalning tashqi kaliti boshqa jadvallarning bir nechta asosiy kalitlari yordamida hosil bo'ladi.
Shunday qilib, ma'lumotlar bazasida munosabatlarni bog'lash usulini tanlash muammosini ko'rib chiqishda, tashqi kalitlar qanday bo'lishi kerakligi haqida savol tug'iladi. Bundan tashqari, hamma uchun tashqi kalit aniqlanmagan qiymatlarning chet el kalitlarida paydo bo'lishi (yoki mumkin emasligi) bilan bog'liq muammoni hal qilish kerak (NULL - qiymat yetishmayotgan ma'lumot uchun atribut). Boshqacha qilib aytadigan bo'lsak, munosabatlarda biron bir korxona bo'lishi mumkin emasmi?
Boshqa tomondan, chet el kalitlari nazarda tutilgan aloqalardan korroziyani olib tashlaganingizda nima bo'lishini oldindan o'ylab ko'rishingiz kerak. Biroq, quyidagi mumkin bo'lgan imkoniyatlar mavjud:
· Amaliyot kaskadlar - ya'ni munosabatlardagi koreyslarni yo'q qilish, munosabatlar bilan bog'liq bo'lgan to'siqlarni yo'q qilishga olib keladi. Masalan, ism familiyasi haqidagi ma'lumotlarni o'chirish va h.k. xodim bir jihatdan boshqa jihatdan uning ish haqi to'g'risida o'chirishga olib keladi;
· Ishlash bilan cheklangan -ya'ni faqatgina boshqa jihatdan tegishli ma'lumot mavjud bo'lmagan naychalar o'chiriladi. Ma'lumotlarning hammasi ham o'chirilmaydi (har jihatdan ham emas), chunki u boshqa usullar bilan ishlatilishi mumkin, bu ma'lumotlar o'chirilishi ma'lumotlar yaxlitligini buzishga olib keladi. Agar bunday ma'lumot mavjud bo'lsa, uni o'chirish mumkin emas, masalan, ism, familiya va hk. xodim faqatgina uning ish haqi to'g'risida tegishli munosabatlarda ma'lumot bo'lmasagina mumkin.
Ba'zi bir tashqi kalitlarga havola qilingan munosabatlarning asosiy kalitini yangilashga urinish sodir bo'lganda nima bo'lishini texnologiyasini ta'minlash kerak. Bu erda siz o'chirishda bo'lgani kabi bir xil variantlarga egasiz:
· Amaliyot kaskadli bo'ladi, ya'ni birlamchi kalit yangilanganda, aloqada bo'lgan tashqi kalit yangilanadi. Masalan, xodimlarning ma'lumotlari saqlanadigan munosabatlarda asosiy kalitni yangilash, ish haqi to'g'risidagi ma'lumotlar bilan aloqada tashqi kalitni yangilashga olib keladi.
· Amaliyot cheklangan, ya'ni faqat boshqa tegishli ma'lumot bo'lmagan asosiy kalitlar yangilanadi. Agar bunday ma'lumot mavjud bo'lsa, yangilanishni amalga oshirish mumkin emas. Masalan, xodim haqida ma'lumot saqlanadigan munosabatlardagi asosiy kalitni yangilash, agar u bilan bog'liq munosabatlarda uning maoshi to'g'risida ma'lumot bo'lmasa.
Do'stlaringiz bilan baham: |