Kuweka Database katika Fomu ya Pili ya kawaida
Zaidi ya mwezi uliopita, tumeangalia vipengele kadhaa vya kuimarisha meza ya database. Kwanza, tulijadili kanuni za msingi za uhalali wa database. Mara ya mwisho, tumezingatia mahitaji ya msingi yaliyowekwa na fomu ya kawaida ya kawaida (1NF). Sasa, hebu tuendelee safari yetu na kuzingatia kanuni za fomu ya pili ya kawaida (2NF).
Kumbuka mahitaji ya jumla ya 2NF:
- Ondoa subsets ya data zinazohusiana na safu nyingi za meza na kuziweka kwenye meza tofauti.
- Unda mahusiano kati ya meza hizi mpya na watangulizi wao kupitia matumizi ya funguo za kigeni.
Sheria hizi zinaweza kufupishwa kwa kauli rahisi: 2NF inajaribu kupunguza kiasi cha data nyingi katika meza kwa kuiondoa, kuiweka kwenye meza mpya na kujenga uhusiano kati ya meza hizo.
Hebu tuangalie mfano. Fikiria duka la mtandaoni linalohifadhi maelezo ya wateja kwenye databana. Wanaweza kuwa na meza moja inayoitwa Wateja kwa mambo yafuatayo:
- Customi
- Jina la kwanza
- Jina la familia
- Anwani
- Jiji
- Hali
- ZIP
Uangalizi mfupi katika meza hii unaonyesha kiasi kidogo cha data nyingi. Tunahifadhi "Bahari ya Bahari, NY 11579" na "Miami, FL 33157" mara mbili kila mmoja. Sasa, hiyo inaweza kuonekana kama hifadhi ya ziada sana katika mfano wetu rahisi, lakini fikiria nafasi iliyopoteza ikiwa tulikuwa na maelfu ya safu katika meza yetu. Zaidi ya hayo, kama msimbo wa ZIP wa Bahari ya Bahari ungebadilika, tunatakiwa kufanya mabadiliko hayo katika maeneo mengi kwenye databana.
Katika muundo wa database wa 2NF unaozingatia, taarifa hii ya uharibifu hutolewa na kuhifadhiwa kwenye meza tofauti. Jedwali letu jipya (hebu tupige ZIP) inaweza kuwa na nyanja zifuatazo:
- ZIP
- Jiji
- Hali
Ikiwa tunataka kuwa na ufanisi mkubwa, tunaweza hata kujaza meza hii mapema - ofisi ya posta inatoa saraka ya codes zote za ZIP zilizo sahihi na uhusiano wao wa jiji / hali. Hakika, umekutana na hali ambapo aina hii ya daraka ilitumiwa. Mtu alichukua amri angeweza kukuuliza code yako ya kwanza kwanza na kisha akajua jiji na hali uliyokuwa ukiita. Aina hii ya utaratibu inapunguza hitilafu ya operator na huongeza ufanisi.
Sasa kwa kuwa tumeondoa data ya duplicative kutoka kwa Wateja meza, tumetimiza utawala wa kwanza wa fomu ya pili ya kawaida. Bado tunahitaji kutumia ufunguo wa kigeni ili kuunganisha meza mbili pamoja. Tutatumia msimbo wa ZIP (ufunguo wa msingi kutoka meza ya ZIP ) ili kuunda uhusiano huo. Hapa kuna meza yetu ya Wateja mpya:
- Customi
- Jina la kwanza
- Jina la familia
- Anwani
- ZIP
Sasa tumeipunguza kiasi cha habari nyekundu iliyohifadhiwa kwenye databana na muundo wetu ni katika fomu ya kawaida ya kawaida!
Ikiwa ungependa kuhakikisha kuwa database yako ni kawaida, angalia makala zetu nyingine katika mfululizo huu:
- Msingi wa Msingi wa Hesabu
- Kuweka Database yako katika fomu ya kwanza ya kawaida
- Kuweka Database yako katika fomu ya pili ya kawaida
- Kuweka Database yako katika fomu ya tatu ya kawaida