Setja upp gagnagrunn í öðru venjulegu formi
Undanfarna mánuði höfum við litið á nokkra þætti við að normalize gagnagrunnstafla. Í fyrsta lagi ræddum við grundvallarreglur um stöðlun gagnagrunns. Síðast þegar við skoðuðum grunnkröfur sem settar voru fram í fyrsta eðlilegu formi (1NF). Nú skulum við halda áfram ferð okkar og ná meginreglum annars venjulegs forms (2NF).
Muna almennar kröfur 2NF:
- Fjarlægðu undirlits gagna sem eiga við margar línur af borði og settu þau í sérstakar töflur.
- Búðu til tengsl milli þessara nýrra tafla og forvera þeirra með því að nota erlenda lykla.
Þessar reglur er hægt að draga saman í einföldu yfirlýsingu: 2NF reynir að draga úr fjölda óþarfa gagna í töflu með því að draga það út, setja það í nýtt borð (s) og búa til tengsl milli þessara tafla.
Við skulum skoða dæmi. Ímyndaðu þér netverslun sem heldur upplýsingum frá viðskiptavinum í gagnagrunni. Þeir gætu haft eitt borð sem heitir Viðskiptavinir með eftirfarandi þætti:
- CustNum
- Fyrsta nafn
- Eftirnafn
- Heimilisfang
- Borg
- Ríki
- ZIP
Stutt yfirlit yfir þetta borð sýnir smá magn af óþarfa gögnum. Við geymum "Sea Cliff, NY 11579" og "Miami, FL 33157" færslur tvisvar hvor. Nú virðist það ekki virðast eins og of mikið geymsla í okkar einföldu dæmi, en ímyndaðu þér sóunarsvæðið ef við áttum þúsundir raða í borðið okkar. Að auki, ef póstnúmerið fyrir Sea Cliff ætti að breytast, þurfum við að gera þessi breyting á mörgum stöðum í gagnagrunninum.
Í 2NF-samhæf gagnagrunnsuppbyggingu eru þessar óþarfar upplýsingar teknar út og geymdar í sérstakri töflu. Nýtt borð okkar (við skulum kalla það ZIPs) gæti haft eftirfarandi svið:
- ZIP
- Borg
- Ríki
Ef við viljum vera frábær-duglegur, getum við jafnvel fyllt þetta borð fyrirfram - pósthúsið veitir skrá yfir allar gildar póstnúmer og borgar / ríki sambönd þeirra. Víst hefur þú komið upp aðstæður þar sem þessi tegund gagnagrunns var notaður. Einhver sem tók á pöntun gæti hafa beðið þig um póstnúmerið þitt fyrst og þá vissi borgin og ástandið sem þú varst að hringja í. Þessi tegund af fyrirkomulagi dregur úr rekstrarvillu og eykur skilvirkni.
Nú þegar við höfum fjarlægt afrita gögnin frá viðskiptavinum töflunni höfum við náð fyrstu reglunni í öðru venjulegu formi. Við þurfum samt að nota erlendan lykil til að binda saman tvær töflur saman. Við notum póstnúmerið (aðal lykillinn úr ZIPs töflunni) til að búa til þetta samband. Hér er nýr viðskiptavinur borð okkar:
- CustNum
- Fyrsta nafn
- Eftirnafn
- Heimilisfang
- ZIP
Við höfum nú lágmarkað þann fjölda óþarfa upplýsinga sem geymdar eru í gagnagrunninum og uppbygging okkar er í öðru venjulegu formi!
Ef þú vilt tryggja að gagnagrunnurinn sé eðlilegur skaltu kanna aðrar greinar okkar í þessari röð:
- Gagnagrunnur Almennar grunnatriði
- Setja gagnagrunninn í fyrsta eðlilegu formi
- Setja gagnagrunninn í öðru venjulegu formi
- Setja upp gagnagrunninn í þriðja eðlilegu formi