Verilənlər bazası bağımlılıkları həm tələbələri, həm də verilənlər bazası mütəxəssislərini həm də bir-birinə qarışan bir mövzu. Xoşbəxtlikdən, bunlar mürəkkəb deyil və bir sıra nümunələrin istifadəsi ilə yaxşı təsvir edilə bilər. Bu yazıda ümumi verilənlər bazası asılılıq növlərini nəzərdən keçiririk.
Verilənlər bazası mənbələri / Funksional Bağımlılıklar
Bir verilənlər bazası verilənlər bazasında saxlanılan məlumat eyni cədvəldə saxlanılan digər məlumatları müstəqil olaraq müəyyən etdikdə, bir məlumat bazasında bir asılılıq meydana gəlir. Bir xüsusiyyətin (yaxud bir sıra xüsusiyyətlərinin) dəyərini bildiyiniz kimi, eyni masada başqa bir xüsusiyyətin (yaxud xüsusiyyətlərin setinin) dəyərini bildirmək üçün kifayətdir.
Cədvəldəki xüsusiyyətlər arasında asılılıq olduğunu söyləyərək, bu xüsusiyyətlər arasında funksional bir asılılıq olduğunu söyləyərək eynidır. Bir verilənlər bazasında asılılıq varsa, B niteliği A niteliğine bağlıdır, bunu "A -> B" olaraq yazarsınız.
Məsələn, Sosial Müdafiə Nömrəsi (SSN) və adı daxil olmaqla, işçilərin xüsusiyyətlərini göstərən bir cədvəldə, adın SSN-ə (ya da SSN-> adına) bağlı olduğunu söyləyə bilərik, çünki işçinin adı SSN-dən unikal şəkildə müəyyən edilə bilər. Bununla belə, əksər bəyanat (ad -> SSN) düzgün deyil, çünki birdən çox işçinin eyni adı, lakin müxtəlif SSNləri ola bilər.
Trivial Funksional Bağımlılıklar
Öznitelikin funksional asılılığını orijinal özniteliği olan atributlar toplusunu təsvir etdikdə, qeyri-adi bir funksional asılılıq meydana gəlir. Məsələn, "{A, B} -> B", "{name, SSN} -> SSN" olduğu kimi , qeyri-adi bir funksional asılılıqdır . Bu tip funksional asılılıq, məntiqsizdir, çünki bu, sağlam düşüncə əsasında əldə edilə bilər. Aydındır ki, B-nin dəyərini artıq bilirsinizsə, B-nin dəyəri bu biliklə yeganə şəkildə müəyyən edilə bilər.
Tam funksional Bağımlılıklar
Funksional asılılığın tələblərinə cavab verdikdə və funksional asılılıq bəyannaməsinin sol tərəfindəki atributlar dəsti daha da azaldıla bilməz, tam funksional asılılıq meydana gəlir. Məsələn, "{SSN, yaş} -> adı" funksional bir asılılıqdır, ancaq bu tam funksional bir asılılıq deyil, çünki asılılıq əlaqəsinə təsir etmədən, ifadənin solundan yaşı buraxa bilərsiniz.
Transitive Bağımlılıklar
Transitive bağımlılıkları, funksional asılılığa səbəb olan dolaylı bir əlaqə olduğunda meydana gəlir. Məsələn, "A -> B" və "B -> C" doğru olduğundan, "A - C" keçidli bir asılılıqdır .
Multivalued Dependencies
Multivalued bağımlılıkları bir masada bir və ya daha çox satırın olması eyni masada bir və ya bir neçə digər satırın mövcud olduğunu nəzərdə tutur. Məsələn, avtomobilin bir çox modelini istehsal edən avtomobil şirkətini təsəvvür edin, həm də hər bir modelin həm qırmızı, həm də mavi rəngini edir. Hər bir modelin modelini, rəngini və ilini ehtiva edən bir cədvəliniz varsa, şirkət istehsal edir, bu cədvəldə bir çox dəyərli asılılıq var. Müəyyən bir model adı və mavi üçün bir sıra varsa, həmin avtomobilin qırmızı versiyasına oxşar bir sıra olmalıdır.
Bağımlılığın əhəmiyyəti
Verilənlər bazasının normallaşdırılmasında istifadə olunan əsas bina bloklarını təmin etdikləri üçün verilənlər bazasının asılılığı anlamaq vacibdir. Misal üçün:
- Cədvəldən ikinci normal forma (2NF) olmaq üçün, funksional olaraq bir namizədin əsasının altına asılı olan masada qeyri-prinsipial bir atribut yoxdur.
- Bir cədvəl üçüncü normal formada (3NF) olması üçün hər bir qeyri-prinsip atributu hər bir namizədin açarına keçid olmayan funksional asılılığa malik olmalıdır.
- Boyce-Codd Normal Forma (BCNF) olmaq üçün bir masa üçün, hər funksional asılılıq (əhəmiyyətsiz bağımlılıklardan başqa) bir üst səviyyədə olmalıdır .
- Bir cədvəl dördüncü normal formada (4NF) olması üçün, bir çox dəyərli bağımlılığa malik olmamalıdır.