توهان جي ناني کي SQL ۽ NoSQL جي وچ ۾ فرق ڪيئن بيان ڪجي

توهان جي ناني کي SQL ۽ NoSQL جي وچ ۾ فرق ڪيئن بيان ڪجي

سڀ کان اهم فيصلن مان هڪ هڪ ڊولپر ٺاهيندو آهي ڪهڙو ڊيٽابيس استعمال ڪرڻ آهي. ڪيترن ئي سالن تائين، اختيارن کي مختلف تعلقي ڊيٽابيس جي اختيارن تائين محدود ڪيو ويو جيڪي Structured Query Language (SQL) کي سپورٽ ڪندا هئا. انهن ۾ شامل آهن MS SQL سرور، 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
grandchild_id
نالو
سالگراه

1
2
جان
06-01-1988

2
9
Fernanda
03-05-1985

…وڌيڪ زالون!

زالن جي فهرست

ان مرحلي تي مان پنهنجي ناني کي سمجهايان ٿو ته جيڪڏهن هوءَ ڄاڻڻ چاهي ٿي ته ڪنهن سان شادي ڪئي آهي ته پوءِ هن کي صرف شادي ڪرڻ جي ضرورت آهي. id فهرست ۾ پوٽا с grandchild_id زالن جي فهرست ۾.

ٻه درجن ڪوڪيز کان پوء، مون کي ننڊ وٺڻ جي ضرورت آهي. "ڇا توهان جاري رکي سگهو ٿا، دادي؟" مان ننڊ ڪرڻ لاءِ وڃان ٿو.

مان ڪجهه ڪلاڪن ۾ واپس اچي رهيو آهيان. تون ٿڌو آهين، دادي! فهرست کان سواءِ سڀ ڪجهه سٺو لڳندو آهي شوق آهي. فهرست تي اٽڪل 1000 مشغلا آهن. انھن مان گھڻا repetitive آهن; ڇا ٿيو آهي؟

grandchild_id
شوق آهي

1
سائيڪل

4
سائيڪل

3
سائيڪل

7
ڊوڙندو

11
سائيڪل

... اسان جاري رکون ٿا!

معاف ڪجو، مون کي مڪمل طور تي چوڻ وساريو! ھڪڙي فهرست استعمال ڪندي، توھان صرف ٽريڪ ڪري سگھو ٿا شوق آهي. پوءِ ٻي لسٽ ۾ اسان کي ٽريس ڪرڻو پوندو پوٽاجيڪي هي ڪري رهيا آهن شوق آهي. اسان ان کي سڏڻ وارا آهيون "عام فهرست". اهو ڏسي ته توهان اهو پسند نه ڪيو، مان پريشان ٿي وڃان ٿو ۽ لسٽ موڊ ڏانهن واپس وڃان ٿو.

id
شوق آهي

1
سائيڪل

2
ڊوڙندو

3
ترڻ

…وڌيڪ شوق!

مشغلن جي فهرست

هڪ دفعو اسان وٽ اسان جي شوق جي فهرست آهي، اسان پنهنجي ٻي لسٽ ٺاهيندا آهيون ۽ ان کي سڏيندا آهيون "نياڻين جو شوق».

grandchild_id
hobby_id

4
1

3
1

7
2

…وڌيڪ!

پوٽي جي شوق جي عام فهرست

ھن سڄي ڪم کان پوءِ، دادي ھاڻي ھڪڙو ٿڌو ياداشت وارو نظام آھي جيڪو پنھنجي پوري حيرت انگيز وڏي خاندان جي نگراني ڪرڻ لاءِ. ۽ پوء - مون کي وڌيڪ رکڻ لاء - هوء جادو سوال پڇي ٿو: "توهان اهو سڀ ڪجهه ڪرڻ ڪٿي سکيو؟"

تعلقي ڊيٽابيس

هڪ تعلقي ڊيٽابيس رسمي طور تي بيان ڪيل جدولن جو هڪ سيٽ آهي (اسان جي مثال ۾، اهي شيٽ آهن) جن مان توهان رسائي ڪري سگهو ٿا ڏنل آهي يا انھن کي مختلف طريقن سان گڏ ڪريو بغير جدولن کي منظم ڪرڻ جي ڊيٽابيس. تعلقي ڊيٽابيس جا ڪيترائي مختلف قسم آهن، پر بدقسمتي سان ڪاغذ جي هڪ ٽڪڙي تي ڏنل فهرست انهن مان هڪ ناهي.

