Middle
Ի՞նչ է հղման կապերի ամբողջականությունը։
sobes.tech AI
Պատասխան AI-ից
Հղման ամբողջականությունը (Referential Integrity) տվյալների հատկություն է ռելացիոնալ տվյալների բազայում, որը երաշխավորում է, որ աղյուսակների միջև հղումները մնում են վավեր: Այն կանխում է հետևյալ խնդիրները:
- «Հայր» աղյուսակից տողը ջնջելիս, որի վրա հղում են «երեխա» աղյուսակում գտնվող տողերը:
- «Հայր» աղյուսակում հիմնական բանալի փոփոխելիս, որի վրա հղում են «երեխա» աղյուսակում գտնվող տողերը, առանց այդ հղումները համապատասխանաբար թարմացնելու:
- «Երեխա» աղյուսակում մի տող ավելացնելիս, որը հղում է գոյություն չունեցող հիմնական բանալիին «հայր» աղյուսակում:
Նա իրականացնում է արտաքին բանալիների (FOREIGN KEY) միջոցով:
Օրինակներ արտաքին բանալիների սահմանափակումների համար:
- ON DELETE CASCADE: Երբ «հայր» աղյուսակից տողը ջնջվում է, համապատասխան տողերը «երեխա» աղյուսակում նույնպես ջնջվում են:
- ON DELETE SET NULL: Երբ «հայր» աղյուսակից տողը ջնջվում է, համապատասխան արտաքին բանալին «երեխա» աղյուսակում դրվում է NULL:
- ON DELETE RESTRICT: «Հայր» աղյուսակից տողը ջնջելն արգելվում է, եթե դրա վրա հղումներ կան «երեխա» աղյուսակում:
- ON UPDATE CASCADE: Երբ «հայր» աղյուսակում հիմնական բանալին թարմացվում է, համապատասխան արտաքին բանալիները «երեխա» աղյուսակում նույնպես թարմացվում են:
-- «users» աղյուսակի օրինակ (հայր)
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL
);
-- «orders» աղյուսակի օրինակ (երեխա) արտաքին բանալով
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
ON DELETE CASCADE /* Օրինակ սահմանափակման */
ON UPDATE CASCADE /* Օրինակ սահմանափակման */
);