DBMS-normalisointi: 1NF, 2NF, 3NF Tietokantaesimerkki

Mikä on tietokannan normalisointi?

normalisointi on tietokannan suunnittelutekniikka, joka vähentää tietojen redundanssia ja eliminoi ei-toivotut ominaisuudet, kuten lisäys-, päivitys- ja poistohäiriöt. Normalisointisäännöt jakavat suuremmat taulukot pienempiin taulukoihin ja linkittävät ne suhteiden avulla. SQL:n normalisoinnin tarkoitus on poistaa tarpeettomat (toistuvat) tiedot ja varmistaa, että tiedot tallennetaan loogisesti.

Keksijä relaatiomalli Edgar Codd ehdotti teoriaa tietojen normalisoinnista ottamalla käyttöön ensimmäisen normaalimuodon, ja hän jatkoi teorian laajentamista toisella ja kolmannella normaalimuodolla. Later hän liittyi Raymond F. Boycen kehittämään Boyce-Coddin normaalimuodon teoriaa.

Normaalimuotojen tyypit DBMS:ssä

Tässä on luettelo SQL:n normaaleista muodoista:

  • 1NF (ensimmäinen normaalimuoto): Varmistaa, että tietokantataulukko on järjestetty siten, että jokainen sarake sisältää atomiarvoja (jakamattomia) ja jokainen tietue on ainutlaatuinen. Tämä eliminoi toistuvia ryhmiä ja jäsentää tiedot taulukoiksi ja sarakkeiksi.
  • 2NF (toinen normaalimuoto): Rakentuu 1NF:n varaan Meidän on poistettava ylimääräiset tiedot taulukosta, jota käytetään useille riveille. ja sijoittamalla ne erillisiin taulukoihin. Se edellyttää, että kaikki muut kuin avainattribuutit toimivat täysin ensisijaisessa avaimessa.
  • 3NF (kolmas normaalimuoto): Laajentaa 2NF:ää varmistamalla, että kaikki ei-avainattribuutit eivät ole vain täysin toimivia ensisijaisessa avaimessa, vaan myös toisistaan ​​riippumattomia. Tämä eliminoi transitiivisen riippuvuuden.
  • BCNF (Boyce-Coddin normaalimuoto): 3NF:n parannus, joka korjaa poikkeavuuksia, joita 3NF ei käsittele. Se edellyttää, että jokainen determinantti on ehdokasavain, mikä varmistaa normalisointisääntöjen entistä tiukemman noudattamisen.
  • 4NF (neljäs normaalimuoto): Käsittelee moniarvoisia riippuvuuksia. Se varmistaa, että tietueessa ei ole useita itsenäisiä moniarvoisia faktoja entiteetistä.
  • 5NF (viides normaalimuoto): Tunnetaan myös nimellä "Projection-Join Normal Form" (PJNF), se liittyy tiedon rekonstruoimiseen pienemmistä, eri tavalla järjestetyistä datakappaleista.
  • 6NF (kuudes normaalimuoto): Teoreettinen ja ei laajalti toteutettu. Se käsittelee ajallisia tietoja (käsittelee muutoksia ajan myötä) hajottamalla taulukoita edelleen kaiken ei-ajallisen redundanssin poistamiseksi.

Tietojen normalisoinnin teoria kirjassa MySQL palvelinta kehitetään edelleen. Esimerkiksi 6:sta keskustellaanth Normaali muoto. Useimmissa käytännön sovelluksissa normalisointi kuitenkin saavuttaa parhaansa 3:ssard Normaali muoto. Normalisoinnin kehitys SQL-teorioissa on kuvattu alla -

Tietokannan normaalit lomakkeet
Tietokannan normaalit lomakkeet

Tietokannan normalisointi esimerkein

tietokanta Normalisointiesimerkki voidaan helposti ymmärtää tapaustutkimuksen avulla. Oletetaan, että videokirjasto ylläpitää tietokantaa vuokratuista elokuvista. Ilman normalisointia tietokannassa, kaikki tiedot tallennetaan yhteen taulukkoon alla olevan kuvan mukaisesti. Ymmärretään normalisointitietokanta normalisointiesimerkillä ratkaisulla:

