Чӣ тавр ба бибии худ фарқи байни SQL ва NoSQL-ро фаҳмонед

Чӣ тавр ба бибии худ фарқи байни SQL ва NoSQL-ро фаҳмонед

Яке аз муҳимтарин қарорҳои таҳиягар ин аст, ки кадом пойгоҳи додаҳоро истифода барад. Дар тӯли солҳои зиёд, вариантҳо бо имконоти гуногуни пойгоҳи додаҳои релятсионӣ, ки забони сохтории дархостро (SQL) дастгирӣ мекарданд, маҳдуд буданд. Ба онҳо MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 ва бисёр чизҳои дигар дохил мешаванд.

Дар тӯли 15 соли охир, бисёр пойгоҳи додаҳои нав ба бозор таҳти равиши No-SQL ворид шуданд. Инҳо мағозаҳои калидӣ ба монанди Redis ва Amazon DynamoDB, пойгоҳи додаҳои васеи сутунҳо ба монанди Cassandra ва HBase, мағозаҳои ҳуҷҷатҳо ба монанди MongoDB ва Couchbase ва пойгоҳи додаҳои графикӣ ва системаҳои ҷустуҷӯӣ ба монанди Elasticsearch ва Solr мебошанд.

Дар ин мақола, мо кӯшиш хоҳем кард, ки SQL ва NoSQL-ро бидуни ворид шудан ба фаъолияти онҳо бифаҳмем.
Илова бар ин, мо дар роҳ каме хурсандӣ хоҳем кард.

Шарҳ додани SQL ба бибиям

Бибиям, тасаввур кун, ки ман ягона набераи ту нестам. Ба ҷои ин, модар ва падар якдигарро мисли харгӯш дӯст медоштанд, онҳо 100 фарзанд доштанд, сипас 50 нафари дигарро ба фарзандӣ гирифтанд.

Ҳамин тавр, шумо ҳамаи моро дӯст медоред ва намехоҳед ҳеҷ яке аз номҳо, зодрӯзҳо, маззаҳои яхмосҳои дӯстдошта, андозаи либос, маҳфилҳо, номи ҳамсарон, наслҳо ва дигар далелҳои муҳими моро фаромӯш кунед. Бо вуҷуди ин, биёед бо он рӯ ба рӯ шавем. Шумо 85-сола ҳастед ва хотираи хуби кӯҳна аз ӯҳдаи ин кор баромада наметавонад.

Хушбахтона, ман донотарин набераатон ҳастам, ман метавонам кумак кунам. Ҳамин тавр, ман ба хонаи шумо меоям, ман чанд варақ коғаз мегирам ва аз шумо хоҳиш мекунам, ки пеш аз оғоз кардани мо каме куки пухтан.

Дар як варақ мо рӯйхатеро бо номи "Панҷум". Хар набера бо баъзе маълумоти муҳим дар бораи ӯ сабт шудааст, аз ҷумла рақами беназире, ки ҳоло нишон медиҳад, ки чӣ тавр набера вай аст. Инчунин, ба хотири ташкил, мо атрибутҳои номбаршударо дар болои рӯйхат менависем, то мо ҳамеша донем, ки рӯйхат кадом маълумотро дар бар мегирад.

id
ном
рӯзи таваллуд
сафари охирин
андозаи либос
яхмоси дӯстдошта
қабул карда шудааст

1
Jimmy
09-22-1992
09-01-2019
L
шоколади пудинагӣ
бардурӯғ

2
Ҷессика
07-21-1992
02-22-2018
M
Роҳи санглох
ҳақиқӣ

…мо рӯйхатро идома медиҳем!

Рӯйхати набераҳо

Пас аз чанде, шумо ҳама чизро мефаҳмед ва мо қариб ки рӯйхатро анҷом медиҳем! Бо вуҷуди ин, шумо ба ман рӯ меоред ва мегӯед: "Мо барои ҳамсарон, маҳфилҳо, набераҳо ҷой илова карданро фаромӯш кардаем!" Аммо не, мо фаромӯш накардаем! Ин минбаъд давом мекунад ва як варақи навро талаб мекунад.

