Skip to main content

Paglalagay ng Database sa Pangalawang Normal na Form (2NF)

JavaScript for Web Apps, by Tomas Reimers and Mike Rizzo (Mayo 2024)

JavaScript for Web Apps, by Tomas Reimers and Mike Rizzo (Mayo 2024)
Anonim

Nakita namin ang ilang aspeto ng pag-normalize ng database table. Una, tinalakay namin ang mga pangunahing alituntunin ng database ng normalisasyon. Huling oras, sinaliksik namin ang mga pangunahing kinakailangan na inilatag ng unang normal na form (1NF). Ngayon, ipagpatuloy natin ang ating paglalakbay at takpan ang mga prinsipyo ng ikalawang normal na form (2NF).

Ang Mga Pangkalahatang Pangangailangan ng 2NF

  • Tanggalin ang mga subset ng data na nalalapat sa maraming hanay ng isang talahanayan at ilagay ang mga ito sa magkakahiwalay na mga talahanayan.
  • Lumikha ng mga ugnayan sa pagitan ng mga bagong talahanayan at ng kanilang mga predecessors sa pamamagitan ng paggamit ng mga banyagang key.

Ang mga panuntunang ito ay maaaring summarized sa isang simpleng pahayag: 2NF pagtatangka upang bawasan ang halaga ng kalabisan data sa isang talahanayan sa pamamagitan ng extracting ito, paglalagay nito sa bagong table (s) at paglikha ng mga relasyon sa pagitan ng mga talahanayan.

Tingnan natin ang isang halimbawa. Isipin ang isang online na tindahan na nagpapanatili ng impormasyon ng customer sa isang database. Maaaring magkaroon sila ng isang table na tinatawag na Mga Customer na may mga sumusunod na elemento:

  • CustNum
  • Pangalan
  • Huling pangalan
  • Address
  • Lungsod
  • Estado
  • ZIP

Ang isang maikling pagtingin sa mesa na ito ay nagpapakita ng isang maliit na halaga ng kalabisan data. Inimbak namin ang "Sea Cliff, NY 11579" at "Miami, FL 33157" na mga entry dalawang beses bawat isa. Ngayon, maaaring hindi ito tulad ng sobrang naidagdag na imbakan sa aming simpleng halimbawa, ngunit isipin ang nasayang na puwang kung mayroon kaming libu-libong hanay sa aming talahanayan. Bukod pa rito, kung babaguhin ang ZIP code para sa Sea Cliff, kailangan naming gawin ang pagbabagong iyon sa maraming lugar sa buong database.

Sa isang istraktura ng database ng 2NF, ang kalabisan na impormasyon na ito ay nakuha at naka-imbak sa isang hiwalay na talahanayan. Ang aming bagong talahanayan (let's call it ZIPs) ay maaaring magkaroon ng sumusunod na mga patlang:

  • ZIP
  • Lungsod
  • Estado

Kung gusto naming maging sobrang-mahusay, maaari pa rin naming punan ang talahanayang ito nang maaga - ang post office ay nagbibigay ng isang direktoryo ng lahat ng mga wastong ZIP code at ang kanilang mga relasyon sa lungsod / estado. Tiyak, nakatagpo ka ng sitwasyon kung saan ginagamit ang ganitong uri ng database. Ang isang tao na kumuha ng isang order ay maaaring humiling sa iyo para sa iyong ZIP code at pagkatapos ay alam ang lungsod at estado na iyong tinatawagan. Ang ganitong uri ng pag-aayos ay binabawasan ang error ng operator at nagpapataas ng kahusayan.

Ngayon na inalis na namin ang dobleng data mula sa talahanayan ng Mga Customer, nasiyahan na namin ang unang panuntunan ng ikalawang normal na form. Kailangan pa rin nating gamitin ang isang dayuhang susi upang magkasama ang dalawang talahanayan. Gagamitin namin ang ZIP code (ang pangunahing susi mula sa talahanayan ng ZIPs) upang likhain ang ugnayan na iyon. Narito ang aming bagong talahanayan ng Mga Customer:

  • CustNum
  • Pangalan
  • Huling pangalan
  • Address
  • ZIP

Na-minimize na namin ang dami ng mga kalabisan na impormasyong nakaimbak sa database at ang aming istraktura ay nasa ikalawang normal na form.