Tietokannan normalisointi esimerkillä

Tässä näet Vuokratut elokuvat -sarakkeessa on useita arvoja. Siirrytään nyt ensimmäisiin normaalimuotoihin:

Ensimmäinen normaali lomake (1NF)

  • Jokaisen taulukon solun tulee sisältää yksi arvo.
  • Jokaisen tietueen on oltava ainutlaatuinen.

Yllä oleva taulukko 1NF-

1NF Esimerkki

1NF säännöt

Esimerkki 1NF:stä DBMS:ssä

Ennen kuin jatkamme, ymmärrämme muutamia asioita -

Mikä on AVAIN SQL:ssä

A KEY SQL:ssä on arvo, jota käytetään taulukon tietueiden yksilöimiseen. SQL-AVAIN on yksi sarake tai useiden sarakkeiden yhdistelmä, jota käytetään yksilöimään rivit tai monikot taulukossa. SQL-avainta käytetään päällekkäisten tietojen tunnistamiseen, ja se auttaa myös luomaan yhteyden useiden tietokannan taulukoiden välille.

Huomautus: Taulukon sarakkeita, joita EI käytetä tietueen yksilöimiseen, kutsutaan ei-avainsarakkeiksi.

Mikä on ensisijainen avain?

Pääavain

Ensisijainen avain DBMS:ssä

Ensisijainen on yhden sarakkeen arvo, jota käytetään tietokantatietueen yksilöimiseen.

Sillä on seuraavat ominaisuudet

  • A ensisijainen avain ei voi olla NULL
  • Ensisijaisen avaimen arvon on oltava yksilöllinen
  • Ensisijaisen avaimen arvoja tulisi harvoin muuttaa
  • Ensisijaiselle avaimelle on annettava arvo, kun uusi tietue lisätään.

Mikä on yhdistelmäavain?

Yhdistelmäavain on useista sarakkeista koostuva ensisijainen avain, jota käytetään tietueen yksilöimiseen

Tietokannassamme on kaksi henkilöä, joilla on sama nimi Robert Phil, mutta he asuvat eri paikoissa.

Yhdistelmäavain tietokannassa

Yhdistelmäavain tietokannassa

Siksi vaadimme sekä koko nimen että osoitteen tietueen yksilöimiseksi. Se on yhdistelmäavain.

Siirrytään toiseen normaalimuotoon 2NF

Toinen normaali muoto (2NF)

  • Sääntö 1 - Ole 1NF:ssä
  • Sääntö 2 – Yhden sarakkeen ensisijainen avain, joka ei ole toiminnallisesti riippuvainen mistään ehdokasavainsuhteen osajoukosta

On selvää, että emme voi edetä yksinkertaisen tietokannan tekemisessä 2:ssand Normalisointimuoto, ellemme osioi yllä olevaa taulukkoa.

2NF säännöt

2NF säännöt

Olemme jakaneet 1NF-pöytämme kahteen pöytään eli. Taulukko 1 ja Taulukko 2. Taulukko 1 sisältää jäsentiedot. Taulukko 2 sisältää tietoja vuokratuista elokuvista.

Olemme ottaneet käyttöön uuden sarakkeen nimeltä Membership_id, joka on taulukon 1 ensisijainen avain. Tietueet voidaan yksilöidä taulukossa 1 käyttämällä jäsentunnusta

Tietokanta – vieras avain

Taulukossa 2 Membership_ID on vieras avain

Tietokanta – vieras avain

Tietokanta – vieras avain

Vieras avain DBMS:ssä

Vieras avain viittaa toisen taulukon ensisijaiseen avaimeen! Se auttaa yhdistämään taulukoita

  • Vierasavaimella voi olla eri nimi kuin sen ensisijaisella avaimella
  • Se varmistaa, että yhden taulukon riveillä on vastaavat rivit toisessa
  • Toisin kuin ensisijaisen avaimen, niiden ei tarvitse olla yksilöllisiä. Useimmiten ne eivät ole
  • Vieraat avaimet voivat olla tyhjiä, vaikka ensisijaiset avaimet eivät voi olla

