اپنی دادی کو SQL اور NoSQL کے درمیان فرق کیسے سمجھائیں۔

اپنی دادی کو SQL اور NoSQL کے درمیان فرق کیسے سمجھائیں۔

ایک ڈویلپر جو سب سے اہم فیصلہ کرتا ہے وہ یہ ہے کہ کون سا ڈیٹا بیس استعمال کرنا ہے۔ کئی سالوں سے، اختیارات مختلف متعلقہ ڈیٹا بیس کے اختیارات تک محدود تھے جو Structured Query Language (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
پوتا_آئی ڈی
نام
سالگرہ

1
2
جان
06-01-1988

2
9
Fernanda
03-05-1985

…مزید میاں بیوی!

میاں بیوی کی فہرست

اس مرحلے پر میں اپنی دادی کو سمجھاتا ہوں کہ اگر وہ جاننا چاہتی ہیں کہ کس سے شادی ہوئی ہے تو اسے صرف میچ کرنا ہوگا۔ id فہرست میں پوتے с پوتا_آئی ڈی میاں بیوی کی فہرست میں

دو درجن کوکیز کے بعد، مجھے ایک جھپکی لینے کی ضرورت ہے۔ "کیا آپ جاری رکھ سکتی ہیں، دادی؟" میں ایک جھپکی لینے جا رہا ہوں۔

میں چند گھنٹوں میں واپس آ رہا ہوں۔ آپ اچھے ہیں، دادی! فہرست کے علاوہ سب کچھ بہت اچھا لگتا ہے۔ شوق. فہرست میں تقریباً 1000 مشاغل ہیں۔ ان میں سے اکثر دہرائی جاتی ہیں۔ کیا ہوا؟

پوتا_آئی ڈی
شوق

1
بائیک

4
بائیک

3
بائیک

7
چل رہا ہے

11
بائیک

…ہم جاری رکھیں!

معذرت، میں کہنا بالکل بھول گیا! ایک فہرست کا استعمال کرتے ہوئے، آپ صرف ٹریک کر سکتے ہیں۔ شوق. پھر ایک اور فہرست میں ہمیں ٹریس کرنے کی ضرورت ہے۔ پوتےجو یہ کر رہے ہیں شوق. ہم اسے کال کرنے جا رہے ہیں۔ "عام فہرست". یہ دیکھ کر کہ آپ اسے پسند نہیں کرتے، میں پریشان ہو جاتا ہوں اور لسٹ موڈ پر واپس چلا جاتا ہوں۔

id
شوق

1
بائیک

2
چل رہا ہے

3
تیراکی

…مزید مشاغل!

مشاغل کی فہرست

ایک بار جب ہمارے پاس اپنے شوق کی فہرست بن جاتی ہے، ہم اپنی دوسری فہرست بناتے ہیں اور اسے کہتے ہیں "پوتے پوتیوں کے مشاغل'.

پوتا_آئی ڈی
hobby_id

4
1

3
1

7
2

…مزید!

پوتے پوتیوں کے مشاغل کی عمومی فہرست

اس سارے کام کے بعد، دادی کے پاس اب اپنے پورے حیرت انگیز طور پر بڑے خاندان پر نظر رکھنے کے لیے ایک ٹھنڈا میموری سسٹم ہے۔ اور پھر - مجھے زیادہ دیر تک رکھنے کے لیے - وہ جادوئی سوال پوچھتی ہے: "تم نے یہ سب کرنا کہاں سے سیکھا؟"

رشتہ دار ڈیٹا بیس

ایک رشتہ دار ڈیٹا بیس رسمی طور پر بیان کردہ جدولوں کا ایک مجموعہ ہے (ہماری مثال میں، یہ شیٹس ہیں) جس سے آپ رسائی حاصل کر سکتے ہیں۔ دیا یا میزوں کو دوبارہ منظم کیے بغیر انہیں مختلف طریقوں سے جمع کریں۔ ڈیٹا بیس. متعلقہ ڈیٹا بیس کی بہت سی قسمیں ہیں، لیکن بدقسمتی سے کاغذ کے ٹکڑے پر فہرست ان میں سے ایک نہیں ہے۔

سب سے زیادہ مقبول رشتہ دار ڈیٹا بیس کی پہچان SQL (Structured Query Language) استفسار کی زبان ہے۔ اس کا شکریہ، اگر دادی اپنے میموری سسٹم کو کمپیوٹر پر منتقل کرتی ہیں، تو وہ جلدی سے سوالات کے جوابات حاصل کر سکتی ہیں جیسے: "جو پچھلے سال مجھ سے نہیں ملا، شادی شدہ ہے اور اس کا کوئی شوق نہیں ہے؟"

سب سے مشہور SQL ڈیٹا بیس مینجمنٹ سسٹم میں سے ایک اوپن سورس MySQL ہے۔ یہ بنیادی طور پر ویب پر مبنی سافٹ ویئر ایپلی کیشنز کے لیے ایک رشتہ دار ڈیٹا بیس مینجمنٹ سسٹم (RDBMS) کے طور پر لاگو کیا جاتا ہے۔

MySQL کی کچھ اہم خصوصیات:

  • یہ کافی اچھی طرح سے جانا جاتا ہے، وسیع پیمانے پر استعمال کیا جاتا ہے اور بڑے پیمانے پر تجربہ کیا جاتا ہے.
  • بہت سے ہنر مند ڈویلپرز ہیں جن کو ایس کیو ایل اور متعلقہ ڈیٹا بیس کا تجربہ ہے۔
  • ڈیٹا کو مختلف جدولوں میں محفوظ کیا جاتا ہے، جو بنیادی اور غیر ملکی کیز (شناخت کنندگان) کا استعمال کرتے ہوئے تعلقات قائم کرنا آسان بناتا ہے۔
  • یہ استعمال کرنا آسان اور موثر ہے، جو اسے چھوٹے اور بڑے کاروبار کے لیے مثالی بناتا ہے۔
  • سورس کوڈ 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 کی دہائی کے اوائل میں ان کمپنیوں کے ساتھ مقبول ہوئے جنہیں کلاؤڈ بیسڈ ڈیٹا بیس کلسٹرنگ کی ضرورت تھی کیونکہ ان کی واضح اسکیلنگ کی ضروریات (جیسے فیس بک)۔ ایسی ایپلی کیشنز میں، ڈیٹا کی مستقل مزاجی کارکردگی اور اسکیل ایبلٹی سے بہت کم اہم تھی۔

شروع میں، NoSQL ڈیٹا بیس کو اکثر مخصوص ڈیٹا مینجمنٹ کے کاموں کے لیے استعمال کیا جاتا تھا۔ بنیادی طور پر، جب بات ویب اور کلاؤڈ ایپلی کیشنز کی ہو تو، NoSQL ڈیٹا بیسز نے کافی مقدار میں ڈیٹا کو پروسیس اور تقسیم کیا۔ NoSQL انجینئرز نے لچکدار ڈیٹا اسکیما (یا اس کی کمی) کو بھی پسند کیا تاکہ اپ ڈیٹ ہونے والی ایپلی کیشنز میں تیزی سے تبدیلیاں ممکن ہوسکیں۔

NoSQL کی اہم خصوصیات:

  • ڈیٹا ذخیرہ کرنے کا بہت لچکدار طریقہ
  • کلسٹرز کے لیے افقی اسکیلنگ
  • مسلسل / پھیلاؤ کے مطابق ممکنہ ترتیب
  • وہ دستاویزات جن کی شناخت منفرد کلیدوں کے ذریعے کی جاتی ہے۔

تفصیلی موازنہ

MySQL کو ایک متعین اور منظم اسکیما کی ضرورت ہے۔
NoSQL آپ کو کسی بھی ڈیٹا کو "دستاویز" میں ذخیرہ کرنے کی اجازت دیتا ہے۔

MySQL کی ایک بہت بڑی کمیونٹی ہے۔
NoSQL کی ایک چھوٹی اور تیزی سے بڑھتی ہوئی کمیونٹی ہے۔

NoSQL پیمانے پر آسان ہے۔
MySQL کو مزید انتظام کی ضرورت ہے۔

MySQL ایس کیو ایل کا استعمال کرتا ہے، جو کئی قسم کے ڈیٹا بیس میں استعمال ہوتا ہے۔
NoSQL ایک ڈیٹا بیس پر مبنی ڈیزائن ہے جس میں مقبول نفاذات ہیں۔

MySQL ایک معیاری استفسار کی زبان (SQL) استعمال کرتا ہے۔
NoSQL معیاری استفسار کی زبان استعمال نہیں کرتا ہے۔

MySQL میں رپورٹنگ کے بہت سے بہترین ٹولز ہیں۔
NoSQL میں رپورٹنگ کے کئی ٹولز ہیں جنہیں معیاری بنانا مشکل ہے۔

MySQL بڑے ڈیٹا کے لیے کارکردگی کے مسائل دکھا سکتا ہے۔
NoSQL بڑے ڈیٹا پر بہترین کارکردگی فراہم کرتا ہے۔

خیالات 8 کی بنیاد

کمپنی 8 بیسجہاں میں کام کرتا ہوں، ہم AWS پر میزبان Aurora MySQL رشتہ دار ڈیٹا بیس کے ساتھ ہر پروجیکٹ کے لیے ایک ورک اسپیس فراہم کرتے ہیں۔ جب کہ NoSQL ایک منطقی انتخاب ہے جب آپ کی ایپلی کیشن اعلی کارکردگی اور اسکیل ایبلٹی کا مطالبہ کرتی ہے، ہم سمجھتے ہیں کہ SaaS ایپلیکیشنز اور دیگر کاروباری سافٹ ویئر بناتے وقت DBMS کے ذریعے فراہم کردہ مضبوط ڈیٹا کی مستقل مزاجی ضروری ہے۔

کاروباری ایپلی کیشنز بنانے والے اسٹارٹ اپس اور ڈویلپرز کے لیے جن کے لیے رپورٹنگ، لین دین کی سالمیت، اور اچھی طرح سے طے شدہ ڈیٹا ماڈلز کی ضرورت ہوتی ہے، ہماری رائے میں، متعلقہ ڈیٹا بیس میں سرمایہ کاری کرنا صحیح انتخاب ہے۔

8base.com پر Aurora، Serverless اور GraphQL کے ساتھ ترقی کرنے کے بارے میں مزید جانیں۔ یہاں.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں