Sobes.tech
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 /* Օրինակ սահմանափակման */
);