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 /* Чектөө мисалы */
);