Isang Pangkalahatang-ideya ng Mga Database ng NoSQL

Ang acronym na NoSQL ay likha noong 1998. Maraming tao ang nag-iisip na ang NoSQL ay isang derogatory term na nilikha upang sundutin sa SQL. Sa katunayan, ang termino ay nangangahulugang Hindi Lamang SQL. Ang ideya ay ang parehong mga teknolohiya ay maaaring magkakasamang mabuhay at ang bawat isa ay may lugar nito. Ang NoSQL movement ay nasa balita sa nakalipas na ilang taon dahil marami sa mga pinuno ng Web 2.0 ang nagpatupad ng isang teknolohiya ng NoSQL. Ang mga kumpanya tulad ng Facebook, Twitter, Digg, Amazon, LinkedIn, at ang lahat ng Google ay gumagamit ng NoSQL sa isang paraan o isa pa.

Ibagsak natin ang NoSQL upang maipaliwanag mo ito sa iyong CIO o kahit na ang iyong mga katrabaho.

NoSQL Lumitaw Mula sa isang Kailangan

Pag-iimbak ng Data: Ang naka-imbak na digital na data ng mundo ay sinusukat sa exabytes. Ang exabyte ay katumbas ng isang bilyong gigabytes (GB) ng data. Ayon sa Internet.com, ang dami ng naka-imbak na data na idinagdag noong 2006 ay 161 exabytes. Lamang 4 na taon mamaya noong 2010, ang dami ng data na nakaimbak ay halos 1,000 ExaBytes na kung saan ay isang pagtaas ng higit sa 500%. Sa madaling salita, maraming data ang iniimbak sa mundo at patuloy na patuloy na lumalaki.

Interconnected Data: Ang data ay patuloy na nagiging mas konektado. Ang paglikha ng web ay nakatuon sa mga hyperlink, ang mga blog ay may mga pingbacks at bawat pangunahing sistema ng panlipunang network ay may mga tag na nagtutugtog ng mga bagay na magkasama. Ang mga pangunahing sistema ay binuo upang magkabit.

Komplikadong Istraktura ng Data: Maaaring mahawakan ng NoSQL ang hierarchical nested na kaayusan ng data. Upang maisagawa ang parehong bagay sa SQL, kakailanganin mo ng maraming mga pamanggit na mga talahanayan sa lahat ng uri ng mga susi.

Bilang karagdagan, mayroong isang relasyon sa pagitan ng pagganap at pagiging kumplikado ng data. Maaaring pababain ang pagganap sa isang tradisyunal na RDBMS habang iniimbak namin ang napakalaking dami ng data na kinakailangan sa mga social networking application at ang semantiko web.

Ano ang NoSQL?

Hulaan ko ang isang paraan upang tukuyin ang NoSQL ay upang isaalang-alang kung ano ito ay hindi.

Hindi SQL at hindi ito pamanggit. Tulad ng ipinahihiwatig ng pangalan, ito ay hindi isang kapalit para sa isang RDBMS ngunit pinupuri ito. Ang NoSQL ay dinisenyo para sa mga ipinamamahagi na mga tindahan ng data para sa napakalaking sukat na pangangailangan ng data. Mag-isip tungkol sa Facebook sa 500,000,000 mga gumagamit nito o Twitter na kumukuha ng Terabits ng data tuwing isang araw.

Sa isang database ng NoSQL, walang nakapirming schema at walang sumali. Ang isang RDBMS ay "sumusukat" sa pamamagitan ng pagkuha ng mas mabilis at mas mabilis na hardware at pagdaragdag ng memorya. Sa kabilang banda, ang NoSQL ay maaaring samantalahin ang "pagsukat". Ang pagsukat ay tumutukoy sa pagkalat ng pagkarga sa maraming mga sistema ng kalakal. Ito ang bahagi ng NoSQL na ginagawang isang murang solusyon para sa mga malalaking dataset.

Mga Kategorya ng NoSQL

