Junior
Чаро дар ҷадвал муносибат лозим аст?
sobes.tech AI
Ҷавоб аз AI
Реляция, ёки боғланиш байни ҷадвалҳо дар базаи додаҳо, барои:
- Бартараф кардани такроршавии маълумот: Ба ҷои такрор кардани маълумот дар чанд ҷадвал, онҳо дар якҷоягӣ нигоҳ дошта мешаванд ва дигарон ба он ишора мекунанд. Ин ҷойро сарфа мекунад ва навсозиро осон мекунад.
- Таъмини мутобиқатии маълумот: Взаъиятҳо кӯмак мекунанд, ки мутобиқатии маълумот нигоҳ дошта шавад. Масалан, наметавон як сатрро дар як ҷадвал тоза кард, агар дигаре ба он ишора кунад (ба вобаста ба навъи маҳдудият).
- Осон кардани дархостҳо: Имкон медиҳад, ки ба осонӣ маълумоти марбутаро аз чанд ҷадвал бо истифода аз амалҳои JOIN бароед.
- Эҷоди сохтори базаи додаҳо: Ин муносибати мантиқиро байни объектҳои воқеии ҷаҳон инъикос мекунад, ки сохтори базаи додаҳоро фаҳмонда ва ташкил медиҳад.
Маслиҳатҳои намудҳои муносибат:
- Як ба як (One-to-one): Як сатр дар ҷадвали А танҳо бо як сатр дар ҷадвали Б алоқаманд аст, ва баръакс.
- Як ба бисёр (One-to-many): Як сатр дар ҷадвали А метавонад бо чанд сатр дар ҷадвали Б алоқаманд бошад, аммо сатр дар Б танҳо бо як сатр дар А алоқаманд аст.
- Бисёр ба бисёр (Many-to-many): Як сатр дар ҷадвали А метавонад бо чанд сатр дар ҷадвали Б алоқаманд бошад, ва баръакс. Ин одатан тавассути ҷадвали миёна амалӣ мешавад.
Маслиҳат барои татбиқ дар SQL:
CREATE TABLE мизоҷон (
мизоҷ_id INT PRIMARY KEY,
ном VARCHAR(255)
);
CREATE TABLE фармоишҳо (
фармоиш_id INT PRIMARY KEY,
санаи_фармоиш DATE,
мизоҷ_id INT,
FOREIGN KEY (мизоҷ_id) REFERENCES мизоҷон(мизоҷ_id) // Взаъият "як ба бисёр": як мизоҷ метавонад бисёр фармоишҳо дошта бошад
);