Paghuhukay ng Mas malalim Sa Mga Konsepto sa NoSQL

May -Akda: Judy Howell
Petsa Ng Paglikha: 1 Hulyo 2021
I -Update Ang Petsa: 12 Mayo 2024
Anonim
Paghuhukay ng Mas malalim Sa Mga Konsepto sa NoSQL - Teknolohiya
Paghuhukay ng Mas malalim Sa Mga Konsepto sa NoSQL - Teknolohiya

Nilalaman


Takeaway:

Para sa paghahatid ng malaking halaga ng data sa isang instant, ang iba't ibang mga database ng NoSQL ay nagbibigay ng isang seryosong hamon sa nangingibabaw na mga database ng relational.

Bagaman walang isang solong database ng standard na NoSQL, ang mabilis na pagtaas nito bilang isang mabuting alternatibo sa modelong pamanggit ng database na namamayani sa industriya. Ang mga konsepto ng NoSQL ay kumakatawan sa ilan sa mga pinaka-pangunahing pag-isipang muli ng mga konsepto ng database mula pa noong E.F. Codd's paper sa mga relational database na sumabog sa pinangyarihan noong 1970.

Ang artikulong ito ay naghuhukay ng isang maliit na mas malalim sa mas advanced na mga konsepto ng NoSQL. Ang mga database na ito, kabilang ang CouchDB, MongoDB at SimpleDB, ay nagiging mga sistema ng pamamahala ng database na pinili para sa mga website na kailangang mabilis na magsilbi nang maraming data. (Kumuha ng isang intro sa NoSQL sa NoSQL 101.)


Nasa Pass ba ng NoSQL ang ACID Test?

Ngayon na ang mga database ay nagbibigay lakas sa mga malalaking website na ginagamit ng mga tao araw-araw, tulad ng, YouTube at kahit Techopedia, mahalaga na mabilis silang makapaglingkod ng kanilang data.

Ayon sa kaugalian, ang mga database ay na-engineered upang unahin ang pagiging maaasahan at pagkakapare-pareho sa bilis. Ito ay nagmula sa kanilang tradisyunal na pamana ng mainframe, nang una silang nagtatrabaho upang hawakan ang mga mahahalagang trabaho tulad ng mga payroll. Kung naghahawak ka ng pera, nais mong tiyakin na ang bawat transaksyon na iyong pinoproseso ay ganap na tama. Bukod sa, maaari kang magpatakbo ng mga trabaho na tumatagal ng mahabang oras sa magdamag sa isang mainframe. Sino ang nagmamalasakit kung gaano katagal aabutin hangga't nakuha ng lahat ang kanilang mga suweldo? (Matuto nang higit pa tungkol sa mga database at iba't ibang uri ng mga database sa Panimula sa Mga Databases.)


Ang industriya ng database ay tinukoy ng apat na pangunahing sukatan na bumubuo ng isang maaasahang database (na kilala nang kolektibo ng acronym ACID):

  • Atomicity
  • Hindi pagbabago
  • Paghihiwalay
  • Katatagan

Nangyayari ang pagiging atomo na ang isang transaksyon ay nangyayari nang ganap, o hindi man. Halimbawa, isipin ang isang database na nagsisilbing isang sistema ng reserbasyon ng isang eroplano. Ang isang customer ay naglalagay ng flight at pumapasok sa mga detalye ng credit card, ngunit may mali. Marahil ang server sa paghawak ng website ay nag-crash bago ang database server ay maaaring mag-ulat ng kumpirmasyon sa likod. Ayon sa atomicity, ang transaksyon ay tatanggihan at ang kard ng kostumer ay hindi sisingilin. Nangyayari ito o hindi mangyayari - wala sa pagitan.

Ang kahusayan ay nangangahulugan na ang lahat ng data ay maaasahan at may bisa mula sa isang transaksyon hanggang sa susunod. Ang isang transaksyon na maaaring mag-iwan ng database sa isang hindi wastong estado ay tatanggihan.

Ang paghihiwalay ay nangangahulugan na ang lahat ng nangyayari sa isang database, kahit na ang sistema ay nagpapatakbo ng magkatulad na mga operasyon, ay eksaktong kapareho ng kung ang mga transaksyon ay isinagawa nang seryal.

Walang Mga bug, Walang Stress - Ang Iyong Hakbang sa Hakbang Patnubay sa Paglikha ng Software na Pagbabago ng Buhay nang Walang Pagsira sa Iyong Buhay

Hindi mo maaaring mapabuti ang iyong mga kasanayan sa pag-programming kapag walang nagmamalasakit sa kalidad ng software.

Ang tibay ay nangangahulugang ang data ay magiging buo kahit na sa harap ng mga problema tulad ng mga pagkabigo sa kuryente at iba pang kalamidad.

Ang mga database ay may kaugaliang unahin ang bilis sa integridad. Isinasaalang-alang na dinisenyo nila para sa paghahatid ng mga data tulad ng mga video clip at website, itinuturing ng mga developer at tagapangasiwa ito na isang mahusay na pangangalakal.

Ang mga database ng NoSQL ay naiiba sa na sa halip na ganap na pagkakapare-pareho, naglalayon sila para sa pagkakapare-pareho ng panghuli. Kahit na ang mga transaksyon ay nag-iiwan ng mga bahagi ng database sa isang estado na hindi umaayon sa natitirang database, ang mga pagbabago ay kalaunan ay muling ibabalik sa natitirang database kapag hindi ito aktibo. Ang mga website ay hindi ganap na napuno sa lahat ng oras, at maaaring patawarin ng mga gumagamit ang paminsan-minsang error. Pagkatapos ng lahat, maraming mga gumagamit ang nagbigay-buhay sa mga hiccups sa site na regular - at patuloy pa ring babalik para sa higit pa.

