گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1 اصلی ڈیٹا بیس کی تلواریں - گلوبلز - طویل عرصے سے معلوم ہیں، لیکن اب بھی بہت کم لوگ جانتے ہیں کہ ان کو کس طرح مؤثر طریقے سے استعمال کرنا ہے یا وہ اس سپر ہتھیار کے مالک نہیں ہیں۔

اگر آپ ان مسائل کو حل کرنے میں گلوبلز کا استعمال کرتے ہیں جن میں وہ واقعی اچھے ہیں، تو آپ شاندار نتائج حاصل کر سکتے ہیں۔ یا تو پیداوری میں یا مسئلے کے حل کو آسان بنانے میں (1, 2).

گلوبلز ڈیٹا کو ذخیرہ کرنے اور اس پر کارروائی کرنے کا ایک خاص طریقہ ہے، جو SQL میں موجود ٹیبلز سے بالکل مختلف ہے۔ وہ 1966 میں زبان میں شائع ہوئے۔ M(UMPS) (ارتقائی ترقی - کیشے آبجیکٹ اسکرپٹ، اس کے بعد COS) میڈیکل ڈیٹا بیس میں ہے اور اب بھی موجود ہے۔ فعال طور پر استعمال کیا جاتا ہے، اور کچھ دوسرے شعبوں میں بھی داخل ہوا جہاں قابل اعتماد اور اعلی کارکردگی کی ضرورت ہے: فنانس، ٹریڈنگ، وغیرہ۔

جدید DBMSs میں گلوبلز لین دین، لاگنگ، نقل، اور تقسیم کی حمایت کرتے ہیں۔ وہ. انہیں جدید، قابل اعتماد، تقسیم شدہ اور تیز رفتار نظاموں کی تعمیر کے لیے استعمال کیا جا سکتا ہے۔

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

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

2. گلوبل کیسے کام کرتے ہیں۔

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

سیدھے الفاظ میں، ایک عالمی ایک مستقل صف ہے۔ ایک صف جو خود بخود ڈسک میں محفوظ ہو جاتی ہے۔
ڈیٹا کو ذخیرہ کرنے کے لیے کسی آسان چیز کا تصور کرنا مشکل ہے۔ کوڈ میں (COS/M زبانوں میں) یہ صرف علامت میں ایک باقاعدہ ایسوسی ایٹیو صف سے مختلف ہے۔ ^ نام سے پہلے.

عالمی سطح پر ڈیٹا محفوظ کرنے کے لیے، آپ کو SQL استفسار کی زبان سیکھنے کی ضرورت نہیں ہے؛ ان کے ساتھ کام کرنے کے لیے کمانڈز بہت آسان ہیں۔ وہ ایک گھنٹے میں سیکھ سکتے ہیں۔

آئیے سب سے آسان مثال کے ساتھ شروع کریں۔ 2 شاخوں کے ساتھ سنگل سطح کا درخت۔ مثالیں COS میں لکھی گئی ہیں۔

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"



گلوبل (سیٹ کمانڈ) میں معلومات داخل کرتے وقت، 3 چیزیں خود بخود ہوجاتی ہیں:

  1. ڈیٹا کو ڈسک میں محفوظ کرنا۔
  2. اشاریہ سازی قوسین میں جو ہے وہ کلید ہے (انگریزی ادب میں - "سب اسکرپٹ")، اور برابر کے دائیں طرف قدر ہے ("نوڈ ویلیو")۔
  3. چھانٹ رہا ہے ڈیٹا کو کلید کے لحاظ سے ترتیب دیا گیا ہے۔ مستقبل میں، صف کو عبور کرتے وقت، پہلا عنصر "Sergey Smith" اور دوسرا "John Sidorov" ہوگا۔ عالمی سطح پر صارفین کی فہرست وصول کرتے وقت، ڈیٹا بیس چھانٹنے میں وقت ضائع نہیں کرتا۔ مزید برآں، آپ کسی بھی کلید سے شروع ہو کر، غیر موجود کلید سے شروع ہونے والی فہرست کے آؤٹ پٹ کی درخواست کر سکتے ہیں (آؤٹ پٹ پہلی اصلی کلید سے شروع ہوگی، جو غیر موجود کے بعد آتی ہے)۔

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

