Artikkelin tunnus: 283878 - Näytä tuotteet, joita tämä artikkeli koskee.
Aloittelija: Tässä artikkelissa kuvatut toimet edellyttävät henkilökohtaisessa käytössä olevien tietokoneiden käyttöliittymän tuntemista.

Tämän artikkelin Microsoft Access 2000 -sovellusta käsittelevä versio on 209534 (tämä artikkeli saattaa olla englanninkielinen).
Tämän artikkelin Microsoft Access 95- tai Microsoft Access 97 -sovellusta käsittelevä versio on 100139 (tämä artikkeli saattaa olla englanninkielinen).
Laajenna kaikki | Kutista kaikki

Tällä sivulla

Yhteenveto

Tässä artikkelissa on tietokannan normalisointitekniikan kuvaus aloittelijoille. Näiden termien perustiedoista on hyötyä käsiteltäessä relaatiotietokannan rakennetta.

HUOMAUTUS: Microsoft tarjoaa myös WebCast-lähetyksen, jossa käsitellään tietokannan normalisoinnin perusteita. Voit katsella tämän WebCast-lähetyksen käymällä seuraavassa Microsoftin verkkosivustossa:
http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?fr=1

Enemmän tietoa

Normalisoinnin kuvaus

Normalisointi on tietokannan tietojen järjestämisen prosessi. Siihen sisältyy taulukoiden luomista ja suhteiden järjestämistä taulukoiden välille noudattamalla sääntöjä, jotka on suunniteltu sekä suojaamaan tietoja että tekemään tietokannasta entistä joustavamman poistamalla redundanssin ja epäyhtenäiset riippuvuussuhteet.

Redundantit tiedot kuluttavat turhaan levytilaa ja aiheuttavat ylläpito-ongelmia. Jos useammassa kuin yhdessä sijainnissa olevia tietoja on muutettava, tiedot on muutettava täsmälleen samalla tavalla kaikissa sijainneissa. Asiakkaan osoitteen muutos on paljon helpompi toteuttaa, jos tiedot on tallennettu vain Asiakkaat-taulukkoon, eivätkä mihinkään muuhun sijaintiin tietokannassa.

Mikä on "epäyhtenäinen riippuvuussuhde"? Vaikka käyttäjän on intuitiivista etsiä tietyn asiakkaan osoitetta Asiakkaat-taulukosta, kyseiselle asiakkaalle soittavan työntekijän palkkatietoja ei välttämättä ole järkevää etsiä siitä. Työntekijän palkka liittyy (tai on riippuvainen) työntekijästä, joten se tulee siirtää Työntekijät-taulukkoon. Epäyhtenäiset riippuvuussuhteet saattavat tehdä tiedoista vaikeakäyttöisiä, koska tietojen löytämisen polku saattaa puuttua tai olla katkennut.

Tietokannan normalisoinnissa on joitakin sääntöjä. Kutakin sääntöä kutsutaan normaalimuodoksi. Jos ensimmäistä sääntöä noudatetaan, tietokannan sanotaan olevan ensimmäisessä normaalimuodossa. Jos ensimmäistä kolmea sääntöä noudatetaan, tietokannan sanotaan olevan kolmannessa normaalimuodossa. Vaikka muut normalisointitasot ovat mahdollisia, kolmatta normaalimuotoa pidetään suurimpana tarpeellisena tasona useimmille sovelluksille.

Samoin kuin useiden muodollisten sääntöjen ja määritysten suhteen, todelliset skenaariot eivät aina salli täydellistä noudattamista. Yleisesti ottaen normalisointi edellyttää lisätaulukoita, ja osa asiakkaista kokee tämän vaivalloiseksi. Jos päätät rikkoa jotakin kolmesta ensimmäisestä normalisointisäännöstä, varmista, että sovelluksesi on valmistautunut mahdollisesti ilmeneviin ongelmiin, kuten redundantteihin tietoihin ja epäyhtenäisiin riippuvuussuhteisiin.

Seuraavissa kuvauksissa on esimerkkejä.

