Kusawazisha dhidi ya Kupunguza hali ya kawaida
Hifadhi hifadhidata za uhusiano zinaundwa na mahusiano (jedwali zinazohusiana). Majedwali yanaundwa na nguzo. Ikiwa majedwali ni makubwa mawili (yaani safu wima nyingi sana kwenye jedwali moja), basi hitilafu za hifadhidata zinaweza kutokea. Ikiwa majedwali ni madogo mawili (yaani hifadhidata imeundwa na jedwali nyingi ndogo), haitakuwa na ufanisi kwa kuuliza. Kusawazisha na Kupunguza hali ya kawaida ni michakato miwili ambayo hutumiwa kuboresha utendakazi wa hifadhidata. Urekebishaji hupunguza upungufu ambao upo kwenye jedwali la data. Kupunguza hali ya kawaida (nyuma ya urekebishaji) huongeza data isiyohitajika au data ya kikundi.
Kusawazisha ni nini?
Kusawazisha ni mchakato unaofanywa ili kupunguza uondoaji ambao uko katika data katika hifadhidata za uhusiano. Utaratibu huu utagawanya majedwali makubwa hadi majedwali madogo na upungufu mdogo (unaoitwa "Aina za Kawaida"). Majedwali haya madogo yatahusiana kwa njia ya mahusiano yaliyofafanuliwa vizuri. Katika hifadhidata iliyosawazishwa vizuri, mabadiliko yoyote au urekebishaji wa data utahitaji kurekebisha jedwali moja tu. Fomu ya Kwanza ya Kawaida (1NF), Fomu ya Pili ya Kawaida (2NF), na Fomu ya Tatu ya Kawaida (3NF) ilianzishwa na Edgar F. Codd. Fomu ya Kawaida ya Boyce-Codd (BCNF) ilianzishwa mwaka wa 1974 na Codd na Raymond F. Boyce. Fomu za Juu za Kawaida (4NF, 5NF na 6NF) zimefafanuliwa, lakini zinatumika mara chache.
Jedwali linalotii 1NF huhakikisha kwamba kwa hakika linawakilisha uhusiano (yaani, halina rekodi zozote zinazojirudia), na halina sifa zozote zinazothaminiwa kimahusiano (i.e. sifa zote zinapaswa kuwa na maadili ya atomiki). Ili jedwali litii 2NF, inapaswa kutii 1NF na sifa yoyote ambayo si sehemu ya ufunguo wowote wa mgombea (yaani sifa zisizo kuu) inapaswa kutegemea kikamilifu funguo zozote za mgombea kwenye jedwali. Kulingana na ufafanuzi wa Codd, jedwali linasemekana kuwa katika 3NF, ikiwa na tu ikiwa, jedwali hilo liko katika fomu ya pili ya kawaida (2NF) na kila sifa kwenye jedwali ambayo sio ya ufunguo wa mgombea inapaswa kutegemea moja kwa moja kila. ufunguo wa mgombea wa jedwali hilo. BCNF (pia inajulikana kama 3.5NF) hunasa baadhi ya hitilafu ambazo hazijashughulikiwa na 3NF.
Kupunguza hali ya kawaida ni nini?
Kupunguza hali ya kawaida ni mchakato wa kinyume wa mchakato wa kuhalalisha. Kupunguza hali ya kawaida hufanya kazi kwa kuongeza data isiyohitajika au kuweka data katika vikundi ili kuboresha utendaji. Ingawa, kuongeza data isiyo ya kawaida kunasikika kuwa haina tija, wakati mwingine urekebishaji wa hali ya kawaida ni mchakato muhimu sana ili kushinda baadhi ya mapungufu katika programu ya hifadhidata ya uhusiano ambayo inaweza kuleta adhabu kali za utendakazi kwa hifadhidata zilizorekebishwa (hata zilizopangwa kwa utendakazi wa juu). Hii ni kwa sababu kuunganisha mahusiano kadhaa (ambayo ni matokeo ya kusawazisha) ili kutoa matokeo kwa hoja wakati mwingine kunaweza kuwa polepole kulingana na utekelezwaji halisi wa mifumo ya hifadhidata.
Kuna tofauti gani kati ya Kusawazisha na Kupunguza Ukawaida?
– Kusawazisha na upunguzaji wa hali ya kawaida ni michakato miwili ambayo ni kinyume kabisa.
– Kusawazisha ni mchakato wa kugawanya jedwali kubwa hadi ndogo na kupunguza data isiyohitajika, wakati urekebishaji wa data ni mchakato wa kuongeza data isiyohitajika ili kuboresha utendakazi.
– Urekebishaji unafanywa ili kuzuia hitilafu za hifadhidata.
– Upunguzaji wa hali ya kawaida kwa kawaida hufanywa ili kuboresha utendakazi wa usomaji wa hifadhidata, lakini kutokana na vikwazo vya ziada vinavyotumiwa kwa upunguzaji wa hali ya kawaida, kuandika (yaani, kuingiza, kusasisha na kufuta shughuli) kunaweza kuwa polepole. Kwa hivyo, hifadhidata isiyo ya kawaida inaweza kutoa utendaji mbaya zaidi wa uandishi kuliko hifadhidata ya kawaida.
– Mara nyingi hupendekezwa kwamba unapaswa “kurekebisha hali ya kawaida hadi iumie, ibadilishe hali ya kawaida hadi ifanye kazi”.