Ensimmäinen normaalimuoto

Ensimmäinen normaalimuoto on normaali muoto käytetään tietokannan normalisointi. Taulukko relaatiotietokantojen joka tarttuu 1NF on täyttävää vähintään kriteerit. Nämä perusteet liittyvät lähinnä varmistaa, että pöytä on uskollinen edustus suhde ja se "toistaa ryhmät".

Kuitenkin käsite "toistuva ryhmä" ymmärretään eri tavoin eri teoreetikot. Tämän seurauksena ei ole yleistä sopimusta siitä, mitä ominaisuuksia olisi diskata taulukko olla 1NF. Selkeimmin 1NF määritelty jotkut kirjoittajat sulkee pois "ominaisuus-arvo suhde" seuraava ennakkoratkaisussa. Toisaalta, jotka on määritelty muiden kirjailijoiden, 1FN itse sallii.

1FN taulukot representaatioina suhteita

Päivämäärä määriteltyjä 1NF, pöytä on 1NF jos ja vain jos "isomorfinen jossain suhteessa", mikä tarkoittaa, erityisesti, joka täyttää seuraavat viisi edellytystä:

Rikkoo näitä ehtoja tarkoita, että taulukko ei ole tiukasti ihmissuhteisiin, ja siksi ei ole 1NF. Esimerkkejä taulukoita, jotka eivät täytä tätä määritelmää 1NF ovat:

  • Taulukko, jossa ei ole perusavain. Tämä taulukko mahtui päällekkäisiä rivit, vastaisesti kunto 3.
  • Näkymä jonka määritelmä edellyttää, että tulokset palautetaan tietyssä järjestyksessä niin, että järjestys rivin on luontainen ja merkittävä näkökohta mieltä. Tämä rikkoo vaatimus 1. tuplat totta suhteissa ei ole tilattu suhteessa toisiinsa.
  • Pöytä, jossa on vähintään yksi ominaisuus, joka voi olla nolla. Ominaisuus, joka voi olla nolla olisi vastoin kunnossa 4, mikä kunkin maan on oltava täsmälleen yksi arvo verkkotunnuksen sarakkeeseen. Se toteaa kuitenkin, että tämä näkökohta ehto 4 on kiistanalainen. Monet kirjoittajat uskovat, että taulukko on 1NF jos yksikään ehdokas avain voi sisältää null-arvoja, mutta näitä varten ominaisuudet, jotka eivät ole sävellajissa kuin alkuperäinen malli Codd on relaatiomalliksi, joka nimenomaisesti säätäneet null hyväksytty.

Toistuvat ryhmät

Neljäs edellytys Päivämäärä, ilmentävät "mitä useimmat ihmiset ajattelevat niin määräävä piirre 1NF", koskee toistuvia ryhmiä. Seuraava esimerkki kuvaa, kuinka tietokannan suunnittelu voi sisältää toistuvia ryhmiä, vastaisesti 1NF.

Esimerkki 1: dominioiden ja arvot

Oletetaan noviisi suunnittelija tallentaa nimiä ja puhelinnumeroita asiakkaita. Etenee määritellä asiakkaan taulukko seuraavasti:

Tässä vaiheessa suunnittelija ymmärtää vaatimus tallentaa useita puhelinnumeroita joillekin asiakkaille. Hän perustelee, että yksinkertaisin tapa tehdä tämä on antaa "Phone" kentässä on useampi kuin yksi arvo tiettynä ennätys:

Olettaen kuitenkin, että "Phone" sarake on määritelty joissakin verkkotunnuksen puhelinnumero, edustus edellä ei ole 1NF. 1FN kielletään kenttä sisältää enemmän kuin yksi arvo verkkotunnuksen sarakkeeseen.

Esimerkki 2: Ryhmät toistetaan kautta sarakkeet

Suunnittelija voi välttää tämän rajoituksen määrittämällä useita sarakkeita puhelinnumero:

Kuitenkin tämä edustus käyttää sarakkeita, joiden avulla tyhjäarvoja, ja siksi eivät vastaa määritelmää 1NF Päivämäärä. Vaikka mahdollisuus palstoja tyhjäarvoja, suunnittelu ei ole sopusoinnussa hengessä 1NF harkitaan. Puhelin 1, Puhelin 2, ja Puhelin 3, jakavat täsmälleen sama verkkotunnus ja täsmälleen sama merkitys; puhelinnumeroita jakaa kolmeen osan on keinotekoinen ja aiheuttaa loogisia ongelmia. Näitä ongelmia ovat:

  • Vaikeus pohti taulukossa. On vaikea vastata kysymyksiin kuten "mitä asiakkaat on puhelin X?" ja "Mitkä paria asiakkaat jakavat puhelinnumero?".
  • Kyvyttömyys valvoa ainutlaatuisuus linkkejä Asiakas-to-puhelinta RDBMS. 789 asiakas voi erehdyksessä antaa arvo Puhelin 2 joka on täsmälleen arvoa puhelimen 1.
  • Rajoittaminen puhelinnumeroita asiakasta kohden kolmeen. Jos asiakas tulee neljä puhelinnumeroa, meitä vaaditaan tallentaa vain kolme ja poistua huoneesta tallentamatta. Tämä tarkoittaa, että suunnittelu tietokannan rajoittamasta liiketoimintaprosessien, eikä päinvastoin.

