Tam funksional asılılıq İkinci Normal Formanın (2NF) normallaşdırma standartına bərabər olan verilənlər bazası normallaşması vəziyyətidir. Qısacası, bu, birinci Normal Formun (1NF) tələblərinə cavab verdiyini və bütün qeyri-əsas xüsusiyyətlərin tamamilə funksional birincil əsasa asılı olduğu anlamına gəlir.
Bu səslənə bilər kimi çətin deyil. Bunu daha ətraflı nəzərdən keçirək.
İlk Normal Formun Xülasəsi
Verilənlər bazası funksional olaraq asılı olaraq əvvəlcə ilk Normal Forma uyğun olmalıdır.
Bütün bunlar deməkdir ki, hər bir xüsusiyyət bir, atomun dəyəri olmalıdır.
Məsələn, aşağıdakı cədvəl 1NF-lə uyğun deyil , çünki işçi Tina iki nömrə ilə birləşdirilmişdir:
Əməkdaşı | Yerləşmə |
---|---|
John | Los Anceles |
Tina | Los Angeles, Çikaqo |
Bu dizaynın verilməsi data yeniləmələrinə və ya girişlərə mənfi təsir göstərə bilər. 1NF uyğunluğunu təmin etmək üçün, bütün xüsusiyyətləri (və ya sütun hüceyrələri) bir dəyəri saxlayaraq cədvəlin yenidən qurulması:
Əməkdaşı | Yerləşmə |
---|---|
John | Los Anceles |
Tina | Los Anceles |
Tina | Çikaqo |
Lakin 1NF məlumatlarla bağlı problemlərin qarşısını almaq üçün hələ də kifayət deyil.
Tam Nəzarətin təmin edilməsi üçün 2NF necə çalışır
Tam olaraq asılı olmaq üçün bütün qeyri-namizəd əsas xüsusiyyətlər birincil əsasdan asılı olmalıdır. (Unutmayın ki, bir namizəd əsas özniteliği bir verilənlər bazası qeydini müəyyən etmək üçün istifadə olunan hər hansı bir əsasdır (məsələn, bir əsas və ya xarici əsas).
Verilənlər bazası dizaynçıları öznitelikler arasında bağımlı əlaqələri təsvir etmək üçün bir notadan istifadə edirlər:
A niteliği B'nin dəyərini təyin edərsə, bu A -> B - yazılıb ki, B funksional olaraq A-ə asılıdır. Bu münasibətdə A B-nin dəyərini müəyyən edir, B isə A-a bağlıdır.
Məsələn, Aşağıdakı İşçilərin İdarəsi cədvəlində, EmployeeID və DeptID hər iki namizəd düymələridir: EmployeeID, DeptID xarici bir anahtardırken masanın əsas əsasudur.
Hər hansı digər xüsusiyyət - bu halda, EmployeeName və DeptName - dəyəri əldə etmək üçün əsas əsasa asılı olmalıdır.
Əməkdaşı | İşçinin adı | Deptİd | DeptName |
---|---|---|---|
Emp1 | John | Dept001 | Maliyyə |
Emp2 | Tina | Dept003 | Satışlar |
Emp3 | Carlos | Dept001 | Maliyyə |
Bu halda, masa tamamilə asılı deyil, çünki EmployeeName birincil əsas EmployeeID-ə bağlıdır, DeptName isə DeptID-ə aiddir. Buna qismən asılılıq deyilir.
Bu cədvəl 2NF-ə uyğun gəlmək üçün, məlumatları iki cədvələ ayırmalıyıq:
Əməkdaşı | İşçinin adı | Deptİd |
---|---|---|
Emp1 | John | Dept001 |
Emp2 | Tina | Dept003 |
Emp3 | Carlos | Dept001 |
DeptName xüsusiyyətini Employees tablosundan çıxarırıq və yeni bir cədvəl yaratırıq.
Deptİd | DeptName |
---|---|
Dept001 | Maliyyə |
Dept002 | İnsan resursları |
Dept003 | Satışlar |
İndi cədvəllər arasındakı əlaqələr tamamilə asılıdır və ya 2NF-də.
Nəyə görə tam bağımlılık vacibdir?
Veritabanı atributları arasında tam asılılıq data bütövlüyünü təmin edir və məlumatların anomaliyaları qarşısını alır.
Məsələn, yuxarıdakı bölmənin cədvəlini yalnız 1NF-yə uyğunlaşdırın. İşdə yenə də:
Əməkdaşı | Yerləşmə |
---|---|
John | Los Anceles |
Tina | Los Anceles |
Tina | Çikaqo |
Tina iki qeyd var. Birinin iki olduğunu düşünmədən bir yeniləməliyiksə nəticə nəticə verməyəcəkdir.
Ya da, bu cədvəldə bir işçi əlavə etmək istəyiriksə, amma biz Yerini hələ bilmirik? Konum özniteliği NULL dəyərlərinə icazə vermirsə, hətta yeni bir işçinin əlavə edilməsinə icazə verilməyəcəkdir.
Normal asılılığa gəldikdə, tam asılılıq bütün şəkil deyil. Veritabanınızın Üçüncü Normal Forma (3NF) olduğundan əmin olmalısınız.