Mga Modelong Data

Kung si Henry Ford ay pumasok sa negosyo ng database sa halip na mga kotse, maaaring sinabi niya na "Maaari kang magkaroon ng anumang modelo ng database na gusto mo, hangga't ang pag-iisa nito."

Sa loob ng maraming taon, iyon ang kagaya ng industriya. Kahit na nagpunta ka sa isang bukas na sistema ng pamamahala ng database ng mapagkukunan tulad ng MySQL o PostgreSQL, natapos ka pa rin ng isang pamalitang modelo.

Ang maluwag na kaugnayan ng mga database na nakabase sa NoSQL na bumulol mula noong huling bahagi ng 90s ay mayroon lamang isang bagay sa karaniwan: hindi sila gumagamit ng mga tradisyunal na modelo ng relational.

Mayroong maraming iba't ibang mga uri ng mga pangunahing modelo na pinaplano ng mga administrador ang isang database ng NoSQL:

  • Tindahan ng Dokumento: Sa halip na mga talahanayan ng mga nakapirming hilera, ang mga database ay gumagamit ng mga istraktura batay sa mga pamantayan ng dokumento tulad ng XML o JSON.
  • Graph: Ang modelong database na ito ay kumukuha sa isang lugar ng matematika na kilala bilang teorya ng grapiko. Ang mga puntos ng data ay kilala bilang mga vertice at ang mga koneksyon sa pagitan ng mga ito ay kilala bilang mga gilid. Lalo na kapaki-pakinabang ang modelong ito para sa pagpapakita ng mga ugnayan sa pagitan ng mga node. Ang isang mabuting halimbawa ay isang social network na nagpapakita ng mga kaibigan ng isang tao. Ang mga edge ay maaaring "ituro" o "hindi nairereport." Ang isang direktang gilid ay napupunta lamang sa isang paraan, ngunit ang isang di-natukoy na gilid ay napupunta sa parehong paraan. Ang pagsunod sa isang tao ay isang halimbawa ng isang direktang gilid kung ang isang tao ay hindi sumunod. ang pagkakaibigan, sa kabilang banda, ay hindi napapansin, dahil ang pagkakaibigan ay magkasama.
  • Key-Halaga ng Tindahan: Ito ay katulad sa isang istraktura ng data sa ilang mga wika ng programming na kilala bilang isang kaakibat na hanay, isang hash o isang diksyunaryo. Ang isang tindahan ng key-halaga ay tumutugma, tulad ng sinasabi ng pangalan, mga susi sa mga halaga. Ang isang mabuting halimbawa ay magiging isang direktoryo ng telepono. Ang pangalan ng isang tao ang susi, at ang numero ng telepono ay ang halaga.

Sa lahat ng mga pagpipilian na ito, ano ang dapat gawin ng isang administrator? Pinakamabuting tingnan ang uri ng data na maiimbak ng database at piliin ang modelo na pinaka-kahulugan.

Pagbabahagi kumpara sa pagtitiklop

Ngayon na napili mo ang iyong modelo ng database, ang susunod na hakbang ay upang malaman kung paano pisikal na mag-imbak ng data. Ang isang solusyon ay ang pag-sharding. Tinatrato ni Sharding ang iba't ibang mga node sa isang database system bilang mga partisyon sa isang higanteng hard drive. Ang mga partisyon sa isang lokal na disk ay magkakaroon ng kanilang sariling data. Sa sharding, ang mga piraso ay naka-imbak nang hiwalay sa bawat node. Pinapayagan nito para sa mga pangkalahatang ipinamamahagi na mga system, na maaaring mapabilis ang pagganap ng database.

Ang pagtitiklop, sa kabilang banda, ay katulad ng pagkakaroon ng isang RAID scheme. Ang iba't ibang mga piraso ng database ay naka-imbak sa buong node, na nagbibigay ng ilang antas ng kalabisan.

Pagpapabagal

Ang isang paraan ng database ng NoSQL ay nakakakuha ng isang bilis ng pagpapalakas ay sa pamamagitan ng denormalization. Nangangahulugan ito na ang mga kaugnay na operasyon ay pinagsama-sama at isinasagawa nang sabay. Ito ay muling dumating sa gastos ng pagkakapare-pareho. Ang tagapangasiwa ng database ay dapat mag-ingat upang matiyak na ang database ay hindi labis na hindi pantay-pantay. (Nais bang maging isang tagapangasiwa ng database? Basahin ang Mga Karera sa Pamamahala ng Database 101.)

Mga Pag-andar ng Aggregate

Kaugnay sa denormalization, pinagsama ang mga grupo ng mga function ng mga resulta ng isang operasyon ng ilang mga piraso ng data sa isang solong operasyon. Ang mga operasyon na ito ay maaaring magsama ng mga function sa average na mga numero o upang makalkula ang kabuuan ng maraming mga puntos ng data.

MapReduce

Ang isa sa mga pagtukoy ng mga katangian ng mga database ng NoSQL ay kung gaano kadali ang kanilang ipatupad bilang mga ipinamamahaging sistema. Ang isa sa mga pinakatanyag na pamamaraan, na binuo ng Google, ay ang MapReduce. Ang elemento ng pagma-map ay nagbabasa ng data ng pinagsama-samang at binabawasan ito sa mga pares ng susi, na maaaring maipadala sa iba't ibang mga node sa database system.

Para sa paghahatid ng malaking halaga ng data sa isang instant, ang iba't ibang mga database ng NoSQL ay nagbibigay ng isang seryosong hamon sa nangingibabaw na mga database ng relational. Ang artikulong ito ay dapat tulungan kang magpasya kung ang isang database ng NoSQL ay tama para sa iyo.