Xarici açar (ing. foreign key) — SQL verilənlər bazalarında bir cədvəldəki bir sütunun (və ya bir neçə sütunun) başqa bir cədvəlin bir sütunu ilə əlaqəli olduğunu göstərən bir məhdudiyyətdir.
Xarici açarlar, verilənlər bazasında cədvəllər arasındakı əlaqələri müəyyən etmək və bu əlaqələrin düzgünlüyünü qorumaq üçün istifadə olunur. Onlar verilənlər bazasında məlumatların bütövlüyünü təmin etməyə kömək edir.
Əsas funksiyaları
-
Məlumatlar arasında əlaqə — xarici açar bir cədvəldəki məlumatı başqa bir cədvəldəki məlumatla əlaqələndirir. Məsələn, bir məhsul cədvəli və bir kateqoriya cədvəli varsa, məhsul cədvəlindəki
category_id
sütunu xarici açar kimi təyin edilə bilər ki, bu da onu kateqoriya cədvəlindəkiid
sütunu ilə əlaqələndirir. -
Referensial bütövlük — xarici açarların əsas vəzifəsi referensial bütövlüyü qorumaqdır. Bu, o deməkdir ki, xarici açarın istinad etdiyi dəyər əsas cədvəldə mövcud olmalıdır. Məsələn, əgər məhsul cədvəlində bir
category_id
varsa, bu dəyər kateqoriya cədvəlindəkiid
sütununda mövcud olmalıdır.
Əməliyyat məhdudiyyətləri
-
ON DELETE
— əsas cədvəldən bir qeydi sildikdə xarici açara malik qeydlərlə nə baş verəcəyini idarə edir. Məsələn: -
CASCADE
— əsas qeydi silərkən əlaqəli xarici açar qeydləri də avtomatik olaraq silinir. -
SET NULL
— əsas qeydi silərkən əlaqəli xarici açar dəyəri NULL-a təyin olunur. -
RESTRICT
— əsas qeydi silmək qadağan olunur, əgər ona bağlı xarici açar qeydləri varsa. -
ON UPDATE
— əsas qeydin dəyərini yeniləyərkən xarici açar qeydlərinin necə yenilənəcəyini idarə edir. Oxşar olaraqCASCADE
,SET NULL
, vəRESTRICT
kimi seçimlər mövcuddur.
Açarın yaradılması
Bir cədvəldə xarici açar yaratmaq üçün SQL-də FOREIGN KEY
ifadəsi istifadə olunur. Məsələn, orders
(sifarişlər) cədvəli və customers
(müştərilər) cədvəli arasında əlaqə yaratmaq üçün aşağıdakı sintaksisdən istifadə olunur:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
Bu misalda, orders
cədvəlindəki customer_id
sütunu xarici açar kimi təyin olunur və bu, customers
cədvəlindəki customer_id
sütununa istinad edir.
Açarların əhəmiyyəti
- Verilənlər bazasında məlumatların tamlığını təmin edir.
- Müxtəlif cədvəllər arasında loji əlaqələr qurur.
- Məlumatların təkrarını azaldır və referensial bütövlüyü qoruyur.
Xarici açarlar cədvəllər arasında əlaqələrin düzgün və məntiqli olmasını təmin edir.
İstinadlar
- Coronel, Carlos. Database Systems: Design, Implementation, and Management. Independence KY: South-Western/Cengage Learning. 2010. səh. 65. ISBN 978-0-538-74884-1.
- Elmasri, Ramez. . Addison-Wesley. 2011. –74. ISBN 978-0-13-608620-8.
- Date, C. J. A guide to the SQL standard. Addison-Wesley. 1996. səh. 206. ISBN 978-0201964264.
- . 2010-01-10 tarixində . İstifadə tarixi: 2010-03-13.
- Sheldon, Robert. Beginning MySQL. John Wiley & Sons. 2005. 119–122. ISBN 0-7645-7950-9.
- MySQL AB. MySQL Administrator's Guide and Language Reference. Sams Publishing. 2006. səh. 40. ISBN 0-672-32870-4.
- Powell, Gavin. . Elsevier. 2004. səh. . .
- Mullins, Craig. DB2 developer's guide. IBM Press. 2012. .
- Garcia-Molina, Hector. . Prentice Hall. 2009. –95. ISBN 978-0-13-187325-4.
- Sheldon, Robert. Beginning MySQL. John Wiley & Sons. 2005. səh. 156. ISBN 0-7645-7950-9.