یقینا، اندراج کی رفتار خود زیادہ نہیں کہتی ہے۔ آپ، مثال کے طور پر، ٹیکسٹ فائلوں میں بہت جلد معلومات لکھ سکتے ہیں - اس طرح افواہ ویزا پروسیسنگ کام کرتی ہے۔ لیکن گلوبلز کے معاملے میں، ہمیں نتیجے کے طور پر ایک منظم انڈیکسڈ اسٹوریج ملتا ہے، جس کے ساتھ مستقبل میں آسانی اور تیزی سے کام کیا جا سکتا ہے۔

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

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

آئیے عالمی سطح پر دوسری اور تیسری سطح کی چند مزید شاخیں شامل کریں۔

Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

یہ ظاہر ہے کہ گلوبلز کی بنیاد پر کثیر سطح کے درخت بنائے جا سکتے ہیں۔ مزید یہ کہ اندراج کے دوران آٹو انڈیکسنگ کی وجہ سے کسی بھی نوڈ تک رسائی تقریباً فوری ہوتی ہے۔ اور درخت کی کسی بھی سطح پر، تمام شاخوں کو کلید کے ذریعے ترتیب دیا جاتا ہے۔

جیسا کہ آپ دیکھ سکتے ہیں، معلومات کو کلید اور قدر دونوں میں ذخیرہ کیا جا سکتا ہے۔ کلید کی کل لمبائی (تمام اشاریہ جات کی لمبائی کا مجموعہ) تک پہنچ سکتی ہے۔ 511 بائٹ، اور اقدار 3.6 MB کیشے کے لیے۔ درخت میں سطحوں کی تعداد (طول و عرض کی تعداد) 31 ہے۔

ایک اور دلچسپ نکتہ۔ آپ اوپری سطح کے نوڈس کی قدروں کی وضاحت کیے بغیر ایک درخت بنا سکتے ہیں۔

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3

خالی حلقے ایسے نوڈس ہیں جن کی کوئی قدر تفویض نہیں کی گئی ہے۔

گلوبلز کو بہتر طور پر سمجھنے کے لیے، آئیے ان کا دوسرے درختوں سے موازنہ کریں: باغ کے درخت اور فائل سسٹم کے نام کے درخت۔

آئیے عالمی سطح پر درختوں کا ہمارے لیے سب سے زیادہ مانوس درجہ بندی کے ڈھانچے کے ساتھ موازنہ کریں: باغات اور کھیتوں میں اگنے والے عام درختوں کے ساتھ ساتھ فائل سسٹم کے ساتھ۔

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

جیسا کہ ہم باغ کے درختوں میں دیکھتے ہیں، پتے اور پھل صرف شاخوں کے سروں پر پائے جاتے ہیں۔
فائل سسٹمز - معلومات صرف شاخوں کے سروں پر محفوظ کی جاتی ہیں، جو مکمل طور پر اہل فائل کے نام ہیں۔

اور یہاں عالمی ڈیٹا کا ڈھانچہ ہے۔

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1اختلافات:

  1. اندرونی نوڈس: گلوبل میں معلومات کو ہر نوڈ میں ذخیرہ کیا جا سکتا ہے، نہ صرف شاخوں کے سروں پر۔
  2. بیرونی نوڈس: عالمی شاخوں کے سروں پر قدروں کا تعین کرنا ضروری ہے، جبکہ FS اور باغیچے کے درخت ایسا نہیں کرتے۔



اندرونی نوڈس کے لحاظ سے، ہم کہہ سکتے ہیں کہ گلوبل کا ڈھانچہ فائل سسٹم اور باغ کے درختوں میں نام کے درختوں کی ساخت کا ایک سپر سیٹ ہے۔ وہ. زیادہ لچکدار.

عام طور پر، عالمی ہے ہر نوڈ میں ڈیٹا کو ذخیرہ کرنے کی صلاحیت کے ساتھ آرڈر شدہ درخت.

