Cheklovlar (Constraints: PK, FK, …) — jadval ustunlariga qo’yiladigan qoidalar bo’lib, ular ma’lumotning to’g’ri va ishonchli bo’lishini ta’minlaydi. Birlamchi kalit (PRIMARY KEY), tashqi kalit (FOREIGN KEY), noyoblik va majburiylik — bularning bari cheklovlardir. Ular bazani “buzilmas” qiladi.
Cheklov (constraint) — ustunga qo’yiladigan qoida bo’lib, unga qanday qiymat kirishini nazorat qiladi. Asosiylari: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE.
Asosiy cheklovlar
Eng ko’p ishlatiladigan cheklovlarni jadvalda ko’ramiz:
| Cheklov | Vazifasi |
|---|---|
PRIMARY KEY |
har qatorni noyob aniqlaydi |
FOREIGN KEY |
boshqa jadvalga bog’laydi |
NOT NULL |
bo’sh qiymatni taqiqlaydi |
UNIQUE |
takroriy qiymatni taqiqlaydi |
DEFAULT |
standart qiymat beradi |
PRIMARY KEY — birlamchi kalit
PRIMARY KEY har bir qatorni noyob tarzda aniqlaydigan ustun. U takrorlanmas va bo’sh bo’lmasligi kerak:
CREATE TABLE foydalanuvchilar (
id INT PRIMARY KEY,
ism VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
);
Bu jadvalda uch cheklov ishlatildi:
| Ustun | Cheklov | Ma’nosi |
|---|---|---|
| id | PRIMARY KEY | har foydalanuvchi noyob id |
| ism | NOT NULL | ism bo’sh bo’lmaydi |
| UNIQUE | email takrorlanmaydi |
id birlamchi kalit — har bir foydalanuvchini ajratib turadi. ism NOT NULL — majburiy. email UNIQUE — ikki foydalanuvchi bir xil email ishlata olmaydi.
FOREIGN KEY — tashqi kalit
FOREIGN KEY bir jadvalni boshqasiga bog’laydi. U JOIN darslarida ko’rgan bog’lanishning asosidir. Masalan, buyurtmalar jadvali foydalanuvchilar ga bog’lanadi:
CREATE TABLE buyurtmalar (
id INT PRIMARY KEY,
foydalanuvchi_id INT,
mahsulot VARCHAR(100),
FOREIGN KEY (foydalanuvchi_id) REFERENCES foydalanuvchilar(id)
);
FOREIGN KEY (foydalanuvchi_id) REFERENCES foydalanuvchilar(id) — foydalanuvchi_id ustuni foydalanuvchilar jadvalidagi id ga ishora qilishini bildiradi.
Tashqi kalitning himoyasi
FOREIGN KEY ma’lumot yaxlitligini himoya qiladi: mavjud bo’lmagan foydalanuvchiga buyurtma qo’shib bo’lmaydi. Masalan, foydalanuvchilar jadvalida faqat 1, 2, 3-idlar bor:
| Buyurtma | foydalanuvchi_id | Holati |
|---|---|---|
| Telefon | 1 | Ruxsat (Farrux bor) |
| Noutbuk | 2 | Ruxsat (Master Sherkulov bor) |
| Soat | 99 | Rad etiladi (99-id yo’q) |
foydalanuvchi_id = 99 bilan buyurtma qo’shishga urinsangiz, baza uni rad etadi — chunki bunday foydalanuvchi yo’q. Bu “bog’lanmagan” (yetim) yozuvlarning oldini oladi va bazani ishonchli qiladi.
Xulosa
Bu bo’limda cheklovlarni — PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE — va ular ma’lumot yaxlitligini qanday himoya qilishini ko’rib chiqdik. Cheklovlar — ishonchli bazaning poydevoridir.