Tashqi kalitlari.Tashqi kalit - bu bitta jadvaldagi ustun, uning qiymati boshqa jadvalning asosiy kaliti bo'lgan ustun qiymatlari bilan bir xil. Chet el kalitlari ma'lumotlar yo'naltiriladigan yaxlitlik mexanizmining juda muhim qismidir.
Ma'lumotlar bazasida tasqiy kalit Orders (Buyurtma) lar jadvalining asosiy kalitida joylashgan Customers (Mijoz) lar jadvalidagi mijoz identifikatori ustunidir. Ushbu ustun faqat Customers (Mijoz)lar jadvalining birlamchi kalitidagi qiymatlarni qabul qilishi mumkin.
Tashqi kalitini aniqlashning yna bir usuli.
CREATE TABLE Orders
(
order_num INTEGER NOT NULL PRIMARY KEY,
order_date DATETIME NOT NULL,
cust_id CHAR(10) NOT NULL REFERENCES Customers (cust_id)
);
REFERENCES kalit so'zidan foydalanib, cust_id ustunidagi har qanday qiymat Customers (Mijoz)lar jadvalining cust_id ustunida bo'lishi kerakligini tasdiqlaydi.
Boshqa sintaksisdan foydalanish mumkin.
ALTER TABLE Customers
ADD CONSTRAINT
FORSIGN KEY (cust_id) REFERENCES Customers (cust_id);
Tashqi kalitlari mos yozuvlar ma'lumotlarining yaxlitligini ta'minlashga yordam berishdan tashqari, boshqa ko'plab funktsiyalarni bajarishi mumkin. Tashqi kalit aniqlangandan so'ng, ma'lumotlar bazasi boshqa jadvallar qatorlari bilan bog'liq qatorlarni o'chirishga yo'l qo'ymaydi. Siz buyurtma bergan mijoz haqida ma'lumotni o'chira olmaysiz. Bunday mijoz haqida ma'lumotni yo'q qilishning yagona usuli bu avval u bilan bog'liq bo'lgan buyurtmalarni yo'q qilishdir (buning uchun siz o'z navbatida ushbu buyurtmalarning narsalari haqidagi ma'lumotlarni o'chirib tashlashingiz kerak). Ba'zi MBBTlar kaskadli o'chirishni qo'llab-quvvatlaydi, ya'ni. ushbu qatorga tegishli barcha narsalarni o'chirib tashlashingiz mumkin. Masalan, Customers (Mijoz)lar jadvalidan mijozlar nomini kaskadirovka qilsangiz, ularning buyurtmasi bilan bog'liq barcha qatorlar avtomatik ravishda o'chiriladi.
Unikal cheklash.Unikal cheklovlar ustun yoki ustunlar to'plamidagi barcha ma'lumotlarning unikalligini ta'minlaydi. Ushbu ustunlar birlamchi kalitlarga o'xshaydi, ammo muhim farqlar mavjud.
• Jadval juda ko'p o'ziga xos cheklovlarni o'z ichiga olishi mumkin, ammo u faqat bitta birlamchi kalitga ega bo'lishi kerak.
• Unikal cheklovlarga ega ustunlar NULL qiymatlarini o'z ichiga olishi mumkin.
• Unikal cheklovlarga ega ustunlar o'zgartirilishi va yangilanishi mumkin.
• Unikal cheklovlarga ega ustunlar qiymatlarini qayta ishlatish mumkin.
• Birlamchiy kalitlardan farqli o'laroq, tashqi kaltlarini aniqlash uchun unikal cheklovlardan foydalanish mumkin emas.
Cheklovlardan foydalanishning misoli - xodimlar ma'lumotlari bilan jadval. Ularning har birida o'ziga xos unikal ijtimoiy sug'urta kartalari raqamlari mavjud, ammo bu birlamchi kalit sifatida ishlatilmasligi kerak, chunki bu juda uzun. Shuning uchun har bir xodimga ijtimoiy xavfsizlik kartasi raqamidan tashqari o'ziga xos identifikator (birlamchi kalit) beriladi.
Xodimning identifikatori birlamchi kalit bo'lganligi sababli, uning unikal ekanligiga amin bo'lishingiz mumkin. MBBT uchun har bir ijtimoiy sug'urta kartasi raqamining o'ziga xosligini tekshirish uchun (kiritishda bir xil karta raqamlarini kiritish mumkin emas), siz ijtimoiy xavfsizlik kartasi raqamlarini o'z ichiga olgan ustun uchun UNIQUE cheklovni belgilashingiz kerak.
Unikallik cheklovining sintaksisi boshqa cheklovlar sintaksisiga o'xshaydi: jadvalni belgilashda UNIQUE kalit so'zini ko'rsating yoki alohida-alohida CONSTRAINT /
Do'stlaringiz bilan baham: |