Normiganta vian datumaron: Unua Normala Formo

Ĉi tiuj du simplaj reguloj helpos normaligi vian datumbazon

Unua Normala Formo (1NF) aranĝas la bazajn regulojn por organizita datumbazo:

Kion ĉi tiuj reguloj signifas, kiam kontemplas la praktikan dezajnon de datumbazo? Fakte estas tre simpla.

1. Forigi duplikon

La unua regulo diktas, ke ni ne devas duobligi datumojn ene de la sama vico de tablo. Ene de la datumbaza komunumo, ĉi tiu koncepto estas nomata kiel atomikeco de tablo. Tabuloj, kiuj plenumas ĉi tiun regulon, estas diritaj kiel atomaj. Ni esploru ĉi tiun principo per klasika ekzemplo: tablo ene de datumbazo de datumoj, kiu stokas la administran subordan rilaton. Por la celo de nia ekzemplo, ni postulos la komercan regulon, ke ĉiu administranto povas havi unu aŭ pli da subuloj dum ĉiu subulo povas havi nur unu administranton.

Intuite, kiam vi kreas liston aŭ foliumon por spuri ĉi tiun informon, ni eble kreu tablon kun la jenaj kampoj:

Tamen, memoru la unuan regulon postulita de 1NF: Forigi duplikajn kolumnojn de la sama tabulo. Klare, la Subordinate1-Subordinate4-kolumnoj estas duoblaj. Prenu momenton kaj pripensu la problemojn levitajn de ĉi tiu scenejo. Se administranto nur havas unu subulon, la Subordinate2-Subordinate4-kolumnoj estas simple malŝparitaj stokado-spaco (valora datumbazo). Krome, imagu la kazon kie administranto jam havas 4 subulojn - kio okazas, se ŝi prenos alian oficiston? La tuta tablo-strukturo postulos modifon.

Je ĉi tiu punkto, dua klara ideo kutime okazas al datumbazoj novuloj: ni ne volas havi pli ol unu kolumno kaj ni volas permesi malrigidan kvanton da datumstokado. Ni provu ion kiel ĉi:

Kaj la Subaj kampoj enhavos multajn enirojn en la formo "Maria, Vilĉjo, Joe".

Ĉi tiu solvo estas pli proksima, sed ĝi ankaŭ malpliiĝas de la marko. La suba kolumno estas ankoraŭ duobla kaj ne-atoma. Kio okazas kiam ni bezonas aldoni aŭ forigi subulon? Ni bezonas legi kaj skribi la tutan enhavon de la tablo. Tio ne estas granda interkonsento en ĉi tiu situacio, sed kio se unu administranto havis cent oficistojn? Ankaŭ, ĝi komplikas la procezon elekti datumojn de la datumbazo en futuraj demandoj.

Jen tablo, kiu kontentigas la unuan regulon de 1NF:

En ĉi tiu kazo, ĉiu subulo havas solan eniron, sed administrantoj povas havi multajn enirojn.

2. Identigu la Primran Ŝlosilon

Nun, kio pri la dua regulo: identigu ĉiun vicon kun unika kolumno aŭ aro de kolumnoj (la primara ŝlosilo )? Vi eble rigardu la tablon supre kaj sugestu la uzon de la suba kolumno kiel ĉefa ŝlosilo. Fakte, la suba kolumno estas bona kandidato por primara ŝlosilo pro la fakto, ke niaj komercaj reguloj specifas, ke ĉiu subulo povas havi nur unu administranton. Tamen, la datumoj, kiujn ni elektis por stoki en nia tablo, faras ĉi malpli ol ideala solvo. Kio okazas, se ni kontraktas al alia dungito nomata Jim? Kiel ni stokas sian administran subordan rilaton en la datumbazo?

Estas plej bone uzi vere unikan identigilon (kiel ekzemple dungitano) kiel ĉefa ŝlosilo . Nia fina tablo similas ĉi tion:

Nun nia tablo estas en unua normala formo! Se vi ŝatus sekvi lernadon pri normaligo, legu la aliajn artikolojn en ĉi tiu serio: