Normiganta vian Datumaron
Se vi laboris kun datumbazoj dum momento, ŝajnas, ke vi aŭdis la terminan normaligon. Eble iu demandis vin "Ĉu tiu datumbazo normaliĝis?" aŭ "Ĉu tio estas en BCNF ?" Normaligo ofte estas forkaptita kiel lukso, ke nur akademiuloj havas tempon por. Tamen, sciante la principojn de normaligo kaj aplikante ilin al viaj ĉiutagaj datumbazoj de dezajno, vere ne estas ĉio komplika kaj ĝi povus plibonigi la agadon de via DBMS.
En ĉi tiu artikolo ni prezentos la koncepton de normaligo kaj mallongan rigardon al la plej komunaj normalaj formoj.
Kio estas normala?
Normaligo estas la procezo de efike organizi datumojn en datumbazo. Ekzistas du celoj de la normala procezo: forigante redundajn datumojn (ekzemple, konservante la samajn datumojn en pli ol unu tablo) kaj certigi datumajn dependecojn havas senson (nur stoki rilatajn datumojn en tablo). Ambaŭ ĉi tiuj estas dignaj celoj ĉar ili malpliigas la kvanton de spaco, kiun datumbazo konsumas kaj certigas, ke la datumoj estas logike stokitaj.
La Normalaj Formoj
La datumbaza komunumo disvolvis serion de gvidlinioj por certigi ke datumbazoj estas normala. Ĉi tiuj estas referitaj kiel normalaj formoj kaj estas numeritaj de unu (la plej malalta formo de normaligo, nomata unua normala formo aŭ 1NF) per kvin (kvina normala formo aŭ 5NF). En praktikaj aplikoj, vi ofte vidos 1NF, 2NF, kaj 3NF kune kun la okaza 4NF. Kvina normala formo estas tre malofte vidata kaj ne estos diskutita en ĉi tiu artikolo.
Antaŭ ol ni komencu nian diskutadon pri la normalaj formoj, estas grave rimarki, ke ili estas gvidlinioj kaj gvidlinioj nur. Foje, necesas forkuri de ili por renkonti praktikajn komercajn postulojn. Tamen, kiam variadoj okazas, ĝi estas ekstreme grava taksi iujn eblajn ramifojn, kiujn ili povus havi en via sistemo kaj koncernas eblajn nekonsekvencojn. Dirite, ni esploru la normalajn formojn.
Unua Normala Formo (1NF)
Unua normala formo (1NF) starigas la bazajn regulojn por organizita datumbazo:
- Forigi duplikajn kolumnojn de la sama tablo.
- Krei apartajn tabulojn por ĉiu grupo de rilataj datumoj kaj identigi ĉiun vicon kun unika kolumno aŭ aro de kolumnoj (la primara ŝlosilo ).
Dua Normala Formo (2NF)
Dua normala formo (2NF) plu traktas la koncepton forigi duplikatajn datumojn :
- Renkontu ĉiujn kondiĉojn de la unua normala formo.
- Forigi subaĵojn de datumoj, kiuj aplikiĝas al pluraj vicoj de tablo kaj metu ilin en apartaj tabloj.
- Krei interrilatojn inter ĉi tiuj novaj tabloj kaj iliaj antaŭuloj per la uzo de fremdaj klavoj .
Tria Normala Formo (3NF)
Tria normala formo (3NF) iras unu grandan paŝon pli malproksime:
- Renkontu ĉiujn kondiĉojn de la dua normala formo.
- Forigi kolumnojn, kiuj ne dependas de la ĉefa ŝlosilo.
Normala Formo Boyce-Codd (BCNF aŭ 3.5NF)
La Boyce-Codd Normala Formo, ankaŭ nomata "tria kaj duono (3.5) normala formo", aldonas unu pli postulon:
- Renkontu ĉiujn kondiĉojn de la tria normala formo.
- Ĉiu determinanto devas esti kandidata ŝlosilo.
Kvara Normala Formo (4NF)
Fine, kvara normala formo (4NF) havas unu kroman postulon:
- Renkontu ĉiujn kondiĉojn de la tria normala formo.
- Rilato estas en 4NF se ĝi ne havas multvalorajn dependecojn .
Memoru, ĉi tiuj normalaj gvidlinioj estas akumulataj. Por datumbazo esti en 2NF, ĝi devas unue plenumi ĉiujn kriteriojn de 1NF-datumbazo.
Ĉu mi devas normala?
Dum datumbazo normala ofte estas bona ideo, ĝi ne estas absoluta postulo. Fakte, estas iuj kazoj, kie intence malobservi la regulojn de normaligo estas bona praktiko. Por pli pri ĉi tiu temo, legu Ĉu mi Normale Mian Datumaron?
Se vi ŝatus certigi, ke via datumbazo estas normala, komencu lerni kiel meti vian datumbazon en Unua Normala Formo .