Ensimmäinen normaalimuoto

  • Poista yksittäisissä taulukoissa toistuvat ryhmät.
  • Luo erillinen taulukko kullekin liittyvien tietojen joukolle.
  • Merkitse kukin liittyvien tietojen joukko perusavaimen avulla.
Älä käytä yksittäisessä taulukossa useita kenttiä samanlaisten tietojen tallentamiseen. Jos esimerkiksi haluat jäljittää varastonimikkeen, joka saattaa olla peräisin kahdesta mahdollisesta lähteestä, varastotietue saattaa sisältää kentät Toimittajakoodi 1 ja Toimittajakoodi 2.

Mitä tapahtuu, kun lisäät kolmannen valmistajan? Kentän lisääminen ei riitä, vaan ohjelmaa ja taulukkoa on muokattava, eikä se mahdollista sujuvasti dynaamisten valmistajien määrän käyttämistä. Sijoita sen sijaan kaikki valmistajatiedot erilliseen taulukkoon nimeltä Valmistajat ja linkitä varasto valmistajaan käyttämällä nimikenumeroavainta tai valmistajat varastoon käyttämällä valmistajakoodiavainta.

Toinen normaalimuoto

  • Luo erilliset taulukot useita tietueita koskeville arvojen joukoille.
  • Muodosta taulukoiden välinen suhde viiteavaimen avulla.
Tietueiden ei pidä olla riippuvaisia mistään muusta kuin taulukon perusavaimesta (yhdistelmäavain tarvittaessa). Ajattele esimerkiksi asiakkaan osoitetta kirjanpitojärjestelmässä. Asiakkaat-taulukko tarvitsee osoitetta, mutta niin tarvitsevat Tilaukset-, Lähetys-, Laskut-, Myyntireskontra- ja Ryhmät-taulukot. Sen sijaan, että tallentaisit asiakkaan osoitteen erillisenä merkintänä jokaiseen näistä taulukoista, tallenna se yhteen sijaintiin joko Asiakkaat-taulukossa tai erillisessä Osoitteet-taulukossa.

Kolmas normaalimuoto

  • Poista kentät, jotka eivät ole riippuvaisia avaimesta.
Tietueen arvot, jotka eivät ole osa tietueen avainta, eivät kuulu taulukkoon. Yleisesti ottaen, kun kenttien ryhmän sisältö saattaa koskea useampaa kuin yhtä taulukon tietuetta, harkitse aina kyseisten kenttien sijoittamista erilliseen taulukkoon.

Esimerkiksi hakijan yliopiston nimi ja osoite saattaa sisältyä Työntekijöiden työhönotto -taulukkoon. Tarvitset kuitenkin täydellisen luettelon yliopistoista ryhmäpostituksia varten. Jos yliopistojen tiedot on tallennettu Hakijat-taulukkoon, ei ole mitään tapaa näyttää luetteloa yliopistoista, joista ei ole nykyisiä hakijoita. Luo erillinen Yliopistot-taulukko ja linkitä se Ehdokkaat-taulukkoon käyttäen yliopistokoodiavainta.

POIKKEUS: Kolmannen normaalimuodon noudattaminen ei ole aina käytännöllistä, vaikka se on teoreettisesti tavoiteltavaa. Jos sinulla on Asiakkaat-taulukko ja haluat poistaa kaikki mahdolliset kenttienväliset riippuvuussuhteet, sinun on luotava erilliset taulukot kaupungeille, postinumeroille, myyntiedustajille, asiakasluokille ja kaikille muille tekijöille, jotka saattavat olla kahdentuneina useissa tietueissa. Teoriassa normalisointi on tavoittelemisen arvoista. Useiden pienten taulukoiden käyttäminen saattaa kuitenkin heikentää suorituskykyä tai ylittää avointen tiedostojen ja muistin kapasiteetit.

Kolmatta normaalimuotoa voi olla hyödyllistä käyttää vain tiedoille, jotka muuttuvat usein. Jos joitakin riippuvaisia kenttiä on jäljellä, suunnittele sovellus niin, että se edellyttää käyttäjän vahvistavan kaikki liittyvät kentät, kun yhtä kenttää muutetaan.

