Xarici açar

Xarici açar () — 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əki id 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əki id 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 olaraq CASCADE, 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 

 Xarici keçidlər 
SQL-99 Foreign Keys
PostgreSQL Foreign Keys
MySQL Foreign Keys
FirebirdSQL primary Keys
SQLite support for Foreign Keys
Microsoft SQL 2012 table_constraint (Transact-SQL)

Kateqoriya:Verilənlər bazaları