Ҳамин тавр, ман як варақи дигарро мекашам ва дар он мо рӯйхатро меномем Ҳамсарон. Мо боз атрибутҳоеро, ки барои мо муҳиманд, ба болои рӯйхат илова мекунем ва ба илова кардани сатрҳо шурӯъ мекунем.

id
ID-и набера
ном
рӯзи таваллуд

1
2
Юҳанно
06-01-1988

2
9
Фернанда
03-05-1985

… ҳамсарони бештар!

Рӯйхати ҳамсарон

Дар ин марҳила, ман ба модаркалонам мефаҳмонам, ки агар ӯ донистан мехоҳад, ки кӣ бо кӣ издивоҷ кардааст, пас ӯ танҳо мувофиқат кардан лозим аст. id дар рӯйхат наберахо с ID-и набера дар руйхати зану шавхар.

Пас аз якчанд даҳҳо кукиҳо, ман бояд каме хоб кунам. — Давом дода метавонед, биби? Ман меравам, то истироҳат кунам.

Ман пас аз чанд соат бармегардам. Шумо хуб ҳастед, биби! Ҳама чиз хуб ба назар мерасад, ба истиснои рӯйхат хобби. Дар рӯйхат тақрибан 1000 маҳфилҳо мавҷуданд. Аксари онҳо такрор мешаванд; Чӣ гап шудааст?

ID-и набера
шавщ

1
biking

4
biking

3
biking

7
давида

11
biking

… идома медиҳем!

Бубахшед, ман гуфтанро тамоман фаромӯш кардаам! Бо истифода аз як рӯйхат, шумо метавонед танҳо пайгирӣ кунед хобби. Сипас дар рӯйхати дигар мо бояд пайгирӣ кунем наберахоки ин корро мекунанд хобби. Мо онро даъват мекунем "Рӯйхати умумӣ". Дидам, ки ин ба шумо маъқул нест, ман хавотир мешавам ва ба ҳолати рӯйхат бармегардам.

id
шавщ

1
biking

2
давида

3
шиноварӣ

… маҳфилҳои бештар!

Рӯйхати маҳфилҳо

Вақте ки мо рӯйхати маҳфилҳои худро дорем, мо рӯйхати дуюми худро эҷод мекунем ва онро меномем "Хоббихои наберахо".

ID-и набера
hobby_id

4
1

3
1

7
2

…Бештар!

Рӯйхати умумии маҳфилҳои наберагон

Пас аз ин ҳама кор, бибиям ҳоло системаи хотираи олӣ дорад, то тамоми оилаи бениҳоят бузурги худро пайгирӣ кунад. Ва он гоҳ, ки маро дарозтар нигоҳ дорад, вай саволи ҷодугарӣ медиҳад: "Шумо ин ҳамаро аз куҷо ёд гирифтед?"

Пойгоҳи додаҳои релятсионӣ

Махзани маълумотҳои релятсионӣ маҷмӯи ҷадвалҳои расман тавсифшуда мебошад (дар мисоли мо инҳо варақҳо мебошанд), ки шумо метавонед аз онҳо дастрас шавед дода шудааст ё онҳоро бо роҳҳои гуногун ҷамъоварӣ кунед, бидуни аз нав ташкил кардани ҷадвалҳо пойгоҳи додаҳо. Намудҳои гуногуни пойгоҳи додаҳои релятсионӣ мавҷуданд, аммо мутаассифона, рӯйхат дар як варақ яке аз онҳо нест.

Хусусияти хоси маъмултарин пойгоҳи додаҳои релятсионӣ ин забони дархости SQL (Structured Query Language) мебошад. Бо шарофати ӯ, агар бибиям системаи хотираи худро ба компютер интиқол диҳад, вай метавонад ба саволҳои зерин зуд ҷавоб диҳад: «Кӣ соли гузашта ба ман хабар нагирифт, оиладор аст ва хобби надорад?»