Muut normalisointimuodot

Neljäs normaalimuoto (Boyce-Coddin normaalimuoto eli BCNF) ja viides normaalimuoto ovat olemassa, mutta niitä sovelletaan käytännön suunnittelussa vain harvoin. Näiden sääntöjen jättäminen huomiotta saattaa antaa tulokseksi muun kuin täydellisen tietokantarakenteen, mutta sen ei pitäisi vaikuttaa tietokannan toimintaan.

Esimerkkitaulukon normalisoiminen

Näissä vaiheissa esitellään kuvitteellisen opiskelijataulukon normalisointiprosessi.
  1. Normalisoimaton taulukko:

    Kutista tämä taulukkoLaajenna tämä taulukko
    Opiskelijan numeroOhjaajaOhjaajan huoneKurssi 1Kurssi 2Kurssi 3
    1022Jones412101-07143-01159-02
    4123Smith216201-01211-02214-01
  2. Ensimmäinen normaalimuoto: Ei toistuvia ryhmiä

    Taulukoilla tulee olla vain kaksi ulottuvuutta. Koska yhdellä opiskelijalla on useita oppitunteja, ne tulee luetella erillisessä taulukossa. Edellä olevien tietueiden kentät Kurssi 1, Kurssi ja Kurssi 3 ilmaisevat ongelmaa rakenteessa.

    Laskentataulukot käyttävät usein kolmatta ulottuvuutta, mutta taulukot eivät. Toinen tapa ajatella tätä ongelmaa on yhden kohteen suhde useaan kohteeseen, jolloin suhteen yhtä kohdetta ja montaa kohdetta ei tule sijoittaa samaan taulukkoon. Luo sen sijaan toinen taulukko ensimmäisessä normaalimuodossa poistamalla toistuva ryhmä (Kurssin numero) seuraavassa kuvatulla tavalla:

    Kutista tämä taulukkoLaajenna tämä taulukko
    Opiskelijan numeroOhjaajaOhjaajan huoneKurssin numero
    1022Jones412101-07
    1022Jones412143-01
    1022Jones412159-02
    4123Smith216201-01
    4123Smith216211-02
    4123Smith216214-01
  3. Toinen normaalimuoto: Poista redundantit tiedot

    Huomaa edellä olevassa taulukossa eri Kurssin numero -arvot kullekin Opiskelijan numero -arvolle. Luokan numero ei ole toiminnallisesti riippuvainen Opiskelijan numerosta (perusavain), joten tämä suhde ei ole toisessa normaalimuodossa.

    Toinen normaalimuoto esitellään seuraavassa kahdessa taulukossa:

    Opiskelijat:

    Kutista tämä taulukkoLaajenna tämä taulukko
    Opiskelijan numeroOhjaajaOhjaajan huone
    1022Jones412
    4123Smith216


    Rekisteröinti:

    Kutista tämä taulukkoLaajenna tämä taulukko
    Opiskelijan numeroKurssin numero
    1022101-07
    1022143-01
    1022159-02
    4123201-01
    4123211-02
    4123214-01
  4. Kolmas normaalimuoto: Poista tiedot, jotka eivät ole riippuvaisia avaimesta

    Viimeisessä esimerkissä Ohjaajan huone on toiminnallisesti riippuvainen Ohjaaja-määritteestä. Ratkaisu on siirtää kyseinen määrite Opiskelijat-taulukosta Tiedekunta-taulukkoon seuraavassa kuvatulla tavalla:

    Opiskelijat:

    Kutista tämä taulukkoLaajenna tämä taulukko
    Opiskelijan numeroOhjaaja
    1022Jones
    4123Smith


    Tiedekunta:

    Kutista tämä taulukkoLaajenna tämä taulukko
    NimiHuoneOsasto
    Jones41242
    Smith21642

Ominaisuudet

Artikkelin tunnus: 283878 - Viimeisin tarkistus: 8. helmikuuta 2008 - Versio: 6.4
Artikkelin tiedot koskevat seuraavia tuotteita:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Hakusanat: 
kbinfo kbdesign kbdatabase kbhowto KB283878

Anna palautetta

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com