Xarici açar
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.[1][2]
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.[3]
Əsas funksiyaları
redaktə- 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.[4] - 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.[5]
Əməliyyat məhdudiyyətləri
redaktə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.[6][7]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.[8]
Açarın yaradılması
redaktə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:[9]
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.[10]
Açarların əhəmiyyəti
redaktə- 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
redaktə- ↑ 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. Fundamentals of Database Systems. Addison-Wesley. 2011. 73–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.
- ↑ "Database Basics — Foreign Keys". 2010-01-10 tarixində arxivləşdirilib. İ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. Oracle SQL: Jumpstart with Examples. Elsevier. 2004. səh. 11. ASIN B008IU3AHY.
- ↑ Mullins, Craig. DB2 developer's guide. IBM Press. 2012. ASIN B007Y6K9TK.
- ↑ Garcia-Molina, Hector. Database Systems: The Complete Book. Prentice Hall. 2009. 93–95. ISBN 978-0-13-187325-4.
- ↑ Sheldon, Robert. Beginning MySQL. John Wiley & Sons. 2005. səh. 156. ISBN 0-7645-7950-9.