Skip to main content

Pirmosios įprastos formos duomenų bazės įvedimas

Anonim

Pirmoji normalioji forma (1NF) nustato pagrindines organizuotos duomenų bazės taisykles:

  • Pašalinkite pasikartojančius stulpelius iš tos pačios lentelės.
  • Sukurkite atskiras lenteles kiekvienai susijusių duomenų grupei ir kiekvieną eilutę su unikaliu stulpeliu (pirminiu raktu).

Ką reiškia šios taisyklės, kai svarstomas praktinis duomenų bazės dizainas? Tai iš tikrųjų yra gana paprasta.

Pašalinti dubliavimą

Pirmoji taisyklė nurodo, kad neturime dubliuoti duomenų toje pačioje lentelės eilutėje. Bendruomenės duomenų bazėje ši sąvoka vadinama lentelės atomizmu. Lentelės, kurios atitinka šią taisyklę, laikomos atominėmis. Išnagrinėsime šį principą klasikiniu pavyzdžiu: lentelėje esančioje žmogiškųjų išteklių duomenų bazėje, kurioje saugomi vadovo ir pavaldžių santykių ryšiai. Pavyzdžiui, mes nustatysime verslo taisyklę, pagal kurią kiekvienas valdytojas gali turėti vieną ar kelis pavaldinius, o kiekvienam pavaldėjui gali būti tik vienas valdytojas.

Intuityviai, kurdami sąrašą ar skaičiuoklę, kad stebėtumėte šią informaciją, galėtume sukurti lentelę su šiais laukais:

  • Vadybininkas
  • Pavaldumas1
  • Pavaldumas2
  • Pavaldumas3
  • Pavaldumas4

Tačiau prisiminkite pirmąją taisyklę, kurią taiko 1NF: pašalinkite pasikartojančius stulpelius iš tos pačios lentelės. Aišku, stulpeliai Subordinate1-Subordinate4 dubliuojami. Paimkite akimirką ir apsvarstykite problemas, iškilusias pagal šį scenarijų. Jei valdytojas turi tik vieną pavaldžią, Subordinato2-Subordinate4 stulpeliai yra tiesiog švaistomi saugojimo vieta (vertinga duomenų bazės prekė). Be to, įsivaizduokite atvejį, kai valdytojui jau yra keturi pavaldiniai - kas atsitiks, jei ji priims kitą darbuotoją? Visa lentelės struktūra turėtų būti pakeista.

Šiuo metu antroji šviesi idėja paprastai atsiranda duomenų bazių naujokams: nenorime turėti daugiau nei vieno stulpelio, o mes norime leisti lankstų duomenų saugyklų kiekį. Pabandykite kažką panašaus:

  • Vadybininkas
  • Pavaldiniai

Tada pavaldžių lauke būtų keli įrašai formos "Mary, Bill, Joe".

Šis sprendimas yra arčiau, bet taip pat trūksta ženklo. Pavaldžiųjų stulpelis vis dar yra dubliuojamas ir neatominis. Kas atsitinka, kai mes turime pridėti ar pašalinti pavaldžią? Mums reikia skaityti ir parašyti visą lentelės turinį. Tai nėra didelė situacija šioje situacijoje, bet kas, jei vienam valdytojui būtų šimtas darbuotojų? Be to, tai apsunkina duomenų rinkimo iš duomenų bazės ateityje užklausų procesą.

Štai lentelė, atitinkanti pirmąją 1NF taisyklę:

  • Vadybininkas
  • Subordinuotas

Šiuo atveju kiekvienas pavaldinis turi vieną įrašą, tačiau vadovai gali turėti kelis įrašus.

Nustatykite pagrindinį raktą

Dabar, kaip antroji taisyklė: nurodykite kiekvieną eilutę su unikaliu stulpeliu ar stulpelių rinkiniu (pagrindiniu raktu). Galite pažvelgti į aukščiau pateiktą lentelę ir pasiūlyti naudoti pavaldinį stulpelį kaip pirminį raktą. Iš tikrųjų, pavaldumo stulpelis yra geras kandidatas į pirminį raktą dėl to, kad mūsų verslo taisyklėse nurodyta, kad kiekvienas pavaldinis gali turėti tik vieną valdytoją. Tačiau duomenys, kuriuos pasirinkome laikyti mūsų lentelėje, yra mažiau nei idealus sprendimas. Kas nutiks, jei samdysime kitą darbuotoją, vardu Jim? Kaip mes saugome savo vadybininko pavaldinius santykius duomenų bazėje?

Geriausia naudoti originalų identifikatorių (pvz., Darbuotojo ID) kaip pirminį raktą. Mūsų finalinis stalas atrodys taip:

  • Vadybininko ID
  • Pavaldinis ID

Dabar mūsų stalas yra pirmoje įprastoje formoje! Be to, yra galimybės įdiegti savo duomenų bazę antroje įprastoje formoje, taip pat trečioje įprastoje formoje, jei esate susijaudinęs apie dar daugiau organizacijų.