Verilənlər bazası terminləri relational və əlaqələr cədvəllərdə verilənlərin birləşdirilməsini təsvir edir. Əlaqəli verilənlər bazası müəyyən bir açarla bağlanmış iki və ya daha çox cədvəldən ibarətdir. Relational verilənlər bazası böyük verilənlər təşəbbüslərində ümumi olan strukturlaşdırılmamış verilənlər bazalarından fərqlənir. Əlaqəli verilənlər bazaları cədvəllərin necə müəyyən edildiyi və cədvəllər arasında etibarlı əlaqənin nədən ibarət olması ilə bağlı ciddi qaydalar tələb edir.
Verilənlər Bazası Əlaqələrinin Növləri
Əlaqələr sizə verilənlər bazası cədvəlləri arasındakı əlaqələri güclü üsullarla təsvir etməyə imkan verir. Bu əlaqələr daha sonra JOIN kimi tanınan güclü çarpaz cədvəl sorğularını yerinə yetirmək üçün istifadə edilə bilər.
Hər biri əlaqədə iştirak edən cədvəl sıralarının sayına görə adlandırılan üç növ verilənlər bazası əlaqəsi var. Bu üç əlaqə növünün hər biri iki cədvəl arasında mövcuddur.
- Birə-bir əlaqələr birinci cədvəldəki hər girişin ikinci cədvəldə yalnız bir qarşılığı olduqda baş verir. Birə-bir əlaqələr nadir hallarda istifadə olunur, çünki bütün məlumatları bir cədvəldə yerləşdirmək çox vaxt daha səmərəlidir. Bəzi verilənlər bazası dizaynerləri başqa cədvəldən verilənlərin alt çoxluğunu ehtiva edən cədvəllər yaratmaqla bu əlaqədən istifadə edirlər.
- Birə çox əlaqələr verilənlər bazası əlaqəsinin ən çox yayılmış növüdür. Onlar Cədvəl A-dakı hər bir qeyd Cədvəl B-dəki bir və ya bir neçə qeydə uyğun gələndə baş verir, lakin Cədvəl B-dəki hər bir qeyd A Cədvəlindəki yalnız bir qeydə uyğundur. Məsələn, ibtidai məktəbdə Müəllimlər cədvəli ilə Şagirdlər cədvəli arasındakı əlaqə verilənlər bazası çox güman ki, bir-çox əlaqəsi olacaq, çünki hər şagirdin yalnız bir müəllimi var, lakin hər bir müəllimin bir neçə tələbəsi var. Bu birdən çox dizayn təkrarlanan datanı aradan qaldırmağa kömək edir.
- Çoxdan çoxa əlaqələr Cədvəl A-dakı hər bir qeyd Cədvəl B-dəki bir və ya bir neçə qeydə, Cədvəl B-dəki hər bir qeyd bir və ya bir neçə qeydə uyğun gələndə baş verir. Cədvəl A-da. Məsələn, Müəllimlər cədvəli ilə Kurslar cədvəli arasındakı əlaqə çoxdan çox ola bilər, çünki hər bir müəllim birdən çox kursu öyrədə bilər və hər kursda birdən çox müəllim ola bilər.
Aşağı xətt
Özünə istinad edən əlaqələr yalnız bir cədvəl olduqda baş verir. Ümumi nümunələrdən biri, hər bir işçinin rəhbəri haqqında məlumatları ehtiva edən İşçilər cədvəlidir. Hər bir nəzarətçi həm də işçidir və bir nəzarətçisi var. Bu halda, hər bir işçinin bir nəzarətçisi olduğu, lakin hər bir nəzarətçinin birdən çox işçisi ola biləcəyi üçün bir-çox özünə istinad əlaqəsi mövcuddur.
Xarici Açarlarla Əlaqələrin Yaradılması
Xarici açarı göstərərək cədvəllər arasında əlaqələr yaradırsınız. Bu açar relyasiya verilənlər bazasına cədvəllərin necə əlaqəli olduğunu bildirir. Bir çox hallarda Cədvəl A sütununda Cədvəl B-dən istinad edilən əsas açarlar var.
Müəllimlər və Tələbələr cədvəllərinin nümunəsini nəzərdən keçirək. Müəllimlər cədvəlində ID, ad və kurs sütunu var:
TəlimçiND | Müəllim_Adı | Kurs |
001 | John Doe | İngilis |
002 | Jane Schmoe | Riyaziyyat |
Tələbələr cədvəlinə ID, ad və xarici açar sütunu daxildir:
Tələbə ID | Tələbə_Adı | Müəllim_FK |
0200 | Lowell Smith | 001 |
0201 | Brian Short | 001 |
0202 | Korki Mendez | 002 |
0203 | Monica Jones | 001 |
Tələbələr cədvəlindəki Teacher_FK sütunu Müəllimlər cədvəlindəki təlimatçının əsas açar dəyərinə istinad edir. Çox vaxt verilənlər bazası dizaynerləri əsas açarı və ya xarici açar sütununu müəyyən etmək üçün sütun adında PK və ya FK-dan istifadə edirlər.
Bu iki cədvəl müəllimlər və tələbələr arasında bir-çox əlaqəni göstərir.
Münasibətlər və Referensial Dürüstlük
Cədvələ xarici açar əlavə etdikdən sonra iki cədvəl arasında istinad bütövlüyünü təmin edən verilənlər bazası məhdudiyyəti yaradın. Bu addım cədvəllər arasındakı əlaqələrin ardıcıl qalmasını təmin edir. Bir cədvəlin digər cədvəl üçün xarici açarı olduqda, istinad bütövlüyü Cədvəl B-dəki hər hansı xarici açar dəyərinin Cədvəl A-dakı mövcud qeydə istinad etməsini tələb edir.
Münasibətlərin həyata keçirilməsi
Verilənlər bazanızdan asılı olaraq, cədvəllər arasında əlaqələri müxtəlif üsullarla həyata keçirəcəksiniz. Microsoft Access sizə cədvəlləri əlaqələndirməyə və həmçinin istinad bütövlüyünü təmin etməyə imkan verən sehrbaz təqdim edir.
Əgər siz birbaşa SQL yazırsınızsa, əvvəlcə ID sütununu əsas açar elan edərək Müəllimlər cədvəlini yaradın:
CƏDVƏL YARADIN Müəllimlər (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Kurs VARCHAR(100));
Tələbələr cədvəlini yaratdığınız zaman siz Müəllim_FK sütununu Müəllimlər cədvəlindəki Təlimatçı ID sütununa istinad edən xarici açar elan edirsiniz:
CƏDVƏL YARADIN Tələbələr (StudentID INT AUTO_INCREMENT PRIMARY AÇAR, Tələbə_Adı VARCHAR(100), Teacher_FK INT, XARİCİ AÇAR (Müəllimlər));
Cədvəllərə qoşulmaq üçün əlaqələrdən istifadə
Verilənlər bazanızda bir və ya bir neçə əlaqə yaratdıqdan sonra, çoxsaylı cədvəllərdən məlumatları birləşdirmək üçün SQL JOIN sorğularından istifadə etməklə onların gücündən istifadə edin. Ən çox yayılmış birləşmə növü sadə birləşmə olan SQL INNER JOIN-dir. Bu birləşmə növü bir və ya bir neçə cədvəldən birləşmə şərtinə cavab verən bütün qeydləri qaytarır.
Məsələn, bu QOŞULMA şərti Tələbə_Adı, Müəllim_Adı və Kursu qaytarır, burada Tələbələr cədvəlindəki xarici açar Müəllimlər cədvəlindəki əsas açarla uyğun gəlir:
Şagirdləri SEÇİN. Tələbə_Adı, Müəllimlər. Müəllim_Adı, Müəllimlər. Kurs
Tələbələrdən
INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;
Bu ifadə belə bir cədvəl yaradır:
Tələbə_Adı | Müəllim_Adı | Kurs |
Lowell Smith | John Doe | İngilis |
Brian Short | John Doe | İngilis |
Korki Mendez | Jane Schmoe | Riyaziyyat |
Monica Jones | John Doe | İngilis |