سڀ کان وڌيڪ مشهور لاڳاپي واري ڊيٽابيس جو نشان SQL (Structured Query Language) سوال جي ٻولي آهي. هن جي مهرباني، جيڪڏهن ڏاڏي پنهنجي ميموري سسٽم کي ڪمپيوٽر ڏانهن منتقل ڪري ٿي، هوء جلدي سوالن جا جواب حاصل ڪري سگهي ٿي، جهڙوڪ: "جيڪو گذريل سال مون سان نه آيو، شادي شده آهي ۽ ڪو شوق ناهي؟"

سڀ کان وڌيڪ مشهور SQL ڊيٽابيس مينيجمينٽ سسٽم مان هڪ آهي اوپن سورس MySQL. اهو بنيادي طور تي لاڳو ڪيو ويو آهي هڪ تعلقي ڊيٽابيس مينيجمينٽ سسٽم (RDBMS) لاءِ ويب تي ٻڌل سافٽ ويئر ايپليڪيشنن لاءِ.

MySQL جون ڪجهه اهم خاصيتون:

  • اهو ڪافي مشهور آهي، وڏي پيماني تي استعمال ٿيل ۽ وڏي پيماني تي آزمائشي.
  • اتي ڪيترائي ماهر ڊولپر آھن جن کي SQL ۽ لاڳاپيل ڊيٽابيس سان تجربو آھي.
  • ڊيٽا مختلف جدولن ۾ ذخيرو ٿيل آهي، جيڪا بنيادي ۽ غير ملڪي چابيون (سڃاڻڪار) استعمال ڪندي رشتا قائم ڪرڻ آسان بڻائي ٿي.
  • اهو استعمال ڪرڻ آسان ۽ ڪارائتو آهي، اهو ڪاروبار وڏن ۽ ننڍن لاء مثالي آهي.
  • ذريعو ڪوڊ GNU جنرل پبلڪ لائسنس جي شرطن جي تحت آهي.

هاڻي وساريو سڀ.

دادي کي NoSQL جي وضاحت ڪرڻ

ناني، اسان وٽ هڪ وڏو خاندان آهي. هن کي 150 پوٽا آهن! انهن مان گهڻا شادي شده آهن، ٻار آهن، ڪنهن شيءِ جو شوقين آهن وغيره. توهان جي عمر ۾، اسان سڀني جي باري ۾ سڀ ڪجهه ياد ڪرڻ ناممڪن آهي. ڇا توهان کي ضرورت آهي هڪ ميموري سسٽم!

خوشقسمتيء سان، I نه مان چاهيان ٿو ته توهان منهنجي جنم ڏينهن کي وساري ڇڏيو ۽ آئس ڪريم جو پسنديده ذائقو، مان مدد ڪري سگهان ٿو. سو مان ڊوڙي ويجھي دڪان تي پهتس، هڪ نوٽ بڪ کڻي پنهنجي گهر موٽي آيس.

پهريون قدم جيڪو مان کڻان ٿو، اهو آهي ”ناڻي“ کي پنهنجي نوٽ بڪ جي ڪپ تي وڏن وڏن اکرن ۾ لکڻ. ان کان پوء آئون پهرين صفحي ڏانهن ڦيرايو ۽ هر شيء لکڻ شروع ڪيو جيڪو توهان کي منهنجي باري ۾ ياد رکڻ جي ضرورت آهي. ڪجهه منٽن کان پوء، صفحو ڪجهه هن طرح نظر اچي ٿو.

{ 
  "_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 بنيادجتي آئون ڪم ڪريان ٿو، اسان AWS تي ميزباني ڪيل Aurora MySQL تعلقي ڊيٽابيس سان گڏ هر پروجيڪٽ لاءِ ورڪ اسپيس فراهم ڪندا آهيون. جڏهن ته NoSQL هڪ منطقي انتخاب آهي جڏهن توهان جي ايپليڪيشن اعليٰ ڪارڪردگي ۽ اسڪاليبلٽي جي تقاضا ڪري ٿي، اسان سمجهون ٿا ته هڪ DBMS پاران مهيا ڪيل مضبوط ڊيٽا مستقل مزاجي ضروري آهي جڏهن SaaS ايپليڪيشنون ۽ ٻيا ڪاروباري سافٽ ويئر ٺاهي رهيا آهن.

شروعاتي ۽ ڊولپرز لاءِ ڪاروباري ايپليڪيشنون تعمير ڪرڻ جيڪي رپورٽنگ، ٽرانزيڪشن جي سالميت، ۽ چڱي طرح بيان ڪيل ڊيٽا ماڊل جي ضرورت هونديون آهن، اسان جي راء ۾، لاڳاپيل ڊيٽابيس ۾ سيڙپڪاري آهي، صحيح انتخاب.

Aurora، Serverless ۽ GraphQL سان ترقي ڪرڻ بابت وڌيڪ سکو 8base.com تي هتي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو