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
ජිමී
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
පාපැදි

4
පාපැදි

3
පාපැදි

7
ධාවනය

11
පාපැදි

…අපි දිගටම!

සමාවෙන්න, මට කියන්න සම්පූර්ණයෙන්ම අමතක වුණා! එක් ලැයිස්තුවක් භාවිතා කිරීමෙන්, ඔබට නිරීක්ෂණය කළ හැක්කේ පමණි විනෝදාංශයක්. ඊට පස්සේ වෙනත් ලැයිස්තුවක අපි ලුහුබැඳීමට අවශ්යයි මුණුබුරන්කවුද මේක කරන්නේ විනෝදාංශයක්. අපි ඒකට කතා කරන්නයි යන්නේ "පොදු ලැයිස්තුව". ඔබ එයට අකමැති බව දැක, මම කලබල වී නැවත ලැයිස්තු ප්‍රකාරයට යමි.

id
විනෝදාංශ

1
පාපැදි

2
ධාවනය

3
පිහිනුම්

…තවත් විනෝදාංශ!

විනෝදාංශ ලැයිස්තුව

අපගේ විනෝදාංශ ලැයිස්තුව ලැබුණු පසු, අපි අපගේ දෙවන ලැයිස්තුව සාදා එය අමතන්නෙමු "මුණුබුරන්ගේ විනෝදාංශ".

මුණුපුරා_id
විනෝදාංශ_id

4
1

3
1

7
2

…තව!

මුණුබුරන් විනෝදාංශ පිළිබඳ පොදු ලැයිස්තුව

මේ සියලු වැඩවලින් පසුව, ආච්චිට දැන් ඇගේ මුළු පුදුමාකාර විශාල පවුල ගැන සොයා බැලීමට සිසිල් මතක පද්ධතියක් තිබේ. එවිට - මාව තව දුරටත් තබා ගැනීමට - ඇය මැජික් ප්රශ්නය අසයි: "ඔබ මේ සියල්ල කිරීමට ඉගෙන ගත්තේ කොහෙන්ද?"

සම්බන්ධතා දත්ත සමුදායන්

සම්බන්ධතා දත්ත සමුදායක් යනු ඔබට ප්‍රවේශ විය හැකි විධිමත් ලෙස විස්තර කර ඇති වගු සමූහයකි (අපගේ උදාහරණයේ, මේවා පත්‍ර වේ) ලබා දී ඇත හෝ වගු ප්රතිසංවිධානයකින් තොරව විවිධ ක්රම වලින් ඒවා එකතු කරන්න දත්ත සමුදාය. විවිධ ආකාරයේ සම්බන්ධතා දත්ත සමුදායන් ඇත, නමුත් අවාසනාවකට කඩදාසි කැබැල්ලක ලැයිස්තුවක් ඒවායින් එකක් නොවේ.

වඩාත් ජනප්‍රිය සම්බන්ධතා දත්ත සමුදායන් හි ලක්ෂණය වන්නේ SQL (ව්‍යුහගත විමසුම් භාෂාව) විමසුම් භාෂාවයි. ඔහුට ස්තූතියි, ආච්චි ඇගේ මතක පද්ධතිය පරිගණකයකට මාරු කරන්නේ නම්, ඇයට ඉක්මනින් වැනි ප්‍රශ්නවලට පිළිතුරු ලබා ගත හැකිය: “පසුගිය වසරේ මා බැලීමට නොපැමිණි, විවාහක සහ විනෝදාංශයක් නොමැති කවුද?”

වඩාත්ම ජනප්‍රිය SQL දත්ත සමුදා කළමනාකරණ පද්ධතියක් වන්නේ විවෘත මූලාශ්‍ර MySQL ය. එය මූලික වශයෙන් වෙබ් පාදක මෘදුකාංග යෙදුම් සඳහා සම්බන්ධතා දත්ත සමුදා කළමනාකරණ පද්ධතියක් (RDBMS) ලෙස ක්‍රියාත්මක වේ.

MySQL හි සමහර ප්‍රධාන විශේෂාංග:

  • එය තරමක් හොඳින් දන්නා, බහුලව භාවිතා වන සහ පුළුල් ලෙස පරීක්ෂා කර ඇත.
  • SQL සහ සම්බන්ධතා දත්ත සමුදායන් පිළිබඳ අත්දැකීම් ඇති බොහෝ දක්ෂ සංවර්ධකයින් සිටී.
  • දත්ත විවිධ වගු වල ගබඩා කර ඇති අතර එමඟින් ප්‍රාථමික සහ විදේශීය යතුරු (හඳුනාගැනීම්) භාවිතයෙන් සම්බන්ධතා ඇති කර ගැනීම පහසු කරයි.
  • එය භාවිතා කිරීමට පහසු සහ කාර්යක්ෂම වන අතර, එය විශාල හා කුඩා ව්‍යාපාර සඳහා වඩාත් සුදුසු වේ.
  • මූලාශ්‍ර කේතය GNU General Public බලපත්‍රයේ නියමයන් යටතේ ඇත.

දැන් අමතක කරන්න සෑම.

ආච්චිට 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 ගණන්වල මුල් භාගයේදී ජනප්‍රිය විය. එවැනි යෙදුම්වල, කාර්ය සාධනය සහ පරිමාණයට වඩා දත්ත අනුකූලතාව ඉතා අඩු වැදගත්කමක් විය.

ආරම්භයේ දී, NoSQL දත්ත සමුදායන් බොහෝ විට niche දත්ත කළමනාකරණ කාර්යයන් සඳහා භාවිතා කරන ලදී. මූලික වශයෙන්, එය වෙබ් සහ වලාකුළු යෙදුම් සම්බන්ධයෙන් ගත් විට, NoSQL දත්ත සමුදායන් සැලකිය යුතු දත්ත ප්‍රමාණයක් සකසන ලද සහ බෙදා හරින ලදී. NoSQL ඉංජිනේරුවන් ද නම්‍යශීලී දත්ත ක්‍රමයට (හෝ එහි නොමැතිකම) කැමති වූ අතර එමඟින් යාවත්කාලීන කරන ලද යෙදුම්වල වේගවත් වෙනස්කම් සිදුවිය හැකිය.

NoSQL හි ප්‍රධාන ලක්ෂණ:

  • දත්ත ගබඩා කිරීමට ඉතා නම්‍යශීලී ක්‍රමයක්
  • පොකුරු දක්වා තිරස් පරිමාණය
  • ස්ථීරත්වය/පැතිරීම අනුව විය හැකි අනුපිළිවෙල
  • අද්විතීය යතුරු භාවිතයෙන් හඳුනා ගන්නා ලේඛන

සවිස්තරාත්මක සංසන්දනය

MySQL සඳහා නිර්වචනය කළ සහ ව්‍යුහගත සැලැස්මක් අවශ්‍ය වේ.
NoSQL ඔබට ඕනෑම දත්තයක් "ලේඛනයක" ගබඩා කිරීමට ඉඩ සලසයි.

MySQL සතුව විශාල ප්‍රජාවක් ඇත.
NoSQL සතුව කුඩා හා වේගයෙන් වර්ධනය වන ප්‍රජාවක් ඇත.

NoSQL පරිමාණය කිරීම පහසුය.
MySQL වලට වැඩි කළමනාකරණයක් අවශ්‍යයි.

MySQL SQL භාවිතා කරයි, එය බොහෝ වර්ගවල දත්ත සමුදායන්හි භාවිතා වේ.
NoSQL යනු ජනප්‍රිය ක්‍රියාත්මක කිරීම් සහිත දත්ත සමුදාය පදනම් කරගත් නිර්මාණයකි.

MySQL සම්මත විමසුම් භාෂාවක් (SQL) භාවිතා කරයි.
NoSQL සම්මත විමසුම් භාෂාවක් භාවිතා නොකරයි.

MySQL සතුව බොහෝ විශිෂ්ට වාර්තාකරණ මෙවලම් තිබේ.
NoSQL සතුව ප්‍රමිතිකරණය කිරීමට අපහසු වාර්තාකරණ මෙවලම් කිහිපයක් තිබේ.

MySQL විශාල දත්ත සඳහා කාර්ය සාධන ගැටළු පෙන්විය හැක.
NoSQL විශාල දත්ත මත විශිෂ්ට කාර්ය සාධනයක් සපයයි.

සිතුවිලි 8 පදනම

සමාගම තුළ 8 පදනමමම වැඩ කරන තැන, අපි AWS හි සත්කාරකත්වය සපයන Aurora MySQL සම්බන්ධක දත්ත ගබඩාවක් සමඟින් එක් එක් ව්‍යාපෘතිය සඳහා වැඩ ඉඩක් ලබා දෙන්නෙමු. ඔබගේ යෙදුමට ඉහළ කාර්ය සාධනයක් සහ පරිමාණයක් අවශ්‍ය වන විට NoSQL තාර්කික තේරීමක් වන අතර, SaaS යෙදුම් සහ අනෙකුත් ව්‍යාපාරික මෘදුකාංග තැනීමේදී DBMS මඟින් සපයන ශක්තිමත් දත්ත අනුකූලතාව අත්‍යවශ්‍ය බව අපි විශ්වාස කරමු.

වාර්තාකරණය, ගනුදෙනු අඛණ්ඩතාව සහ මනාව නිර්වචනය කරන ලද දත්ත ආකෘති අවශ්‍ය වන ව්‍යාපාරික යෙදුම් ගොඩනඟන ආරම්භකයින් සහ සංවර්ධකයින් සඳහා, අපගේ මතය අනුව, නිවැරදි තේරීම වේ.

8base.com හිදී Aurora, Serverless සහ GraphQL සමඟ සංවර්ධනය කිරීම ගැන තව දැනගන්න මෙහි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න