Яке аз маъмултарин системаҳои идоракунии пойгоҳи додаҳои SQL манбаи кушодаи MySQL мебошад. Он пеш аз ҳама ҳамчун системаи идоракунии пойгоҳи додаҳои релятсионӣ (RDBMS) барои барномаҳои нармафзори веб асосёфта амалӣ карда мешавад.

Баъзе хусусиятҳои асосии MySQL:

  • Он хеле хуб маълум аст, ба таври васеъ истифода мешавад ва ба таври васеъ санҷида шудааст.
  • Бисёр таҳиягарони бомаҳорат ҳастанд, ки бо SQL ва пойгоҳи додаҳои релятсионӣ таҷриба доранд.
  • Маълумот дар ҷадвалҳои гуногун нигоҳ дошта мешавад, ки бо истифода аз калидҳои ибтидоӣ ва хориҷӣ (идентификаторҳо) барқарор кардани муносибатҳоро осон мекунад.
  • Истифодаи он осон ва самаранок аст, ки онро барои тиҷорати калон ва хурд беҳтарин мекунад.
  • Рамзи сарчашма тибқи шартҳои Литсензияи умумии ҷамъиятии GNU мебошад.

Акнун фаромӯш Ҳама.

Шарҳ додани NoSQL ба биби

Бибиям, мо оилаи бузург дорем. Вай 150 набера дорад! Аксари онҳо оиладор, соҳиби фарзанд, ба чизе дилбастагӣ доранд ва ғайра. Дар синни шумо ҳама чизро дар бораи ҳамаи мо ба ёд овардан ғайриимкон аст. Он чизе ки ба шумо лозим аст, системаи хотира аст!

Хушбахтона, И не ки шумо зодрӯзи ман ва маззаи дӯстдоштаи яхмосро фаромӯш кардан мехоҳед, ман кӯмак карда метавонам. Аз ин рӯ, ба наздиктарин мағоза давида, дафтар гирифта, ба хонаатон бармегардам.

Қадами аввалине, ки ман мегузорам, ин аст, ки дар муқоваи дафтарам "Набераҳо" -ро бо ҳарфҳои калон ғафс нависам. Сипас ман ба саҳифаи аввал меравам ва ҳар чизеро, ки шумо дар бораи ман дар ёд доред, менависам. Пас аз чанд дақиқа, саҳифа чунин менамояд.

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я: "Ба назар чунин мерасад, ки ҳама чиз омода аст!"
Модарам: "Интизор бошед, боқимондаи набераҳо чӣ мешавад?"
Я: "Бале дақиқ. Сипас барои ҳар як саҳифа як саҳифа ҷудо кунед."
Модарам: "Оё ба ман лозим меояд, ки ҳама маълумотро барои ҳама нависам, чунон ки ман барои шумо кардам?"
Я: "Не, танҳо агар шумо хоҳед. Биёед ман нишон диҳам."
Ман қалами бибиамро ба даст гирифта, саҳифаро варақ мезанам ва зуд маълумотро дар бораи амакбачаи дӯстдоштаам сабт мекунам.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

Ҳар вақте, ки модаркалон лозим аст, ки чизе дар бораи яке аз набераҳояш ба ёд биёрад, вай танҳо лозим аст, ки ба саҳифаи рости дафтарчаи набераҳояш равад. Ҳама маълумот дар бораи онҳо дар ҳамон ҷо дар саҳифаи онҳо нигоҳ дошта мешавад, ки вай метавонад онро зуд тағир диҳад ва навсозӣ кунад.

Вақте ки ҳама кор анҷом ёфт, вай саволи ҷодугарӣ медиҳад: "Шумо ин ҳамаро аз куҷо ёд гирифтед?"

Пойгоҳи додаҳои NoSQL