Tietokanta – vieras avain

Miksi tarvitset vierasavaimen?

Oletetaan, että noviisi lisää taulukkoon B tietueen, kuten

Miksi tarvitset vierasavaimen

Voit lisätä vieraaseen avaimeesi vain sellaisia ​​arvoja, jotka ovat olemassa päätaulukon ainutlaatuisessa avaimessa. Tämä auttaa parantamaan viittauksen eheyttä.

Yllä oleva ongelma voidaan ratkaista ilmoittamalla taulukon 2 jäsenyystunnus taulukon 1 jäsenyystunnuksen vieraana avaimena

Jos joku yrittää nyt lisätä jäsentunnuskenttään arvon, jota ei ole ylätason taulukossa, näytetään virhe!

Mitä ovat transitiiviset toiminnalliset riippuvuudet?

Transitiivinen toiminnallinen riippuvuus on, kun muutat ei-avainsaraketta, voi aiheuttaa minkä tahansa muun ei-avainsanan muuttumisen

Harkitse taulukkoa 1. Muuta kuin avainsaraketta Koko nimi voi muuttaa tervehdyksen.

Transitiiviset toiminnalliset riippuvuudet

Siirrytään 3NF:ään

Kolmas normaali muoto (3NF)

  • Sääntö 1 - Ole 2NF:ssä
  • Sääntö 2 – Ei transitiivisia toiminnallisia riippuvuuksia

Siirtääksemme 2NF-pöytämme 3NF:ksi, meidän on jälleen jaettava pöytämme.

3NF Esimerkki

Alla on esimerkki 3NF:stä SQL-tietokannassa:

3NF Esimerkki

3NF Esimerkki

3NF Esimerkki

Olemme jälleen jakaneet pöytämme ja luoneet uuden taulukon, joka tallentaa Tervehdykset.

Transitiivisia toiminnallisia riippuvuuksia ei ole, joten taulukkomme on 3NF:ssä

Taulukossa 3 tervehdystunnus on ensisijainen avain ja taulukossa 1 tervehdystunnus on vieras taulukon 3 ensisijaiselle avaimelle

Pieni esimerkkimme on nyt tasolla, jota ei voida edelleen hajottaa korkeamman normaalimuodon normalisoinnin saavuttamiseksi DBMS:ssä. Itse asiassa se on jo korkeammissa normalisointimuodoissa. Monimutkaisissa tietokannoissa tarvitaan yleensä erillisiä ponnisteluja siirtyäkseen tietojen normalisoinnin seuraaville tasoille. Keskustelemme kuitenkin DBMS:n normalisoinnin seuraavista tasoista lyhyesti seuraavassa.

Boyce-Coddin normaalimuoto (BCNF)

Vaikka tietokanta on 3:ssard Normaali muoto, silti poikkeavuuksia syntyy, jos siinä on enemmän kuin yksi Ehdokas Näppäintä.

Joskus BCNF:ää kutsutaan myös nimellä 3.5 Normaali muoto.

Neljäs normaali muoto (4NF)

Jos mikään tietokantataulukko-ilmentymä ei sisällä kahta tai useampaa riippumatonta ja moniarvoista dataa, jotka kuvaavat relevanttia kokonaisuutta, se on 4.th Normaali muoto.

Viides normaali muoto (5NF)

Pöytä on 5:ssäth Normaali muoto vain, jos se on 4NF-muodossa ja sitä ei voida hajottaa useiksi pienemmiksi taulukoiksi ilman tietojen menetystä.

Ehdotettu kuudes normaalimuoto (6NF).

6th Normaalimuotoa ei ole standardoitu, mutta tietokantaasiantuntijat keskustelevat siitä kuitenkin jonkin aikaa. Toivottavasti meillä olisi selkeä ja standardoitu määritelmä 6:lleth Normaali muoto lähitulevaisuudessa…

