Kupoteza Hifadhi Yako: Fomu ya kwanza ya kawaida

Sheria hizi mbili rahisi zitasaidia kuimarisha database yako

Fomu ya kwanza ya kawaida (1NF) huweka sheria za msingi kwa database iliyopangwa:

Je! Sheria hizi zinamaanisha nini wakati wa kutafakari kubuni halisi ya database? Kwa kweli ni rahisi sana.

1. Kuondoa Ugawaji

Utawala wa kwanza unaagiza kwamba hatupaswi kudanganya data ndani ya safu moja ya meza. Ndani ya jumuiya ya duka, dhana hii inajulikana kama atomiki ya meza. Majedwali yanayolingana na kanuni hii yanasemekana kuwa atomiki. Hebu tuchunguza kanuni hii kwa mfano wa kawaida: meza ndani ya database ya rasilimali za kibinadamu inayoweka uhusiano wa meneja-chini. Kwa madhumuni ya mfano wetu, tutaweka sheria ya biashara ambayo msimamizi kila mmoja anaweza kuwa na wasaidizi mmoja au zaidi wakati kila mmoja anaweza kuwa na msimamizi mmoja tu.

Intuitively, wakati wa kuunda orodha au sahajedwali ili kufuatilia habari hii, tunaweza kuunda meza na nyanja zifuatazo:

Hata hivyo, kukumbuka utawala wa kwanza uliowekwa na 1NF: Ondoa nguzo za duplicative kutoka kwenye meza sawa. Kwa wazi, nguzo za chini-chini-chini4 zinapendeza. Kuchukua muda na kutafakari matatizo yaliyoinuliwa na hali hii. Ikiwa meneja ana mjadala mmoja, nguzo za Subordinate2-Subordinate4 zinaangamizwa tu kuhifadhi nafasi (bidhaa ya thamani ya bidhaa). Zaidi ya hayo, fikiria kesi ambapo meneja tayari ana wasaidizi 4 - kinachotokea ikiwa anachukua mfanyakazi mwingine? Mfumo wa meza nzima unahitaji mabadiliko.

Kwa hatua hii, wazo la pili la mkali hutokea kwa viungo vya database: Hatutaki kuwa na safu zaidi ya moja na tunataka kuruhusu kiasi kikubwa cha hifadhi ya data. Hebu jaribu kitu kama hiki:

Na uwanja ulio na Msaidizi ungekuwa na entries nyingi katika fomu "Mary, Bill, Joe."

Suluhisho hili ni karibu, lakini pia hupungukiwa na alama. Safu ya chini bado ni ya duplicative na isiyo ya atomiki. Ni nini kinachotokea wakati tunahitaji kuongeza au kuondoa mjadala? Tunahitaji kusoma na kuandika maudhui yote ya meza. Hiyo sio mpango mkubwa katika hali hii, lakini ni nini ikiwa meneja mmoja alikuwa na wafanyakazi mia moja? Pia, inahusisha mchakato wa kuchagua data kutoka kwa darasani katika maswali ya baadaye.

Hapa kuna meza ambayo inatimiza utawala wa kwanza wa 1NF:

Katika kesi hii, kila chini anaingia moja, lakini wasimamizi wanaweza kuwa na funguo nyingi.

2. Tambua Muhimu wa Msingi

Sasa, je! Kuhusu utawala wa pili: kutambua safu ya kila safu na safu ya kipekee au seti ya nguzo ( ufunguo wa msingi )? Unaweza kuangalia meza hapo juu na kupendekeza matumizi ya safu ndogo kama msingi muhimu. Kwa kweli, safu ndogo ni mgombea mzuri kwa ufunguo wa msingi kutokana na ukweli kwamba biashara yetu inasema kuwa kila msimamizi anaweza kuwa na meneja mmoja tu. Hata hivyo, data ambayo tumechagua kuhifadhi katika meza yetu inafanya hii suluhisho la chini. Ni nini kinachotokea ikiwa tunaajiri mfanyakazi mwingine aitwaye Jim? Tunawekaje uhusiano wake wa meneja-chini katika databana?

Ni vyema kutumia kitambulisho cha kipekee (kama vile ID ya mfanyakazi) kama ufunguo wa msingi . Meza yetu ya mwisho ingeonekana kama hii:

Sasa, meza yetu iko katika fomu ya kwanza ya kawaida! Ikiwa ungependa kuendelea kujifunza kuhusu uhalalishaji, soma makala nyingine katika mfululizo huu: