Junior
Relatsiya qanday amalga oshiriladi relatsion bazada?
sobes.tech AI
AIdan javob
Relatsiyalar relatsion ma'lumotlar bazalari tizimlarida (RDBMS) tashqi kalitlar (Foreign Keys) yordamida amalga oshiriladi.
Tashqi kalit — bu bir jadvaldagi ustun yoki ustunlar to'plami bo'lib, boshqa jadvaldagi birinchi kalitga murojaat qiladi. Shu tarzda, ikki jadvaldagi yozuvlar o'rtasida bog'lanish o'rnatiladi.
Relatsiya turlariga misollar:
- Birga-ko'p (One-to-Many): Bir jadvaldagi yozuv, ikkinchi jadvaldagi bir nechta yozuv bilan bog'liq. Masalan, bo'limda ko'p xodimlar bo'lishi mumkin.
Employeesjadvalida,Departmentsjadvalidagi birinchi kalitga murojaat qiluvchi tashqi kalit bo'ladi. - Ko'pga-ko'p (Many-to-Many): Birinchi jadvaldagi bir nechta yozuvlar, ikkinchi jadvaldagi bir nechta yozuvlar bilan bog'liq. Masalan, bir talaba bir nechta kursga yozilishi mumkin va bir kursga ko'plab talaba yozilishi mumkin. Bu uchun, ikkala jadvalning asosiy kalitlariga murojaat qiluvchi o'rta jadval (aloqa jadvali) ishlatiladi.
- Birga-bir (One-to-One): Bir jadvaldagi yozuv, faqat bitta yozuv bilan bog'liq. Bu turdagi bog'lanish kamroq uchraydi va odatda jadvalni vertikal bo'laklarga bo'lish yoki ixtiyoriy ma'lumotlarni saqlash uchun ishlatiladi. Bu, ikkinchi jadvalda, birinchi jadvalning asosiy kalitiga murojaat qiluvchi tashqi kalit yordamida amalga oshiriladi, ko'pincha tashqi kalitga yagona cheklov qo'yiladi.
SQLda tashqi kalit bilan jadval yaratish misoli:
-- Bo'limlar jadvalini yaratamiz
CREATE TABLE Departments (
department_id INT PRIMARY KEY, -- Asosiy kalit
department_name VARCHAR(100)
);
-- Xodimlar jadvalini tashqi kalit bilan yaratamiz
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(100),
department_id INT, -- Tashqi kalit uchun ustun
FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Tashqi kalit ta'rifi
);
Tashqi kalitlar ma'lumotlarning referensial yaxlitligini ta'minlaydi, "loyihalanmagan" bog'lanishlarni (tashqi kalit, bog'langan jadvalda mavjud bo'lmagan yozuvga murojaat qilganda) oldini oladi.