Associative array
کمپیوٹر سائنس میں، ایک ملحقہ صف، نقشہ، علامت کی میز، یا لغت ایک تجریدی ڈیٹا کی قسم ہے جو (کلید، قدر) جوڑوں کا مجموعہ محفوظ کرتی ہے، اس طرح کہ ہر ممکنہ کلید مجموعہ میں زیادہ سے زیادہ ایک بار ظاہر ہوتی ہے۔ ریاضیاتی اصطلاحات میں، ایک ملحقہ صف ایک فنکشن ہے جس میں محدود ڈومین ہوتا ہے۔ یہ 'تلاش'، 'ہٹائیں'، اور 'داخل کریں' کارروائیوں کی حمایت کرتا ہے۔ لغت کا مسئلہ موثر ڈیٹا ڈھانچے کو ڈیزائن کرنے کا کلاسیکی مسئلہ ہے جو ایسوسی ایٹیو صفوں کو نافذ کرتا ہے۔ لغت کے مسئلے کے دو بڑے حل ہیش ٹیبل اور سرچ ٹری ہیں۔ بعض اوقات براہ راست خطاب کردہ صفوں، بائنری سرچ ٹریز، یا دیگر خصوصی ڈھانچوں کا استعمال کرتے ہوئے مسئلہ کو حل کرنا بھی ممکن ہے۔ بہت سی پروگرامنگ زبانیں قدیم ڈیٹا کی اقسام کے طور پر ایسوسی ایٹیو صفوں کو شامل کرتی ہیں، جبکہ بہت سی دوسری زبانیں سافٹ ویئر لائبریریاں فراہم کرتی ہیں جو ایسوسی ایٹیو صفوں کی حمایت کرتی ہیں۔ مواد ایڈریس ایبل میموری ایسوسی ایٹیو صفوں کے لیے براہ راست ہارڈ ویئر کی سطح کی حمایت کی ایک شکل ہے۔ ایسوسی ایٹیو صفوں میں بہت سی ایپلی کیشنز ہوتی ہیں جن میں میموائزیشن اور ڈیکوریٹر پیٹرن جیسے بنیادی پروگرامنگ پیٹرن شامل ہیں۔ یہ نام ریاضی میں معروف ایسوسی ایٹیو پراپرٹی سے نہیں آیا ہے۔ بلکہ، یہ چابیاں کے ساتھ اقدار کی وابستگی سے پیدا ہوتا ہے۔ اسے ایسوسی ایٹیو پروسیسرز کے ساتھ الجھن میں نہیں ڈالنا چاہیے۔ ایک ایسوسی ایٹیو صف میں، کلید اور قدر کے درمیان ایسوسی ایشن کو اکثر "میپنگ" کے نام سے جانا جاتا ہے ؛ وہی لفظ ایک نئی ایسوسی ایشن بنانے کے عمل کا حوالہ دینے کے لیے بھی استعمال کیا جا سکتا ہے۔ عام طور پر ایسوسی ایٹیو ایرے کے لیے جن کارروائیوں کی وضاحت کی جاتی ہے وہ ہیں: داخل کریں یا ڈالیں: کلیکشن میں ایک نیا جوڑا شامل کریں، اس کی نئی قیمت کی کلید کی نقشہ سازی کریں۔ کسی بھی موجودہ نقشہ سازی کو ختم کر دیا جاتا ہے۔ اس عمل کے دلائل کلیدی اور قدر ہیں۔ ہٹائیں یا حذف کریں: کلیکشن سے ایک جوڑی کو ہٹا دیں، دی گئی کلید کو اس کی قیمت سے بے نقاب کریں۔ اس آپریشن کی دلیل کلیدی ہے۔ تلاش کریں، تلاش کریں، یا حاصل کریں: وہ قدر (اگر کوئی ہو) تلاش کریں جو کسی دی گئی کلید سے منسلک ہو۔ اس آپریشن کی دلیل کلیدی ہے، اور قیمت آپریشن سے واپس آتی ہے۔ اگر کوئی ویلیو نہیں ملتی ہے، تو کچھ تلاش کے افعال ایک رعایت اٹھاتے ہیں، جبکہ دوسرے ڈیفالٹ ویلیو واپس کرتے ہیں (جیسے صفر، کالعدم، یا کنسٹرکٹر کو منتقل کردہ ایک مخصوص ویلیو)۔ ایسوسی ایٹیو صفوں میں دیگر کارروائیاں بھی شامل ہو سکتی ہیں جیسے کہ نقشہ سازی کی تعداد کا تعین کرنا یا تمام نقشہ سازی کو لوپ کرنے کے لیے ایک آئیٹریٹر بنانا۔ اس طرح کی کارروائیوں کے لیے، جس ترتیب میں نقشے واپس کیے جاتے ہیں وہ عام طور پر عمل درآمد سے متعین ہوتا ہے۔ ملٹی میپ ایک واحد کلید کے ساتھ متعدد اقدار کو منسلک کرنے کی اجازت دے کر ایک ایسوسی ایٹیو صف کو عام کرتا ہے۔ دو طرفہ نقشہ ایک متعلقہ تجریدی ڈیٹا کی قسم ہے جس میں نقشہ سازی دونوں سمتوں میں کام کرتی ہے: ہر قدر کو ایک منفرد کلید سے منسلک ہونا چاہیے، اور دوسرا تلاش آپریشن ایک قدر کو ایک دلیل کے طور پر لیتا ہے اور اس قدر سے وابستہ کلید کو دیکھتا ہے۔ ملحقہ صف کی کارروائیوں کو مختلف خصوصیات کو پورا کرنا چاہیے: تلاش (کے، داخل (جے، وی، ڈی)) = اگر کے = = جے تو وی بصورت دیگر تلاش (کے، ڈی) تلاش (کے، نیا ()) = ناکام، جہاں فیل ایک مستثنی یا ڈیفالٹ ویلیو ہٹانا ہے (کے، داخل (جے، وی، ڈی)) = اگر کے = = جے ہٹائیں (کے، ڈی) بصورت دیگر داخل کریں (جے، وی، ہٹائیں (کے، ڈی)) ہٹائیں (کے، نیا () = نیا () جہاں کے اور جے چابیاں ہیں، وی ایک ویلیو ہے، ڈی ایک ملحقہ صف ہے، اور نیا () ایک نیا، خالی ملحقہ صف بناتا ہے۔ مثال کے طور پر فرض کریں کہ لائبریری کے ذریعے دیے گئے قرضوں کا مجموعہ ڈیٹا ڈھانچے میں پیش کیا جاتا ہے۔ لائبریری میں موجود ہر کتاب کو ایک وقت میں صرف ایک لائبریری سرپرست ہی چیک کر سکتا ہے۔ تاہم، ایک واحد سرپرست متعدد کتابیں چیک کرنے کے قابل ہو سکتا ہے۔ لہذا، یہ معلومات کہ کون سی کتابیں چیک کی جاتی ہیں کہ کون سے سرپرستوں کی نمائندگی ایک ایسوسی ایٹیو صف کے ذریعے کی جا سکتی ہے، جس میں کتابیں کلیدیں ہیں اور سرپرست اقدار ہیں۔ ازگر یا جے ایس او این سے اشارے کا استعمال کرتے ہوئے، اعداد و شمار کا ڈھانچہ یہ ہوگا: {"فخر اور تعصب": "ایلس"، "ووتھرنگ ہائٹس": "ایلس"، "عظیم توقعات": "جان"} کلیدی "عظیم توقعات" پر ایک تلاش آپریشن "جان" واپس کرے گا۔ اگر جان اپنی کتاب واپس کرتا ہے، تو اس سے حذف کرنے کا عمل شروع ہو جاتا ہے، اور اگر پیٹ کسی کتاب کی جانچ کرتا ہے، جس سے اندراج کا عمل شروع ہو جاتا ہے، جس سے ایک مختلف حالت پیدا ہو جاتی ہے: {"فخر اور تعصب": "ایلس"، "دی برادرز کرمازوف": "پیٹ"، "ووتھرنگ ہائٹس": "ایلس"] نفاذ بہت کم نقشہ سازی والی لغتوں کے لیے، ایسوسی ایشن لسٹ، نقشہ سازی کی منسلک فہرست کا استعمال کرتے ہوئے لغت کو نافذ کرنا سمجھ میں آسکتا ہے۔ اس نفاذ کے ساتھ، بنیادی لغت کی کارروائیوں کو انجام دینے کا وقت نقشہ سازی کی کل تعداد میں لکیری ہے ؛ تاہم، اس پر عمل درآمد کرنا آسان ہے اور اس کے چلنے کے وقت میں مستقل عوامل کم ہیں۔ عمل درآمد کی ایک اور بہت آسان تکنیک، جو اس وقت قابل استعمال ہوتی ہے جب چابیاں ایک تنگ رینج تک محدود ہوتی ہیں، وہ براہ راست ایک صف میں ایڈریس کرنا ہے: کسی دی گئی کلیدی k کی قیمت صف سیل A [k] میں محفوظ کی جاتی ہے، یا اگر k کے لیے کوئی نقشہ سازی نہیں ہے تو سیل ایک خاص سینٹینل ویلیو اسٹور کرتا ہے جو نقشہ سازی کی کمی کی نشاندہی کرتا ہے۔ یہ تکنیک سادہ اور تیز ہے، جس میں ہر ڈکشنری آپریشن میں مستقل وقت لگتا ہے۔ تاہم، اس ڈھانچے کے لیے جگہ کی ضرورت پوری کلیدی جگہ کا سائز ہے، جس سے یہ ناقابل عمل ہو جاتا ہے جب تک کہ کلیدی جگہ چھوٹی نہ ہو۔ لغتوں کو نافذ کرنے کے دو بڑے طریقے ہیش ٹیبل یا سرچ ٹری ہیں۔ ہیش ٹیبل کے نفاذ ایک ملحقہ صف کا سب سے زیادہ استعمال ہونے والا عام مقصد کا نفاذ ہیش ٹیبل کے ساتھ ہوتا ہے: ایک صف جو ہیش فنکشن کے ساتھ مل کر ہر کلید کو صف کی ایک علیحدہ "بالٹی" میں الگ کرتی ہے۔ ہیش ٹیبل کے پیچھے بنیادی خیال یہ ہے کہ اس کے انڈیکس کے ذریعے کسی صف کے عنصر تک رسائی حاصل کرنا ایک آسان، مستقل وقت کا عمل ہے۔ لہذا، ہیش ٹیبل کے لیے کسی آپریشن کا اوسط اوور ہیڈ صرف کلید کے ہیش کا حساب ہوتا ہے، جو صف کے اندر متعلقہ بالٹی تک رسائی کے ساتھ مل کر ہوتا ہے۔ اس طرح، ہیش ٹیبل عام طور پر O (1) وقت میں کارکردگی کا مظاہرہ کرتے ہیں، اور عام طور پر متبادل نفاذ سے بہتر کارکردگی کا مظاہرہ کرتے ہیں۔ ہیش ٹیبلز کو تصادم کو سنبھالنے کے قابل ہونا چاہیے: صف کی ایک ہی بالٹی میں دو مختلف چابیاں کی ہیش فنکشن کے ذریعے نقشہ سازی۔ اس مسئلے کے دو سب سے زیادہ وسیع نقطہ نظر الگ الگ چیننگ اور اوپن ایڈریسنگ ہیں۔ علیحدہ چیننگ میں، صف خود قدر کو ذخیرہ نہیں کرتی بلکہ ایک پوائنٹر کو دوسرے کنٹینر میں محفوظ کرتی ہے، عام طور پر ایک ایسوسی ایشن لسٹ، جو ہیش سے مماثل تمام اقدار کو محفوظ کرتی ہے۔ اس کے برعکس، اوپن ایڈریسنگ میں، اگر ہیش کا تصادم پایا جاتا ہے، تو میز قدر کو تعیناتی انداز میں ذخیرہ کرنے کے لیے صف میں ایک خالی جگہ تلاش کرتی ہے، عام طور پر صف میں اگلی فوری پوزیشن کو دیکھ کر۔ جب میز زیادہ تر خالی ہوتی ہے تو اوپن ایڈریسنگ میں علیحدہ چیننگ کے مقابلے میں کیش مس کا تناسب کم ہوتا ہے۔ تاہم، جیسے جیسے میز مزید عناصر سے بھر جاتی ہے، اوپن ایڈریسنگ کی کارکردگی تیزی سے کم ہوتی جاتی ہے۔ مزید برآں، علیحدہ چیننگ زیادہ تر معاملات میں کم میموری کا استعمال کرتی ہے، جب تک کہ اندراجات بہت چھوٹے نہ ہوں (پوائنٹر کے سائز سے چار گنا کم)۔ درختوں کے نفاذ خود توازن بائنری سرچ ٹری ایک اور عام نقطہ نظر یہ ہے کہ خود توازن بائنری سرچ ٹری، جیسے اے وی ایل ٹری یا ریڈ بلیک ٹری کے ساتھ ملحقہ صف کو نافذ کیا جائے۔ ہیش ٹیبلز کے مقابلے میں، ان ڈھانچوں میں طاقت اور کمزوری دونوں ہوتی ہیں۔ سیلف بیلنسنگ بائنری سرچ ٹریز کی بدترین کارکردگی ہیش ٹیبل کے مقابلے میں نمایاں طور پر بہتر ہے، جس میں O (لاگ n) کے بڑے O اشارے میں وقت کی پیچیدگی ہوتی ہے۔ یہ ہیش ٹیبلز کے برعکس ہے، جس کی بدترین کارکردگی میں تمام عناصر ایک بالٹی کا اشتراک کرتے ہیں، جس کے نتیجے میں O (n) وقت کی پیچیدگی پیدا ہوتی ہے۔ اس کے علاوہ، اور تمام بائنری سرچ ٹریز کی طرح، سیلف بیلنسنگ بائنری سرچ ٹری اپنے عناصر کو ترتیب میں رکھتے ہیں۔ اس طرح، اس کے عناصر کو عبور کرنا کم سے کم عظیم ترین نمونے کی پیروی کرتا ہے، جبکہ ہیش ٹیبل کو عبور کرنے کے نتیجے میں عناصر بظاہر بے ترتیب ترتیب میں ہو سکتے ہیں۔ چونکہ وہ ترتیب میں ہیں، اس لیے درخت پر مبنی نقشے رینج کے سوالات کو بھی پورا کر سکتے ہیں (دو حدود کے درمیان تمام اقدار تلاش کر سکتے ہیں) جبکہ ہیش میپ صرف درست اقدار تلاش کر سکتا ہے۔ تاہم، ہیش ٹیبلز میں O (1) کے سیلف بیلنسنگ بائنری سرچ ٹریز کے مقابلے میں اوسط کیس ٹائم کی پیچیدگی بہت بہتر ہوتی ہے، اور جب کوئی اچھا ہیش فنکشن استعمال کیا جاتا ہے تو ان کی بدترین کارکردگی کا امکان بہت کم ہوتا ہے۔ یہ بات قابل غور ہے کہ ایک خود توازن بائنری سرچ ٹری کو ہیش ٹیبل کے لیے بالٹیوں کو لاگو کرنے کے لیے استعمال کیا جا سکتا ہے جو علیحدہ چیننگ کا استعمال کرتا ہے۔ یہ اوسط کیس مستقل تلاش کی اجازت دیتا ہے، لیکن O (لاگ این) کی بدترین صورت حال کی کارکردگی کو یقینی بناتا ہے۔ تاہم، یہ عمل درآمد میں اضافی پیچیدگی متعارف کراتا ہے اور چھوٹے ہیش ٹیبلز کے لیے اس سے بھی بدتر کارکردگی کا سبب بن سکتا ہے، جہاں ٹری کو داخل کرنے اور توازن قائم کرنے میں صرف ہونے والا وقت منسلک فہرست یا اسی طرح کے ڈیٹا ڈھانچے کے تمام عناصر پر لکیری سرچ انجام دینے کے لیے درکار وقت سے زیادہ ہوتا ہے۔ دیگر درختوں کی ایسوسی ایٹیو صفوں کو غیر متوازن بائنری سرچ ٹریز میں یا ڈیٹا ڈھانچوں میں بھی محفوظ کیا جا سکتا ہے جو کسی خاص قسم کی چابیاں جیسے ریڈکس ٹریز، ٹرائز، جوڈی ایرے، یا وین ایمڈے بوس ٹریز کے لیے مخصوص ہیں، حالانکہ ان نفاذ کی متعلقہ کارکردگی مختلف ہوتی ہے۔ مثال کے طور پر، جوڈی ٹریز کو ہیش ٹیبلز کے مقابلے میں کم موثر کارکردگی کا مظاہرہ کرنے کے لیے اشارہ کیا جاتا ہے، جبکہ احتیاط سے منتخب کی گئی ہیش ٹیبلز عام طور پر انکولی ریڈکس ٹریز کے مقابلے میں زیادہ موثر کارکردگی کا مظاہرہ کرتی ہیں، ممکنہ طور پر ڈیٹا کی اقسام پر زیادہ پابندیوں کے ساتھ جو وہ سنبھال سکتے ہیں۔ ان متبادل ڈھانچوں کے فوائد اضافی ملحقہ صف کی کارروائیوں کو سنبھالنے کی ان کی صلاحیت سے آتے ہیں، جیسے کہ نقشہ سازی تلاش کرنا جس کی کلید پوچھ گچھ کی کلید کے قریب ہے جب نقشہ سازی کے سیٹ میں استفسار موجود نہیں ہوتا ہے۔ تقابلی ترتیب شدہ لغت لغت کی بنیادی تعریف کسی ترتیب کو لازمی نہیں بناتی ہے۔ گنتی کے ایک مقررہ ترتیب کی ضمانت کے لیے، ایسوسی ایٹیو صف کے ترتیب شدہ ورژن اکثر استعمال کیے جاتے ہیں۔ ترتیب شدہ لغت کے دو حواس ہوتے ہیں: ترتیب دے کر چابیاں کے دیئے گئے سیٹ کے لیے گنتی کی ترتیب ہمیشہ متعین ہوتی ہے۔ یہ درخت پر مبنی نفاذ کا معاملہ ہے، ایک نمائندہ C + + کا کنٹینر ہے۔ گنتی کی ترتیب کلیدی آزاد ہے اور اس کے بجائے اندراج کی ترتیب پر مبنی ہے۔ یہ. NET فریم ورک، جاوا اور ازگر کے لنکڈ ہاش میپ میں "آرڈرڈ ڈکشنری" کا معاملہ ہے۔ مؤخر الذکر زیادہ عام ہے۔ اس طرح کے ترتیب شدہ لغتوں کو ایسوسی ایشن لسٹ کا استعمال کرتے ہوئے، عام لغت کے اوپر دوگنا منسلک فہرست کو اوورلے کرکے، یا اصل ڈیٹا کو غیر معمولی (غیر ترتیب شدہ) صف سے باہر نکال کر اور گھنے اندراج کے حکم والے میں منتقل کرکے نافذ کیا جا سکتا ہے۔ زبان کی حمایت ایسوسی ایٹیو صفوں کو کسی بھی پروگرامنگ زبان میں ایک پیکیج کے طور پر لاگو کیا جا سکتا ہے اور بہت سے زبان کے نظام انہیں اپنی معیاری لائبریری کے حصے کے طور پر فراہم کرتے ہیں۔ کچھ زبانوں میں، وہ نہ صرف معیاری نظام میں بنائے جاتے ہیں، بلکہ ان میں خاص نحو ہوتی ہے، جو اکثر صف جیسی سبسکرپٹنگ کا استعمال کرتے ہیں۔ ایسوسی ایٹیو صفوں کے لیے بلٹ ان نحو سپورٹ 1969 میں SNOBOL4 کے ذریعے "ٹیبل" کے نام سے متعارف کرایا گیا تھا۔ ٹی ایم جی نے سٹرنگ کیز اور انٹیجر ویلیوز کے ساتھ ٹیبل پیش کیے۔ ایم یو ایم پی ایس نے کثیر جہتی ایسوسی ایٹیو صفوں کو، اختیاری طور پر مستقل، اس کا کلیدی ڈیٹا ڈھانچہ بنایا۔ ایس ای ٹی ایل نے سیٹوں اور نقشوں کے ممکنہ نفاذ کے طور پر ان کی حمایت کی۔ زیادہ تر جدید اسکرپٹنگ زبانیں، جو اے ڈبلیو کے سے شروع ہوتی ہیں اور جن میں ریکس، پرل، پی ایچ پی، ٹی سی ایل، جاوا اسکرپٹ، میپل، ازگر، روبی، وولفرم زبان، گو، اور لوا شامل ہیں، بنیادی کنٹینر کی قسم کے طور پر ایسوسی ایٹیو صفوں کی حمایت کرتی ہیں۔ بہت سی اور زبانوں میں، وہ خصوصی نحو کے بغیر لائبریری افعال کے طور پر دستیاب ہیں۔ سمال ٹاک، آبجیکٹیو-سی،. نیٹ، ازگر، ریئل بیسک، سوئفٹ، وی بی اے اور ڈیلفی میں انہیں لغت کہا جاتا ہے۔ پرل، روبی اور سیڈ 7 میں انہیں ہیش کہا جاتا ہے۔ سی + +، جاوا، گو، کلوجر، اسکالا، او سی اے ایم ایل، ہاسکل میں انہیں نقشے کہا جاتا ہے (نقشہ (سی + +)، غیر ترتیب شدہ نقشہ (سی + +)، اور دیکھیں) ؛ کامن لیسپ اور ونڈوز پاور شیل میں، انہیں ہیش ٹیبل کہا جاتا ہے (چونکہ دونوں عام طور پر اس عمل کو استعمال کرتے ہیں) ؛ میپل اور لوا میں، انہیں ٹیبل کہا جاتا ہے۔ پی ایچ پی میں، تمام صفوں کو منسلک کیا جا سکتا ہے، سوائے اس کے کہ چابیاں انٹیجرز اور سٹرنگز تک محدود ہیں۔ جاوا اسکرپٹ میں (جے ایس او این بھی دیکھیں)، تمام آبجیکٹ سٹرنگ ویلیوڈ کیز کے ساتھ ایسوسی ایٹیو صفوں کے طور پر برتاؤ کرتے ہیں، جبکہ میپ اور ویک میپ کی اقسام صوابدیدی آبجیکٹ کو کلیدوں کے طور پر لیتے ہیں۔ لوا میں، انہیں تمام ڈیٹا ڈھانچوں کے لیے ابتدائی بلڈنگ بلاک کے طور پر استعمال کیا جاتا ہے۔ بصری فاکس پرو میں، انہیں کلیکشنز کہا جاتا ہے۔ ڈی زبان ایسوسی ایٹیو صفوں کی بھی حمایت کرتی ہے۔ ایسوسی ایٹیو صفوں کا استعمال کرنے والے بہت سے پروگراموں کو اس ڈیٹا کو زیادہ مستقل شکل میں ذخیرہ کرنے کی ضرورت ہوگی، جیسے کہ کمپیوٹر فائل۔ اس مسئلے کا ایک عام حل ایک عمومی تصور ہے جسے آرکائیونگ یا سیریلائزیشن کے نام سے جانا جاتا ہے، جو اصل اشیاء کا متن یا بائنری نمائندگی پیدا کرتا ہے جسے براہ راست کسی فائل پر لکھا جا سکتا ہے۔ یہ سب سے زیادہ عام طور پر بنیادی آبجیکٹ ماڈل میں لاگو کیا جاتا ہے، جیسے. نیٹ یا کوکو، جس میں معیاری افعال شامل ہیں جو اندرونی ڈیٹا کو متن میں تبدیل کرتے ہیں۔ پروگرام ان طریقوں کو کال کرکے اشیاء کے کسی بھی گروپ کی مکمل متن کی نمائندگی بنا سکتا ہے، جو تقریبا ہمیشہ بیس ایسوسی ایٹیو ایرے کلاس میں پہلے ہی لاگو ہوتے ہیں۔ ان پروگراموں کے لیے جو بہت بڑے ڈیٹا سیٹ استعمال کرتے ہیں، اس قسم کی انفرادی فائل اسٹوریج مناسب نہیں ہے، اور ڈیٹا بیس مینجمنٹ سسٹم (ڈی بی) کی ضرورت ہے۔ کچھ ڈی بی سسٹم ڈیٹا کو سیریلائز کرکے اور پھر اس سیریلائزڈ ڈیٹا اور کلید کو اسٹور کرکے مقامی طور پر ایسوسی ایٹیو صفوں کو اسٹور کرتے ہیں۔ اس کے بعد انفرادی صفوں کو ان کا حوالہ دینے کے لیے کلید کا استعمال کرتے ہوئے ڈیٹا بیس سے لوڈ یا محفوظ کیا جا سکتا ہے۔ یہ کلیدی قیمت والے اسٹور کئی سالوں سے استعمال ہوتے رہے ہیں اور ان کی تاریخ زیادہ عام ریلیشنل ڈیٹا بیس (آر ڈی بی) تک ہے، لیکن دیگر وجوہات کے علاوہ، معیار کی کمی نے ان کے استعمال کو مخصوص طاق کرداروں تک محدود کر دیا۔ زیادہ تر معاملات میں ان کرداروں کے لیے آر ڈی بی کا استعمال کیا جاتا تھا، حالانکہ آر ڈی بی میں اشیاء کو محفوظ کرنا پیچیدہ ہو سکتا ہے، ایک مسئلہ جسے آبجیکٹ ریلیشن امپیڈینس میمیچ کہا جاتا ہے۔ اس کے بعد، کلاؤڈ کمپیوٹنگ کے لیے موزوں اعلی کارکردگی والے ڈیٹا بیس کی ضرورت اور ان کا استعمال کرنے والے پروگراموں کے اندرونی ڈھانچے سے زیادہ قریب سے مماثل ہونے کی وجہ سے کلیدی قیمت والے اسٹور مارکیٹ میں نشاۃ ثانیہ ہوا۔ یہ نظام مقامی انداز میں ملحقہ صفوں کو ذخیرہ اور بازیافت کر سکتے ہیں، جو عام ویب سے متعلق ورک فلوز میں کارکردگی کو بہت بہتر بنا سکتے ہیں۔ کلیدی قدر ڈیٹا بیس ٹپل فنکشن (ریاضی) جے ایس او این حوالہ جات بیرونی لنکس این آئی ایس ٹی کی ڈکشنری آف الگورتھم اینڈ ڈیٹا اسٹرکچرز: ایسوسی ایٹیو ارے خلاصہ ڈیٹا ٹائپز جامع ڈیٹا ٹائپز ڈیٹا ٹائپز