Andmete modelleerimine: normaliseerimine

Normaliseerimine

Normaliseerimine on andmebaasi andmete korrastamine. Selle abil saame vältida andmete kordumist (liiasus) ja sellest tingitud omavahelisi vastuolusid. See on eelduseks võimalikult hea ja töötava andmebaasi loomiseks. Seda protsessi nimetatakse andmemudeli normaalkujule (normal form) viimiseks ja neid reegleid on kokku viis. Enamasti piisab andmemudeli viimisest kolmandale tasemele. Tasemed on:

  • Esimene normaalkuju (1NF, first normal form)
  • Teine normaalkuju (2NF, second normal form)
  • Kolmas normaalkuju (3NF, third normal form)

Iga normaalkuju tasemega säilib eelmine omadus!

Esimene normaalkuju (1NF)

Esimene normaalkuju aluseks kogu andmebaasi mudelile. Ja mõningad punktid jälgimiseks:

  1. Andmed peavad olema tabeli kujul.
  2. Tabeli atribuutidel on unikaalsed nimed.
  3. Igas veerus on ainult ühte tüüpi andmed. Samas veerus ei kasutata ühes kirjes kuupäeva, teises teksti jne.
  4. Iga lahter sisaldab ainult ühte väärtust. Sis tähendab, et kui kasutajal on kaks emaili, siis ei pane neid samasse lahtrisse. Sel juhul on mõttekas luua uus tabel.
  5. Igal tabelil on primaarvõti.

Võtame aluseks eelmises peatükis tekitatud diagrammi ja viska pilk peale kas kõik punktid on täidetud.

Vaatame hetkel tabeleid eraldi – meil on olemas kõik tabeli kujul, õiged nimetused, unikaalne võti ja ei paista tulevat kordusi. Mida võib teha on muuda välisvõtmed ka väikesteks tähtedeks.

Teine normaalkuju (2NF)

Teisele normaalkujule viimiseks on ainult kaks reeglit:

  1. Täidetud on esimene normaalkuju (1NF).
  2. Mittevõtmeveerud sõltuvad võtmest täielikult st. nad ei sõltu ühestki võtmeveeruga seotud veerust.

Näiteks võtame tabeli ‘Opilane‘. Kõik atribuudid on seotud tabeli primaarvõtmega. Samas kui vaatame tabelit ‘Oppeaine‘, siis seal on atribuut ‘moodul‘. Tegemist on põhimõtteliselt grupiga ja ei sõltu õppeaine primaarvõtmest. Näiteks kui muutub mooduli nimi? Või kui oleks vaja moodulit kasutada veel kuskil? Siis on hea mõte tekitada selle jaoks eraldi tabel ja ühendada need üks-mitmele suhtega suhtega.

Sama reeglit jälgides on tabelist ‘Oppeaine‘ õpilased lahtku löödud, aga kustutamata on atribuut ‘opilase_nimi‘. Tee seda!

Kolmas normaalkuju (3NF)

Eraldades tabelid teise normaalkuju reeglite järgi võib tekkida võimalus sellest tabelist eraldada veel eraldi tabeleid, juhul kui on tegemist nn. ülekantud sõltuvusega (transitive dependencies) st. tekivad järjestikused üks-ühesed sõltuvused veergude vahel – veerg B on üks-üheselt sõltuvuses veerust A, veerg C on omakorda üks-üheses sõltuvuses veerust B. Lihtsustatult, et mittevõtmeveerud ei tohiks olla üksteisest sõltuvad.

Meie tabelitest paistab see kordumisega kenasti silma. Nimelt on koolil, õpilasel ja õpetajal aadressid, mis selgelt on sõluvad postiindeksist. Seega saame tekitada uue tabeli ‘Postiindeks’ ja siduda selle nimetatud tabelitega.

SEE ALL Add a note
YOU
Add your Comment

Viimased postitused

  • Microsoft Teams

    Mis on Microsoft Teams? Microsoft Teams on vestluspõhine tööruum, kus saab...

  • Microsoft Forms

    Microsoft Forms on Office 365 paketiga kaasa tulev rakendus, mille abil saad...

  • Microsoft Sway

    Microsoft Sway uutmoodi töövahend, mille abil saab luua ja jagada...

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Kontakt: kliki siia

Hetkel õpivad:

Profile picture of Kristiina Maremäe

Kontrolli tunnistust