Jūsų duomenų bazės normalizavimas: perėjimas į antrą įprastinę formą (2NF)

Antrosios įprastos formos duomenų bazės įvedimas

Praėjusį mėnesį mes apžvelgėme keletą duomenų bazės lentelės normalizavimo aspektų. Pirma, mes aptarėme pagrindinius duomenų bazių normalizavimo principus. Paskutinį kartą mes ištyrėme pagrindinius reikalavimus, nustatytus pirmoje įprastoje formoje (1NF). Dabar tęskime kelionę ir apimsime antrosios įprastos formos (2NF) principus.

Prisiminkite bendruosius 2NF reikalavimus:

Šios taisyklės gali būti apibendrintos paprastu teiginiu: "2NF" bando sumažinti nereikalingų duomenų kiekį lentelėje ištraukdami jį, įtraukdami į naują lentelę (-us) ir sukuriant ryšius tarp šių lentelių.

Pažvelkime į pavyzdį. Įsivaizduokite internetinę parduotuvę, kuri palaiko kliento informaciją duomenų bazėje. Jie gali turėti vieną lentelę, pavadintą "Klientai", turinti šiuos elementus:

Trumpa šio lentelės išvaizda rodo nedidelį nereikalingų duomenų kiekį. Mes saugome "Sea Cliff, NY 11579" ir "Majamis, FL 33157" įrašus du kartus per savaitę. Dabar, mūsų paprastas pavyzdys gali atrodyti ne per daug pridėtos saugyklos, bet įsivaizduokite praleistą erdvę, jei mūsų lentelėje turėtume tūkstančius eilučių. Be to, jei būtų pakeistas "Sea Cliff" pašto kodas, mes turėtume padaryti šį pakeitimą daugelyje duomenų bazės vietų.

"2NF" suderinama duomenų bazės struktūra, ši nereikalinga informacija yra išgaunama ir saugoma atskiroje lentelėje. Mūsų nauja lentelė (dar vadiname "ZIP") gali turėti šiuos laukus:

Jei norime būti itin efektyvi, galime net užpildyti šią lentelę iš anksto - pašto skyriuje pateikiamas visų galiojančių pašto kodų ir jų miestų / valstijų santykių katalogas. Žinoma, susidūrėte su situacija, kai buvo naudojama tokio pobūdžio duomenų bazė. Kažkas, kuris imasi užsakymo, pirmiausia galėjo paklausti jūsų savo pašto kodo, o tada sužinojęs apie miestą ir valstybę, kurioje skambinate. Šis įrenginys sutrumpina operatoriaus klaidą ir padidina efektyvumą.

Dabar, kai pašalinome pasikartojančius duomenis iš lentelės "Klientai", mes įvykdėme pirmąją antrosios įprastos formos taisyklę. Mes vis tiek turime naudoti užsienio raktą, kad susietų dvi lenteles. Šiuos santykius sukursime naudodami ZIP kodą (pagrindinį raktą iš " ZIP" lentelės). Štai mūsų nauja klientų lentelė:

Dabar mes sumažinome nereikalingos duomenų, saugomų duomenų bazėje, kiekį, o mūsų struktūra yra antroji įprasta forma!

Jei norite užtikrinti, kad jūsų duomenų bazė būtų normalizuota, peržiūrėkite kitus šios serijos straipsnius: