Mikä on normalisointi? Esimerkki 1NF, 2NF, 3NF, BCNF-tietokannasta

Sisällysluettelo:

Anonim

Mikä on normalisointi?

Normalisointi on tietokannan suunnittelutekniikka, joka vähentää datan redundanssia ja eliminoi ei-toivotut ominaisuudet, kuten lisäys-, päivitys- ja poistovirheet. Normalisointisäännöt jakaa suuremmat taulukot pienempiin taulukoihin ja linkittää ne suhteiden avulla. SQL: n normalisoinnin tarkoituksena on poistaa turhat (toistuvat) tiedot ja varmistaa, että tiedot tallennetaan loogisesti.

Suhdemallin keksijä Edgar Codd ehdotti tietojen normalisointiteoriaa käyttöön ottamalla ensimmäisen normaalin muodon, ja hän jatkoi teorian laajentamista toisella ja kolmannella normaalilla muodolla. Myöhemmin hän liittyi Raymond F.Boyceen kehittämään Boyce-Coddin normaalimuodon teoriaa.

Tietokannan normaalit lomakkeet

Tässä on luettelo tavallisista lomakkeista

  • 1NF (ensimmäinen normaali lomake)
  • 2NF (toinen normaali muoto)
  • 3NF (kolmas normaali lomake)
  • BCNF (Boyce-Codd-normaali muoto)
  • 4NF (neljäs normaali muoto)
  • 5NF (viides normaali muoto)
  • 6NF (kuudes normaali muoto)

SQL-palvelimen tietojen normalisointiteoriaa kehitetään edelleen. Esimerkiksi keskusteluja käydään jopa kuudennesta normaalilomakkeesta. Useimmissa käytännön sovelluksissa, normalisointi saavuttaa parhaimmillaan 3 rd normaalimuoto . SQL-normalisointiteorioiden kehitys on kuvattu alla-

Tietokannan normaalit lomakkeet

Tietokannan normalisointi esimerkkien avulla

Esimerkki tietokannan normalisoinnista voidaan ymmärtää helposti tapaustutkimuksen avulla. Oletetaan, että videokirjasto ylläpitää vuokrattujen elokuvien tietokantaa. Ilman mitään tietokannan normalisointia kaikki tiedot tallennetaan yhteen taulukkoon alla olevan kuvan mukaisesti. Ymmärretään tietokannan normalisointi taulukoiden avulla:

Täällä näet Elokuvat vuokrattu -sarakkeella on useita arvoja. Siirrytään nyt ensimmäisiin normaalilomakkeisiin:

1NF (ensimmäinen normaali lomake) -säännöt

  • Jokaisessa taulukon solussa tulisi olla yksi arvo.
  • Jokaisen tietueen on oltava ainutlaatuinen.

Yllä oleva taulukko 1NF-

1NF Esimerkki

Ennen kuin jatkamme, ymmärretään muutama asia -

Mikä on AVAIN?

AVAIN on arvo, jota käytetään tietueen yksilöimiseen taulukossa. AVAIN voi olla yksi sarake tai useiden sarakkeiden yhdistelmä

Huomautus: Taulukon sarakkeita, joita EI käytetä tietueen yksilölliseen tunnistamiseen, kutsutaan avaimettomiksi sarakkeiksi.

Mikä on ensisijainen avain?

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

Sillä on seuraavat määritteet

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

Mikä on komposiittiavain?

Yhdistetty avain on ensisijainen avain, joka koostuu useista sarakkeista, joita käytetään tietueen yksilölliseen tunnistamiseen

Tietokannassamme on kaksi henkilöä samalla nimellä Robert Phil, mutta he asuvat eri paikoissa.

Siksi vaadimme sekä koko nimeä että osoitetta tunnistamaan tietue ainutlaatuisesti. Se on yhdistetty avain.

Siirrytään toiseen normaalimuotoon 2NF

2NF (Second Normal Form) -säännöt

  • Sääntö 1 - Ole 1NF: ssä
  • Sääntö 2 - Yhden sarakkeen ensisijainen avain

On selvää, että emme voi edetä tekemään yksinkertaista tietokantaan 2 toisen normalisointi muoto ellemme osio taulukossa.

Olemme jakaneet 1NF-taulukon kahteen taulukkoon. Taulukot 1 ja 2. Taulukko 1 sisältää jäsenetiedot. Taulukko 2 sisältää tietoja vuokratuista elokuvista.

Olemme ottaneet käyttöön uuden sarakkeen nimeltä Jäsenyys_id, joka on taulukon 1 ensisijainen avain. Tietueet voidaan yksilöidä taulukossa 1 jäsentunnuksella

Tietokanta - ulkomainen avain