Ang kasalukuyang mundo ng NoSQL ay umaangkop sa 4 pangunahing mga kategorya.

  1. Ang pangunahing halaga ng Mga Tindahan ay pangunahin batay sa Dynamo Paper ng Amazon na isinulat noong 2007. Ang pangunahing ideya ay ang pagkakaroon ng isang hash table kung saan mayroong natatanging key at isang pointer sa isang partikular na item ng data. Ang mga mapping na ito ay kadalasang sinasamahan ng mga mekanismo ng cache upang mapakinabangan ang pagganap.
    Ginawa ang Mga Tindahan ng Family Room upang mag-imbak at magproseso ng napakalaking dami ng data na ibinahagi sa maraming machine. May mga susi pa rin ngunit itinuturo nila sa maraming mga haligi. Sa kaso ng BigTable (Pamilya ng Google na Pamilya ng NoSQL na modelo), ang mga hilera ay nakilala sa pamamagitan ng isang hilera na key na may data na pinagsunod-sunod at iniimbak ng key na ito. Ang mga hanay ay nakaayos ayon sa hanay ng pamilya.
  1. Ang mga Dokumento ng Database ay inspirasyon ng Lotus Notes at katulad ng mga tindahan ng key-value. Ang modelo ay karaniwang bersyon ng mga dokumento na mga koleksyon ng iba pang mga key-value na koleksyon. Ang mga semi-structured na dokumento ay naka-imbak sa mga format tulad ng JSON.
  2. Ang Graph Database ay binuo gamit ang mga node, mga relasyon sa pagitan ng mga tala at mga katangian ng mga node. Sa halip na mga talahanayan ng mga hilera at haligi at ang matibay na istraktura ng SQL, ang isang nababaluktot na modelo ng graph ay ginagamit na maaaring mag-scale sa maraming mga machine.

Major NoSQL Players

Ang mga pangunahing manlalaro sa NoSQL ay lumitaw lalo na dahil sa mga organisasyon na nagpatibay sa kanila. Ang ilan sa mga pinakamalaking teknolohiya ng NoSQL ay kinabibilangan ng:

Querying NoSQL

Ang tanong kung paano mag-query sa isang database ng NoSQL ay kung ano ang interesado sa karamihan sa mga developer. Matapos ang lahat, ang data na nakaimbak sa isang malaking database ay hindi gumagawa ng kahit sino anumang mabuti kung hindi mo mabawi at ipakita ito sa mga end user o web services. Ang mga database ng NoSQL ay hindi nagbibigay ng isang mataas na antas ng paturol na wika ng query tulad ng SQL. Sa halip, ang pagtatanong sa mga database na ito ay partikular na modelo ng data.

Marami sa mga platform ng NoSQL ang nagbibigay-daan para sa mga nakakahiyang mga interface sa data. Iba pang mga API na nag-aalok ng query. Mayroong isang pares ng mga tool sa query na binuo na pagtatangka upang magtanong ng maramihang mga database ng NoSQL. Karaniwang gumagana ang mga tool na ito sa isang solong kategorya ng NoSQL. Ang isang halimbawa ay SPARQL. SPARQL ay isang declarative query specification na dinisenyo para sa mga database ng graph. Narito ang isang halimbawa ng isang katanungan SPARQL na kinukuha ang URL ng isang partikular na blogger (courtesy of IBM):

PREFIX foaf:
PUMILI? Url
MULA SA
SAAN {
? contributor foaf: name "Jon Foobar".
? kontribusyon foaf: weblog? url.
}

Hinaharap ng NoSQL

Ang mga organisasyong may napakalaking pangangailangan sa imbakan ng data ay naghahanap ng seryoso sa NoSQL. Tila, ang konsepto ay hindi nakakakuha ng mas maraming traksyon sa mas maliit na mga organisasyon. Sa isang survey na isinagawa ng Information Week, 44% ng mga propesyonal sa IT negosyo ay hindi narinig ng NoSQL. Dagdag dito, 1% lamang ng mga respondent ang iniulat na ang NoSQL ay isang bahagi ng kanilang madiskarteng direksyon. Malinaw, ang NoSQL ay may lugar sa aming konektadong mundo ngunit kailangang patuloy na magbabago upang makuha ang mass appeal na inaakala ng maraming tao.