Бисёр ҳастанд Пойгоҳи додаҳои NoSQL («на танҳо SQL»). Мо дар мисолхои худ нишон додем базаи ҳуҷҷатҳо. Пойгоҳи додаҳои NoSQL маълумотро бо тарзе модел мекунанд, ки муносибатҳои ҷадвалро, ки дар пойгоҳи додаҳои релятсионӣ истифода мешаванд, истисно мекунанд. Ин пойгоҳи додаҳо дар ибтидои солҳои 2000-ум бо ширкатҳое маъмул гаштанд, ки ба кластерсозии пойгоҳи абрӣ аз сабаби талаботи возеҳи миқёси худ (ба монанди Facebook) ниёз доштанд. Дар чунин барномаҳо, мутобиқати додаҳо нисбат ба иҷроиш ва миқёспазирӣ аҳамияти камтар дошт.

Дар ибтидо, пойгоҳи додаҳои NoSQL аксар вақт барои вазифаҳои идоракунии маълумот истифода мешуданд. Асосан, вақте ки сухан дар бораи барномаҳои веб ва абрӣ меравад, пойгоҳи додаҳои NoSQL миқдори зиёди маълумотро коркард ва паҳн мекард. Муҳандисони NoSQL инчунин схемаи чандири маълумотро (ё набудани он) дӯст медоштанд, то тағироти зуд дар замимаҳои навсозӣ имконпазир бошад.

Хусусиятҳои асосии NoSQL:

  • Роҳи хеле чандири нигоҳ доштани маълумот
  • Миқёси уфуқӣ ба кластерҳо
  • Пайдарпаии имконпазир барои як устуворӣ/паҳн
  • Ҳуҷҷатҳое, ки бо истифода аз калидҳои беназир муайян карда мешаванд

Муқоисаи муфассал

MySQL схемаи муайян ва сохториро талаб мекунад.
NoSQL ба шумо имкон медиҳад, ки ҳама гуна маълумотро дар "ҳуҷҷат" нигоҳ доред.

MySQL дорои ҷомеаи бузург аст.
NoSQL дорои ҷомеаи хурд ва босуръат меафзояд.

Миқёси NoSQL осон аст.
MySQL ба идоракунии бештар ниёз дорад.

MySQL SQL-ро истифода мебарад, ки дар бисёр намудҳои пойгоҳи додаҳо истифода мешавад.
NoSQL як тарҳи асоси пойгоҳи додаҳо бо татбиқи маъмул аст.

MySQL забони стандартии дархостро (SQL) истифода мебарад.
NoSQL забони стандартии дархостро истифода намебарад.

MySQL дорои бисёр воситаҳои бузурги гузоришдиҳӣ мебошад.
NoSQL дорои якчанд асбобҳои гузоришдиҳӣ мебошад, ки стандартизатсия кардан душвор аст.

MySQL метавонад мушкилоти иҷроишро барои додаҳои калон нишон диҳад.
NoSQL иҷрои аълоро дар маълумоти калон таъмин мекунад.

Андешаҳо 8база

Дар ширкат 8 асосДар он ҷое ки ман кор мекунам, мо барои ҳар як лоиҳа фазои кории худро бо пойгоҳи додаи реляционии Aurora MySQL, ки дар AWS ҷойгир шудааст, таъмин мекунем. Гарчанде ки NoSQL интихоби мантиқӣ аст, вақте ки барномаи шумо иҷрои баланд ва миқёспазириро талаб мекунад, мо боварӣ дорем, ки мутобиқати қавии маълумот аз ҷониби DBMS ҳангоми сохтани барномаҳои SaaS ва дигар нармафзори тиҷоратӣ муҳим аст.

Барои стартапҳо ва таҳиягароне, ки барномаҳои тиҷорӣ месозанд, ки гузоришдиҳӣ, якпорчагии транзаксия ва моделҳои дақиқи додаҳоро талаб мекунанд, сармоягузорӣ ба пойгоҳи додаҳои релятсионӣ, ба андешаи мо, интихоби дуруст аст.

Дар бораи рушд бо Aurora, Serverless ва GraphQL дар 8base.com маълумоти бештар гиред дар ин ҷо.

Манбаъ: will.com

Илова Эзоҳ