Taulukossa 2 Jäsenyyden tunnus on ulkomainen avain

Ulkomainen avain viittaa toisen taulukon ensisijaiseen avaimeen! Se auttaa yhdistämään taulukot

  • Ulkomaisella avaimella voi olla eri nimi kuin ensisijaisella avaimella
  • Se varmistaa, että yhden taulukon riveillä on vastaavat rivit toisessa
  • Toisin kuin Ensisijainen avain, niiden ei tarvitse olla ainutlaatuisia. Useimmiten ne eivät ole
  • Ulkomaiset avaimet voivat olla tyhjiä, vaikka ensisijaiset avaimet eivät

Miksi tarvitset ulkomaista avainta?

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

Pystyt lisäämään vieraaseen avaimeen arvoja, jotka ovat vanhemman taulukon yksilöllisessä avaimessa. Tämä auttaa viitteellisessä eheydessä.

Yllä oleva ongelma voidaan ratkaista julistamalla taulukon 2 jäsenyys-tunnus taulukkoon 1 kuuluvaksi jäsenyyden tunnuksen ulkomaiseksi avaimeksi

Jos joku yrittää nyt lisätä jäsenyyden kenttään arvon, jota ei ole vanhemman taulukossa, näytetään virhe!

Mitä ovat transitiiviset toiminnalliset riippuvuudet?

Transitiivinen funktionaalinen riippuvuus on silloin, kun muutetaan ei-avain-saraketta, se voi aiheuttaa minkä tahansa muun avaimen ulkopuolisen sarakkeen muutoksen

Harkitse taulukkoa 1. Avaimen ulkopuolisen sarakkeen Koko nimi muuttaminen voi muuttaa tervehdystä.

Siirrytään 3NF: ään

3NF (kolmas normaali lomake) -säännöt

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

2NF-taulukon siirtämiseksi 3NF: ksi meidän on jälleen jaettava pöytä.

3NF-esimerkki

Alla on 3NF-esimerkki SQL-tietokannasta:

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

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

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

Nyt pieni esimerkkimme on tasolla, jota ei voida hajottaa edelleen korkeamman normaalin normalisoitumisen saavuttamiseksi. Itse asiassa se on jo korkeammissa normalisointimuodoissa. Tavallisesti monimutkaisissa tietokannoissa tarvitaan erillisiä ponnisteluja siirtymiseksi tietojen normalisoinnin seuraavalle tasolle. Seuraavassa käsitellään kuitenkin lyhyesti seuraavia normalisoinnin tasoja.

BCNF (Boyce-Codd-normaali muoto)

Silloinkin, kun tietokanta on 3 rd normaalimuoto, silti olisi poikkeavuuksia syntyneet, mikäli se on enemmän kuin yksi Ehdokas avain.

Joskus BCNF: ää kutsutaan myös nimellä 3.5 Normal Form.

4NF (Fourth Normal Form) -säännöt

Ellei tietokannan taulun esimerkiksi sisältää kahta tai useampaa, riippumaton ja moniarvoiseksi kuvaavia tietoja asiaankuuluvien tahojen kanssa, niin se on 4 th normaalimuoto.

5NF (viides normaali muoto) -säännöt

Taulukko on viidennessä normaalimuodossa vain, jos se on 4NF: ssä eikä sitä voida hajottaa mihinkään määrään pienempiä taulukoita ilman tietojen menetystä.

Ehdotettu 6NF (kuudes normaali muoto)

6 th normaalimuoto ei ole standardoitu, mutta kuitenkin se on käsiteltävänä tietokanta asiantuntijat jo jonkin aikaa. Toivottavasti meillä olisi selkeä ja standardoitu määritelmä kuudennelle normaalilomakkeelle lähitulevaisuudessa ...

Siinä kaikki SQL-normalisointiin !!!

Yhteenveto

  • Tietokannan suunnittelu on kriittistä tietojärjestelmän tietovaatimusten mukaisen tietokannan hallintajärjestelmän onnistuneelle käyttöönotolle.
  • DBMS: n normalisointiprosessi auttaa tuottamaan tietokantajärjestelmiä, jotka ovat kustannustehokkaita ja joilla on paremmat suojausmallit.
  • Toiminnalliset riippuvuudet ovat erittäin tärkeä osa normalisoitua dataprosessia
  • Useimmat tietokantajärjestelmät ovat normalisoituja tietokantoja kolmanteen normaalilomakkeeseen saakka.
  • Yksilöllisesti tunnistettava ensisijainen avain on tietue taulukossa, eikä se voi olla nolla
  • Vieras avain auttaa yhdistämään taulukon ja viittaa ensisijaiseen avaimeen