Ukuthembela okuphelele kokusebenza ku-Database Normalization

Ukuxhomekeka okugcwele kokusebenza kuyisimo sokujwayelekile sokugcina idatha esilinganisa nesilinganiso sokujwayelekile seFomu lesiBili elijwayelekile (2NF) . Ngamafuphi, lokhu kusho ukuthi kuhlangabezana nezidingo zeFomu Elijwayelekile Elijwayelekile (1NF), futhi zonke izimfanelo ezingezona ezibalulekile zixhomeke ngokugcwele ekhiye lokuqala.

Lokhu akuyona okunzima njengoba kungase kuzwakale. Ake sibheke lokhu ngokuningiliziwe.

Isifingqo soFomu Lokuqala Oluvamile

Ngaphambi kokuba i-database ingaxhomeke ngokugcwele, kufanele ihambisane neFomu Elijwayelekile Lokuqala .

Konke lokhu kusho ukuthi imfanelo ngayinye kufanele ibambe inani elilodwa, i-athomu.

Isibonelo, ithebula elilandelayo alihambisani ne-1NF, ngoba isisebenzi uTina sixhunyaniswe nezindawo ezimbili, zombili zombili esitokisini esisodwa:

Ifomu Lokuqala Elijwayelekile Elingahambisani Nokuthobela
Umsebenzi Indawo
UJohane e-Los Angeles
Tina Los Angeles, Chicago

Ukuvumela lesi sakhiwo kungathinta kabi izibuyekezo zedatha noma okufakiwe. Ukuze uqinisekise ukulandelwa kwe-1NF, lungisa kabusha ithebula ukuze zonke izici (noma amakholomu ekholomu) zibambe inani elilodwa:

Ukuthobela kokuQinisekisa kokuQala kokuQala
Umsebenzi Indawo
UJohane e-Los Angeles
Tina e-Los Angeles
Tina Chicago

Kodwa i-1NF ayanele ngokwanele ukugwema izinkinga nedatha.

Yeka ukuthi i-2NF isebenza kanjani ukuqinisekisa ukuxhomeka okugcwele

Ukuthembela ngokugcwele, zonke izimfanelo ezibalulekile ezingezona ukhetho kufanele zithembele ekhiye oyinhloko. (Khumbula, isici esiyisihluthulelo se- candidate yisiphi isihluthulelo (isibonelo, ukhiye oyinhloko noma wangaphandle) osetshenziselwa ukukhomba kuphela irekhodi lemininingwane.

Abaqambi be-database basebenzisa inothi ukuchaza ubudlelwano obuxhomeke phakathi kwezici:

Uma isici A sibona ukubaluleka kwe-B, sibhala lokhu A -> B - okusho ukuthi iB isebenza ngokugcwele ku-A. Kulobudlelwane, i-A inquma ukubaluleka kwe-B, ngenkathi i-B ixhomeke ku-A.

Isibonelo, kuletafula leMisebenzi yamaSebenzi alandelayo, abasebenzi base-EmployeeID kanye neDeptID bobabili izihluthulelo ze-candidate: I-EmployeeID iyinhloko eyisihluthulelo setafula kuyilapho i-DeptID ikhiye wangaphandle.

Noma yimuphi omunye umlinganiso - kulokhu, i-EmployeeName ne-DeptName - kufanele ixhomeke ekhiye oyinhloko ukuthola inani layo.

Iminyango yabasebenzi
I-EmployeeID EmployeeName I-DeptID DeptName
I-Emp1 UJohane Dept001 Ezezimali
I-Emp2 Tina Dept003 Ukuthengisa
I-Emp3 UCarlos Dept001 Ezezimali

Kulokhu, ithebula alixhomeke ngokugcwele ngoba, ngenkathi i-EmployeeName ixhomeke ku-EmployeeID eyinhloko, i-DeptName incike esikhundleni se-DeptID. Lokhu kubizwa ngokuthi kuncike ekuziphatheni .

Ukuze wenze leli tafula lihambisane ne-2NF, kudingeka sihlukanise idatha kumatafula amabili:

Abasebenzi
I-EmployeeID EmployeeName I-DeptID
I-Emp1 UJohane Dept001
I-Emp2 Tina Dept003
I-Emp3 UCarlos Dept001

Susa imfanelo ye-DeptName kusuka kuthebula labasebenzi bese sakha iminyango entsha yamathebula:

Iminyango
I-DeptID DeptName
Dept001 Ezezimali
Dept002 Umnyango Wabasebenzi
Dept003 Ukuthengisa

Manje ubuhlobo phakathi kwamatafula buxhomeke ngokugcwele, noma ku-2NF.

Kungani Ukuthembela Okuphelele Kubalulekile

Ukuthembela ngokugcwele phakathi kwezimfanelo ze-database kusiza ukuqinisekisa ukuthembeka kwedatha futhi kugweme ukuhlukunyezwa kwedatha.

Isibonelo, cabangela ithebula kusigaba esingenhla esibambelela ku-1NF kuphela. Nangu kunjalo, futhi:

Ukuthobela kokuQinisekisa kokuQala kokuQala
Umsebenzi Indawo
UJohane e-Los Angeles
Tina e-Los Angeles
Tina Chicago

UTina unamarekhodi amabili. Uma sibuyekeza eyodwa ngaphandle kokuqaphela ukuthi kunezinto ezimbili, umphumela uzoba idatha engavumelani.

Noma, kuthiwani uma sifuna ukungeza isisebenzi kuleli tafula, kodwa asisazazi Indawo? Singase singavunyelwe ngisho nokwengeza isisebenzi esisha uma isici sendawo singavumeli amanani we-NULL.

Ukuthembela ngokugcwele akusona isithombe sonke, noma kunjalo, uma kuziwa ekujwayelekile. Kumele uqiniseke ukuthi i-database yakho ifomu le-Third Normal (3NF).