گلوبلز کے کام کو بہتر طور پر سمجھنے کے لیے، آئیے تصور کریں کہ کیا ہوگا اگر فائل سسٹم کے تخلیق کار معلومات کو ذخیرہ کرنے کے لیے گلوبلز جیسا طریقہ استعمال کریں؟

  1. کسی ڈائرکٹری میں ایک فائل کو حذف کرنے سے ڈائرکٹری خود بخود حذف ہو جائے گی، ساتھ ہی ساتھ تمام اوورلینگ ڈائرکٹریز جن میں صرف ایک ڈائرکٹری کو حذف کیا گیا ہے۔
  2. ڈائریکٹریز کی ضرورت نہیں ہوگی۔ یہاں صرف ذیلی فائلوں والی فائلیں ہوں گی اور فائلیں بغیر سب فائلوں کے۔ اگر ایک عام درخت سے موازنہ کیا جائے تو ہر شاخ پھل بن جائے گی۔

    گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

  3. README.txt فائلوں جیسی چیزوں کی شاید ضرورت نہ ہو۔ ڈائرکٹری کے مندرجات کے بارے میں جو کچھ کہنے کی ضرورت ہے وہ ڈائرکٹری فائل میں ہی لکھی جا سکتی ہے۔ پاتھ اسپیس میں، فائل کا نام ڈائرکٹری کے نام سے الگ نہیں کیا جا سکتا، لہذا صرف فائلوں کے ذریعے حاصل کرنا ممکن تھا۔
  4. نیسٹڈ سب ڈائرکٹریز اور فائلوں کے ساتھ ڈائریکٹریز کو حذف کرنے کی رفتار ڈرامائی طور پر بڑھ جائے گی۔ Habré پر کئی بار اس بارے میں مضامین آئے ہیں کہ لاکھوں چھوٹی فائلوں کو حذف کرنا کتنا طویل اور مشکل ہے (1, 2)۔ تاہم، اگر آپ عالمی سطح پر ایک سیوڈو فائل سسٹم بناتے ہیں، تو اس میں سیکنڈ یا اس کے کچھ حصے لگیں گے۔ جب میں نے گھریلو کمپیوٹر پر ذیلی درختوں کو حذف کرنے کا تجربہ کیا تو اس نے 1 سیکنڈ میں ایچ ڈی ڈی (ایس ایس ڈی نہیں) پر دو درجے کے درخت سے 96-341 ملین نوڈس کو ہٹا دیا۔ مزید یہ کہ، ہم درخت کے کچھ حصے کو حذف کرنے کے بارے میں بات کر رہے ہیں، اور نہ صرف گلوبلز کے ساتھ پوری فائل کو۔

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1
ذیلی درختوں کو ہٹانا گلوبلز کا ایک اور مضبوط نقطہ ہے۔ آپ کو اس کے لیے تکرار کی ضرورت نہیں ہے۔ یہ ناقابل یقین حد تک تیزی سے ہوتا ہے۔

ہمارے درخت میں یہ حکم کے ساتھ کیا جا سکتا ہے۔ کو مار ڈالو.

Kill ^a("+7926X")

گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 1

عالمی سطح پر ہمارے لیے کون سے اعمال دستیاب ہیں اس کی بہتر تفہیم کے لیے، میں ایک مختصر جدول فراہم کروں گا۔

COS میں گلوبلز کے ساتھ کام کرنے کے لیے بنیادی کمانڈز اور فنکشنز

سیٹ کریں
شاخوں کو نوڈ پر سیٹ کرنا (اگر ابھی تک وضاحت نہیں کی گئی ہے) اور نوڈ کی اقدار

ضم کریں
ذیلی درخت کو کاپی کرنا

کو مار ڈالو
ذیلی درخت کو ہٹانا

زیڈ کِل
ایک مخصوص نوڈ کی قدر کو حذف کرنا۔ نوڈ سے ابھرنے والے ذیلی درخت کو چھوا نہیں جاتا ہے۔

$Query
درخت کی گہرائی میں جانا، درخت کا مکمل عبور

$Order
ایک مخصوص نوڈ کی شاخوں کو عبور کرنا

$Data
چیک کر رہا ہے کہ آیا نوڈ کی وضاحت کی گئی ہے۔

$اضافہ
جوہری طور پر نوڈ کی قدر میں اضافہ کرنا۔ ACID کے لیے پڑھنے اور لکھنے سے بچنے کے لیے۔ حال ہی میں اسے تبدیل کرنے کی سفارش کی گئی ہے۔ $Sequence

آپ کی توجہ کا شکریہ، ہم آپ کے سوالات کا جواب دینے کے لیے تیار ہیں۔

اعلانِ لاتعلقی: یہ مضمون اور اس پر میرے تبصرے میری رائے ہیں اور ان کا انٹر سسٹم کارپوریشن کی سرکاری پوزیشن سے کوئی تعلق نہیں ہے۔

تسلسل گلوبلز ڈیٹا کو ذخیرہ کرنے کے لیے خزانہ کی تلوار ہیں۔ درخت حصہ 2. آپ سیکھیں گے کہ عالمی سطح پر کس قسم کے ڈیٹا کو ظاہر کیا جا سکتا ہے اور کن کاموں پر وہ زیادہ سے زیادہ فائدہ فراہم کرتے ہیں۔

ماخذ: www.habr.com

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