Ku-tiirsanaanta Shaqo-buuxa ee Xirfadaha Database-ka

Xayiraad buuxda oo shaqeyneysa waa xaalad caadi ah xogta xogta oo u dhiganta heerka caadiga ah ee Foomka 2aad ee caadiga ah (2NF) . Taasoo micnaheedu yahay in ay buuxinayso shuruudaha Foomka Koowaad ee Koowaad (1NF), dhammaan sifooyinka aan muhiimka ahayni si buuxda ugu tiirsan yihiin fureka koowaad.

Tani ma aha mid adag sida ay u dhawaaqi karto. Bal aan eegno arrinkan si faahfaahsan.

Soo koobida foomka caadiga ah ee koowaad

Ka hor intaan xog-ururin ay si buuxda ugu tiirsanaan karto, waa in marka hore la raaco Foomka Heerka Koowaad .

Dhammaan tani waxay ka dhigan tahay in sifo kastaa ay tahay inay lahaato hal qiime oo atomi ah.

Tusaale ahaan, miiska soo socda ma waafaqsan yahay 1NF, sababtoo ah shaqaalaha Tina waxaa lala xiriirinayaa laba goobood, labaduba waxay ku jiraan hal unug:

Foomka Caadiga ah ee Heerka Koowaad
Shaqaale Goobta
Yooxanaa Los Angeles
Tina Los Angeles, Chicago

U oggolaanshaha naqshadeynta ayaa si xun u saameyn karta cusbooneysiinta xogta ama gelitaanka. Si loo xaqiijiyo u hoggaansamida 1NF, dib u habee miiska si aad u muujiso dhammaan sifooyinka (ama unugyada column) inay qiime hal leeyihiin:

U-hoggaansanaanta Caadiga ah ee Koowaad
Shaqaale Goobta
Yooxanaa Los Angeles
Tina Los Angeles
Tina Chicago

Laakiin 1NF weli kuma filna in laga hortago dhibaatooyinka macluumaadka.

Sidee 2NF u shaqeyneysaa si loo xaqiijiyo ku tiirsanaan buuxda

Si aad si buuxda ugu tiirsanaato, dhamaan sifooyinka muhiimka ah ee aan ku jirin musharaxa waa inay ku xiran tahay furaha koowaad. (Xusuusnow, astaamaha muhiimka ah ee musharaxa waa furaha (tusaale ahaan, furaha koowaad ama furaha) oo loo isticmaalo si gaar ah loo aqoonsado diiwaanka databaseka.

Naqshadeeyayaasha Database waxay isticmaalaan qori si ay u sharaxaan xiriirka ku-xiran ee u dhexeeya sifooyinka:

Haddii sifo A ayaa go'aamiya qiimaha B, waxaan ku qornaa A -> B - macnaheedu waa in B uu ku shaqeyn karo A. Jiritaankani, A ayaa go'aamiya qiimaha B, halka B uu ku xiran yahay A.

Tusaale ahaan, shaxda Shaqaalaha Shaqaalaha ee hoos ku qoran, Shaqaaleeyaha iyo DeptID waa furayaasha labada musharax: Shaqaaluhu waa mawduuca muhiimka ah ee miiska halka DeptID uu yahay furaha shisheeye.

Waxyaalaha kale ee kale - kiiskan, Shaqaalaha Magaca iyo Qaybta Magaca - waa inay ku xiran tahay furaha koowaad si loo helo qiimaha.

Waaxyada Shaqaalaha
Shaqaale Shaqaale Magaca DeptID Qaybta Magaca
Emp1 Yooxanaa Dept001 Maaliyadda
Emp2 Tina Dept003 Iibka
Emp3 Carlos Dept001 Maaliyadda

Xaaladdan, jadwalku ma aha mid si buuxda ugu tiirsan sababtoo ah, inta uu shaqaaluhu ku xiran yahay shaqaalaha asaasiga ah ee muhiimka ah, Dakhliga Magaca wuxuu ku xiran yahay bedelka DeptID. Tan waxaa loo yaqaan ' dependence partial' .

Si miiskaan loo dhigo waafaqsan 2NF, waxaan u baahannahay inaan xogta u kala dhigno labo jadwal:

Shaqaalaha
Shaqaale Shaqaale Magaca DeptID
Emp1 Yooxanaa Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

Waxaan ka saari karnaa sifaha DeptName ee miiska Shaqaalaha oo abuuraya miis cusub oo miisaaniyadeed:

Waaxda
DeptID Qaybta Magaca
Dept001 Maaliyadda
Dept002 Khayraadka Shaqaalaha
Dept003 Iibka

Hadda xiriirka u dhexeeya miisaska ayaa si buuxda ugu tiirsan, ama 2NF.

Sababta Dheellitirnaanta Ku Saabsan Waa Muhiim

Ku tiirsanaanta buuxda ee u dhaxaysa sifaha xogta waxay kaa caawineysaa hubinta xogta iyo ka fogaanshaha xasaasiyadda xogta.

Tusaale ahaan, ka fiirso jadwalka qaybta kor ku xusan ee u hoggaansanaayo oo keliya 1NF. Halkan waa, mar kale:

U-hoggaansanaanta Caadiga ah ee Koowaad
Shaqaale Goobta
Yooxanaa Los Angeles
Tina Los Angeles
Tina Chicago

Tina waxay leedahay laba diiwaan. Haddii aan cusboonaysiino mid aan ogaanin in ay jiraan laba, natiijadu waxay noqon doontaa xog aan sax ahayn.

Ama, maxaa dhacaya haddii aan rabno inaan ku darno shaqaale miiskaan, laakiin weli ma ogaanno Goobta? Waxaa laga yaabaa inaan nala mamnuucno inaan xitaa ku darno shaqaale cusub haddii Nidaamka Goobtu uusan u oggolaanin qiimaha NULL.

Kala duwanaansho buuxda ma aha sawirka oo dhan, inkastoo, marka ay timaaddo caadi ahaan. Waa inaad hubisaa in macluumaadkaaga ku yaala uu ku jiro Foomamka Saddexaad ee Saddexaad (3NF).