Verilənlər bazasının normallaşdırılmasında tam funksional bağımlılıq

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:

İlk Normal Forma uyğunsuzluq
Ə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ı:

İlk Normal Forma Uyğunluq
Ə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.

İşçi şöbələri
Ə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:

İşçilər
Ə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.

İdarələr
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ə:

İlk Normal Forma Uyğunluq
Ə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.