Sobes.tech
Middle

Маалыматтык байланыштардын бүтүндүгү эмнеде?

sobes.tech AI

AIден жооп

Референциалдык бүтүндүк — бул реляциялык маалыматтар базасындагы маалыматтардын өзгөчөлүгү, ал таблицалардын ортосундагы шилтемелердин жарактуу болушун камсыздайт. Ал төмөнкү көйгөйлөрдүн алдын алат:

  • "ата" таблицасынан бир сап өчүрүлгөндө, ага шилтемелеген "бала" таблицасындагы саптар дагы өчүрүлөт.
  • "ата" таблицасындагы биринчи ачкыч өзгөртүлгөндө, ага шилтемелеген "бала" таблицасындагы шилтемелер да жаңыртылат.
  • "бала" таблицасына, жок дегенде, "ата" таблицасындагы биринчи ачкычка шилтеме кылган сап кошулганда.

Бул тышкы ачкычтар (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 /* Чектөө мисалы */
);