Esimerkki 3: toistaminen ryhmien sarakkeet

Suunnittelija voi vaihtoehtoisesti säilyttää yksittäisen sarakkeen numero, mutta muuttamalla niiden verkkotunnuksen, jolloin ketjun pituus riittää mahtuu useita puhelinnumeroita:

Tämä on pahin suunnittelu defendiblemente kaikki, ja taas ei ylläpidä henkeä 1NF. Otsikko "Puhelin" tulee semanttisesti hajanainen, koska se voi nyt edustaa, tai puhelinnumeron, tai luettelon puhelinnumeroista, tai jopa mitään. Kysely kuten "Mitkä paria asiakkaat jakavat puhelinnumero?" On käytännössä mahdotonta muotoilla, kun otetaan huomioon tarve tarjota luettelot puhelinnumeroita sekä yksittäisiä puhelinnumeroita. Tämän muotoilun RDBMS, ne ovat myös mahdotonta määritellä huomattavia rajoituksia puhelinnumeroita.

Muotoilu noudattaa 1NF

Muotoilu on yksiselitteisesti 1NF käyttää kaksi taulukkoa: taulukko asiakas ja asiakkaan puhelin pöytä.

Tämä muotoilu ei toistu ryhmiä puhelinnumeroista esiintyä. Sen sijaan, jokainen linkki Asiakas-to-puhelin näkyy omassa rekisterissä. On syytä huomata, että tämä malli täyttää lisävaatimuksia toisessa ja kolmannessa normaalimuodossa.

Atomisuuden

Jotkut määritelmät 1NF, etenkin EF Coddin, katso käsitteeseen atomisuuden. Coddin todetaan, että "edellyttää, että arvot ovat atomin suhteen DBMS aloilla, jossa jokainen suhde on määritelty". Codd määrittelee atomi arvo yhtenä että "ei voi olla rikki pienemmiksi paloiksi DBMS."

 ja he ovat ehdottaneet, että käsite Coddin "atomi arvo" on epäselvä ja että tämä epäselvyys on johtanut laajaa hämmennystä siitä, miten se olisi ymmärrettävä 1NF. Erityisesti käsite "arvo, jota ei voi hajottaa" on ongelmallinen, koska näyttäisi viittaavan siihen, että vähän, jos lainkaan, tietotyypit ovat Atomic:

  • Merkkijono eivät näytä olevan atomi, kuten RDBMS tyypillisesti tarjoaa operaattoreille hajoavat sen merkkijonoa.
  • Päivämäärä ehkä näy atomi, koska RDBMS tyypillisesti tarjoaa operaattoreille hajota komponenttien päivä, kuukausi ja vuosi.
  • Kiinteän pisteen numero eivät näytä olevan atomi, kuten RDBMS tyypillisesti tarjoaa operaattoreille rikkoa se alas komponenttien kokonaislukuja ja jakeet.

Päivämäärä viittaa siihen, että "käsite atomisuuden ei ole ehdotonta merkitystä": arvo voidaan pitää atomi joihinkin tarkoituksiin, mutta niitä voidaan pitää yhdistämisestä enemmän peruselementit muihin tarkoituksiin. Jos tämä asento on hyväksytty, 1NF ei voida määritellä viittaamalla atomisuuden. Sarakkeet kaikkia mahdollisia tietoja on hyväksyttävää silloin pöytä 1NF - vaikkakaan ei ehkä aina toivottavaa. Päivämäärä käsittelee suhteellinen-arvo attribuutteja, jonka kautta kentän sisällä taulukko voi sisältää pöytä ovat hyödyllisiä harvoin.

Normalisointi yli 1NF

Tahansa taulukon, joka on toisessa normaalimuodossa tai uudempi, on myös määritelmän mukaan 1NF. Toisaalta, taulukko, joka on 1NF voidaan tai ei olla 2NF; jos se on 2NF, voi tai ei olla 3NF, ja niin edelleen.

Normaali muotoja korkeampi kuin 1NF tarkoituksena on puuttua tilanteisiin, joissa taulukon kärsii suunnittelun ongelmia, jotka voivat vaarantaa eheyden sisällä. Esimerkiksi, seuraavassa taulukossa on 1NF, mutta ei 2NF ja siten on altis looginen epäjohdonmukaisuuksia:

Tärkeintä taulukko on {ID tilaaja, E-mail}.

Jos Carol Robertson muutti sukunimensä avioliittoa, muutos on sovellettava kahteen riviin. Jos muutos on vain sovellettu peräkkäin, jolloin ristiriita: kysymys "Mikä on asiakkaan nimi 252?" Se on kaksi ristiriitaisia ​​vastauksia. 2NF käsitellään tätä ongelmaa.

  0   0
Edellinen artikkeli Yksinkertainen mikroskooppi
Seuraava artikkeli Jorge Grau

Kommentit - 0

Ei kommentteja

Lisääkommentti

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Merkkiä jäljellä: 3000
captcha