Normaalin muodon edut

  • Paranna tietojen johdonmukaisuutta: Normalisointi varmistaa, että jokainen tieto tallennetaan vain yhteen paikkaan, mikä vähentää epäjohdonmukaisten tietojen mahdollisuuksia. Kun tiedot päivitetään, ne tarvitsee päivittää vain yhteen paikkaan, mikä varmistaa johdonmukaisuuden.
  • Vähennä tietojen redundanssia: Normalisointi auttaa poistamaan päällekkäiset tiedot jakamalla ne useisiin toisiinsa liittyviin taulukoihin. Tämä voi säästää tallennustilaa ja myös tehostaa tietokantaa.
  • Paranna kyselyn tehokkuutta: Normalisoiduista tietokannoista on usein helpompi tehdä kyselyitä. Koska tiedot on järjestetty loogisesti, kyselyt voidaan optimoida toimimaan nopeammin.
  • Tee tiedoista mielekkäämpiä: Normalisointiin kuuluu tietojen ryhmittely järkevällä ja intuitiivisella tavalla. Tämä voi helpottaa tietokannan ymmärtämistä ja käyttöä, erityisesti niille, jotka eivät ole suunnitelleet tietokantaa.
  • Vähennä poikkeamien mahdollisuuksia: Poikkeamat ovat ongelmia, joita voi ilmetä tietoja lisättäessä, päivitettäessä tai poistettaessa. Normalisointi voi vähentää näiden poikkeamien mahdollisuuksia varmistamalla, että tiedot järjestetään loogisesti.

Normalisoinnin haitat

  • Lisääntynyt monimutkaisuus: Normalisointi voi johtaa monimutkaisiin suhteisiin. Suuri määrä vierasavaimia sisältäviä taulukoita voi olla vaikea hallita, mikä johtaa sekaannukseen.
  • Vähentynyt joustavuus: Tiukkojen normalisointisääntöjen vuoksi tietojen, jotka eivät noudata näitä sääntöjä, tallentamisessa saattaa olla vähemmän joustavuutta.
  • Lisääntyneet tallennusvaatimukset: Vaikka normalisointi vähentää redundanssia, saattaa olla tarpeen varata enemmän tallennustilaa lisätaulukoille ja indekseille.
  • Suorituskyvyn yleiskustannukset: Useiden pöytien yhdistäminen voi olla kallista suorituskyvyn kannalta. Mitä normalisoituneempi data, sitä enemmän liitoksia tarvitaan, mikä voi hidastaa tiedon hakuaikoja.
  • Tietokontekstin katoaminen: Normalisointi hajottaa tiedot erillisiin taulukoihin, mikä voi johtaa liiketoimintakontekstin menettämiseen. Asiaan liittyvien taulukoiden tutkiminen on välttämätöntä datan kontekstin ymmärtämiseksi.
  • Asiantuntijatiedon tarve: Normalisoidun tietokannan toteuttaminen edellyttää tietojen syvällistä ymmärtämistä, tietojen välisiä suhteita ja normalisointisääntöjä. Tämä vaatii asiantuntemusta ja voi viedä aikaa.

Siinä kaikki SQL:n normalisointiin!!!

Yhteenveto

  • Tietokannan suunnittelu on kriittinen tietokannan hallintajärjestelmän onnistuneelle toteuttamiselle, joka täyttää yritysjärjestelmän tietovaatimukset.
  • DBMS:n normalisointi on prosessi, joka auttaa tuottamaan tietokantajärjestelmiä, jotka ovat kustannustehokkaita ja joissa on parempia suojausmalleja.
  • Toiminnalliset riippuvuudet ovat erittäin tärkeä osa normalisointiprosessia
  • Useimmat tietokantajärjestelmät ovat normalisoituja tietokantoja DBMS:n kolmanteen normaalimuotoon asti.
  • Ensisijainen avain yksilöi ne taulukon tietueet, eikä se voi olla nolla
  • Vierasavain auttaa yhdistämään taulukon ja viittaa ensisijaiseen avaimeen

Lue lisää Readmore