Normiganta vian datumbazon: Transiranta al Dua Normala Formo (2NF)

Metante Datumaron en Dua Normala Formo

Dum la pasinta monato, ni rigardis plurajn aspektojn pri normala tablo de datumbazo. Unue, ni diskutis la bazajn principojn de datumbazo. Lasta fojo, ni esploris la bazajn postulojn establitajn per la unua normala formo (1NF). Nun ni daŭrigu nian veturon kaj kovri la principojn de la dua normala formo (2NF).

Memoru la ĝeneralajn postulojn de 2NF:

Ĉi tiuj reguloj povas resumi en simpla deklaro: 2NF provas redukti la kvanton de redundaj datumoj en tablo per ĉerpi ĝin, metante ĝin en novaj tabloj kaj krei interrilatojn inter tiuj tabloj.

Ni rigardu ekzemplon. Imagu reta reta kiu konservas klientan informon en datumbazo. Ili eble havas unu tablon nomitan Klientoj kun la sekvaj elementoj:

Mallonga rigardo al ĉi tiu tablo malkaŝas malgrandan kvanton da redundaj datumoj. Ni stokas la "Sea Cliff, NY 11579" kaj "Miami, FL 33157" enirojn dufoje ĉiun. Nun, tio eble ŝajnas tro multe aldonita stokado en nia simpla ekzemplo, sed imagu la malŝparitan spacon, se ni havus milojn da vicoj en nia tablo. Aldone, se la kodo por Sea Cliff ŝanĝus, ni devus fari tiun ŝanĝon en multaj lokoj laŭlonge de la datumbazo.

En 2NF-konforma datumbaza strukturo, ĉi tiu redunda informo estas ĉerpita kaj stokita en aparta tablo. Nia nova tablo (ni nomu ĝin ZIP) povus havi la jenajn kampojn:

Se ni volas esti super-efika, ni eĉ povas plenumi ĉi tiun tablon antaŭen - la poŝtoficejo provizas dosierujon de ĉiuj validaj ZIP-kodoj kaj iliaj urboj / ŝtataj rilatoj. Verŝajne, vi renkontis situacion kie ĉi tiu tipo de datumbazo estis uzata. Iu, kiu ordonis, povus unue peti vian ZIPkodon kaj poste konis la urbon kaj ŝtaton, kiun vi vokis. Ĉi tiu tipo de aranĝo reduktas la operacian eraron kaj pliigas efikecon.

Nun, ke ni forigis la duplikatajn datumojn de la Tablo de Klientoj, ni kontentigis la unuan regulon de dua normala formo. Ni ankoraŭ bezonas uzi eksterlandan ŝlosilon por ligi la du tabulojn kune. Ni uzos la ZIPkodon (la primara ŝlosilo de la ZIP-tablo) por krei tiun rilaton. Jen nia nova Klienta tablo:

Ni nun minimigis la kvanton de redundaj informoj stokitaj en la datumbazo kaj nia strukturo estas en dua normala formo!

Se vi ŝatus certigi, ke via datumbazo estas normala, esploru niajn aliajn artikolojn en ĉi tiu serio: