Architecture of Btrieve
بیٹریو ایک ڈیٹا بیس ہے جسے پرویسیو سافٹ ویئر نے تیار کیا ہے۔ بیٹریو کے فن تعمیر کو ریکارڈ مینجمنٹ کو ذہن میں رکھتے ہوئے ڈیزائن کیا گیا ہے۔ اس کا مطلب یہ ہے کہ بیٹریو صرف بنیادی ریکارڈ کی تخلیق، ڈیٹا کی بازیافت، ریکارڈ کو اپ ڈیٹ کرنے اور ڈیٹا کو حذف کرنے کے ابتدائی معاملات سے متعلق ہے۔ مائیکرو کرنل ڈیٹا بیس انجن کے ساتھ مل کر یہ آئی ایس اے ایم، انڈیکسڈ سیکوینشیل ایکسیس میتھڈ کو اپنے بنیادی اسٹوریج میکانزم کے طور پر استعمال کرتا ہے۔ بیٹریو بنیادی طور پر ایک ڈیٹا بیس ہے جو ڈیٹا کو منظم کرنے کے لیے کلیدوں اور اشاریہ جات کا استعمال کرتا ہے۔ تاہم، فائل کا ڈھانچہ خود بڑی حد تک ڈیٹا کی چھوٹی اکائیوں کے ارد گرد بنایا گیا ہے، جسے بیٹریو میں "پیجز" کہا جاتا ہے۔ اگرچہ بیٹریو کے مختلف ورژنوں میں ڈھانچہ بدل گیا ہے، لیکن فائل کا ڈھانچہ اب بھی فائل کنٹرول ریکارڈ (ایف سی آر) کے گرد گھومتا ہے-جو صفحات کی ترتیب کی وضاحت کرتا ہے-اور بیٹریو فائل کے صفحات جن میں ڈیٹا ہوتا ہے۔ تاریخی طور پر، بیٹریو نے "فزیکل پیجز"، یا ایسے پیجز استعمال کیے جو فائل میں مقررہ مقامات پر واقع تھے۔ ورژن 6 سے شروع کرتے ہوئے "منطقی صفحات" کا استعمال شروع ہوا، جنہیں پیج الاٹمنٹ ٹیبلز (پی اے ٹی) میں نقشہ بنایا گیا تھا-اس سے بیٹریو کو اپنی ریکارڈ اپ ڈیٹ تکنیک کو "پری امیج پیجنگ" سے "شیڈو پیجنگ" نامی تکنیک میں تبدیل کرنے کا موقع ملا۔ بیٹریو پسماندہ مطابقت کے لیے پرعزم ہے، کیونکہ بیٹریو کے ورژن 6.15 تک ایک معیاری فائل فارمیٹ استعمال کرتے ہیں اور، جب تک کہ بیٹریو 6.0 جاری نہیں ہوا، مکمل طور پر پسماندہ مطابقت رکھتے تھے۔ بیٹریو 6 نے نئی خصوصیات متعارف کروائیں اور مزید جدید خصوصیات کو نافذ کرنے کے لیے سافٹ ویئر کے پرانے ورژن کے ساتھ مطابقت کو توڑنا پڑا۔ اسی طرح اے پی آئی پیچھے کی طرف مطابقت رکھتا رہا، جس میں صرف ایک خصوصیت (علیحدہ میڈیا کے لیے فائلوں کو تقسیم کرنا) کو چھوڑ دیا گیا۔ ایک موقع پر، بیٹریو کے سابق سی ای او رون ہیرس نے کہا کہ "ورژن 1 اے پی آئی اب بھی ورژن 6.15 میں سپورٹ ہے، اور ہم اسے ہمیشہ کے لیے رکھنے جا رہے ہیں!"۔ ڈیٹا بیس کی اصطلاحات وسیع پیمانے پر ابتدائی طور پر بیٹریو کو بیان کرنے کے لیے "نیوی گیشنل ڈیٹا بیس" کی اصطلاح استعمال کی گئی تھی، لیکن بعد میں اسے "ٹرانزیکشنل ڈیٹا بیس" میں تبدیل کر دیا گیا۔ نیوی گیشنل ڈیٹا بیس کی اصطلاح کا استعمال غیر معمولی تھا کیونکہ نیوی گیشنل ڈیٹا بیس ڈیٹا ریکارڈز کے درمیان نیویگیٹ کرنے کے لیے "پوائنٹرز" اور "پاتھز" کا استعمال کرتا ہے، اور یہ پوائنٹرز ریکارڈ میں ہی موجود ہوتے ہیں۔ ISAM، جو کہ Btrieve کا بنیادی ڈھانچہ ہے، تلاش کے اوقات کو کم کرنے کے لیے ان پوائنٹرز کو ذخیرہ کرنے کے لیے ثانوی انڈیکس ٹیبل کا استعمال کرتا ہے۔ اس طرح، ڈیٹا بیس کی دو قسمیں مختلف ہیں، اور ہو سکتا ہے کہ اس کی وضاحت نہ ہو کہ پرویسیو نے اپنے ڈیٹا بیس کی درجہ بندی کے لیے مختلف اصطلاحات کا استعمال کیوں شروع کیا۔ مائیکرو کرنل ڈیٹا بیس انجن ورژن 6.15 سے شروع کرتے ہوئے، پرویسیو نے ڈیٹا بیس بیک اینڈ کو ڈویلپرز کے استعمال کردہ انٹرفیس سے الگ کرنے کا ایک نیا ماڈیولر طریقہ استعمال کرنا شروع کیا۔ انہوں نے بنیادی ڈیٹا بیس آپریشنز (جیسے اپ ڈیٹ، رائٹ اور ڈیلیٹ ریکارڈز) کو بیٹریو اور اسکیل ایبل ایس کیو ایل ماڈیولز سے الگ کیا۔ مائیکرو کرنل ڈیٹا بیس انجن (ایم کے ڈی ای) کو دیگر افعال سے الگ کرکے اس نے پروگرامرز کو بیک وقت ڈیٹا بیس تک رسائی کے کئی طریقے استعمال کرنے کی اجازت دی۔ مثال کے طور پر، بیٹریو اے پی آئی کا استعمال کرتے ہوئے ایک ایپلی کیشن بنائی جا سکتی ہے اور ایک اور ایپلی کیشن جسے ایک ہی ڈیٹا تک رسائی کی ضرورت ہے وہ بالکل مختلف طریقہ استعمال کر سکتی ہے، جیسے اسکیل ایبل ایس کیو ایل کا استعمال۔ چونکہ ریکارڈ پرائمیٹوز کو ان طریقوں سے الگ کر دیا گیا ہے، اس لیے دونوں ایپلی کیشنز ایک ہی ڈیٹا فائل تک رسائی کے لیے ایم کے ڈی ای کا استعمال کر سکتی ہیں۔ مائیکرو دانا ڈیٹا بیس انجن کا مائیکرو دانا آپریٹنگ سسٹم کے دانے سے کوئی تعلق نہیں ہے۔ پیجنگ بیٹریو فائل فارمیٹ مکمل طور پر صفحات پر مشتمل ہوتا ہے، جو وہ ڈیٹا ہوتا ہے جو انجن کے I/O آپریشن کے دوران میموری اور اسٹوریج میڈیا کے درمیان منتقل ہوتا ہے۔ 6. 0 سے پہلے کے ورژن صرف ڈیٹا پیجز، انڈیکس پیجز اور فائل کنٹرول ریکارڈ (ایف سی آر) استعمال کرتے تھے۔ فائل میں تلاش کے لیے ایک انڈیکس تھا جو فزیکل پیجز سے منسلک تھا۔ ورژن 6.0 سے شروع ہونے والے منطقی صفحات استعمال ہونے لگے، جو وہ صفحات ہیں جو پیج الاٹمنٹ ٹیبلز (پی اے ٹی) کے ایک سیٹ کے استعمال کے ذریعے ڈسک پر فزیکل پیجز (فائل میں ایک مقررہ مقام پر صفحات) پر نقشے بنائے جاتے ہیں۔ فائل کنٹرول ریکارڈ فائل کنٹرول ریکارڈ (ایف سی آر) بیٹریو ڈیٹا بیس فائلوں کے بارے میں اہم معلومات پر مشتمل ہے۔ اس میں صفحہ کا سائز، موجودہ استعمال میں صفحات کی تعداد، فائل کو انڈیکس کرنے والی چابیاں کی تعداد، فائل میں ریکارڈ کی تعداد اور دیگر تفصیلات ہوتی ہیں۔ ورژن 6 کے بعد بے کار پن کے لیے دو ایف سی آر استعمال کیے گئے۔ ایک 32 بٹ یوزز کاؤنٹ فیلڈ جو ہر ایف سی آر میں موجود ہے اس بات کا تعین کرنے کے لیے استعمال کیا جاتا ہے کہ کون سا ایف سی آر استعمال کرنے کے لیے درست تھا۔ ہر بار جب کسی فائل پر کوئی آپریشن کیا جاتا ہے تو فیلڈ میں اضافہ کیا جاتا ہے۔ سب سے زیادہ استعمال کی گنتی والا ایف سی آر درست ایف سی آر بن جاتا ہے۔ جم کائل کے ماخذ نمونوں پر ایف سی آر کو اچھی طرح سے بیان کیا گیا ہے۔ ایم کے ڈی ای ورژن 8 کے تعارف کے ساتھ، ایف سی آر پیج کا ڈھانچہ بدل گیا ہے۔ صفحہ کا سائز اب ایف سی آر کے اندر منتقل کر دیا گیا ہے اور یہ باقاعدہ 32 بٹ فیلڈ نہیں ہے۔ ورژن 8 کے بعد سے آپ کو آفسیٹ 0x2A پر 32 بٹ فیلڈ لے کر صفحہ کے سائز کا حساب لگانا ہوگا اور 256 سے ضرب دینی ہوگی۔ پیج الاٹمنٹ ٹیبل (پی اے ٹی) منطقی صفحات کو فزیکل پیجز پر نقش کرتا ہے۔ ہر پی اے ٹی صرف ایک فزیکل پیج ہے جو اچھی طرح سے متعین مقامات پر واقع ہے۔ ایف سی آر کی طرح، پی اے ٹی ہمیشہ جوڑوں میں ہوتے ہیں، جس میں فی الحال درست کاپی زیادہ استعمال کی گنتی سے ظاہر ہوتی ہے۔ پی اے ٹی کی پہلی جوڑی فوری طور پر پہلے دو ایف سی آر کی پیروی کرتی ہے اور جسمانی صفحات 2 اور 3 پر قبضہ کرتی ہے۔ دوسرے صفحات کی متغیر تعداد اس کے بعد آتی ہے، اور پی اے ٹی کی ایک نئی جوڑی اس کے بعد آتی ہے۔ ہر پی اے ٹی میں منطقی صفحات کے لیے ایک مقررہ تعداد میں اشارے ہوتے ہیں، جس میں ہر اندراج جو خالی ہوتا ہے اس کی قیمت صفر ہوتی ہے۔ پی اے ٹی میں ذخیرہ کیے جانے والے منطقی ریکارڈ کی مقدار کا تعین اس کے صفحہ کے سائز سے ہوتا ہے۔ ایم کے ڈی ای کے ورژن 6. x اور 7. x میں ہر پیج پوائنٹر 4 بائٹس کی جگہ لیتا ہے، اور پی اے ٹی ہیڈر 8 بائٹس لیتا ہے، لہذا پی اے ٹی میں منطقی صفحات کی مقدار بن جاتی ہے: منطقی صفحات کی تعداد = (صفحہ کا سائز 4)-8 ایم کے ڈی ای ورژن 8 کے تعارف کے ساتھ، پیج ہیڈر کا سائز بدل گیا اور اس لیے یہ فارمولا اب لاگو نہیں ہوتا ہے لیکن اصول وہی رہتا ہے۔ پری امیج پیجنگ بمقابلہ شیڈو پیجنگ ورژن 6.0 تک، ریکارڈز کو اپ ڈیٹ کرتے وقت پری امیج پیجنگ کا استعمال کیا جاتا تھا۔ اس میں تبدیلیاں کرنے سے پہلے ایک نئی "پری امیج فائل" کی تخلیق شامل تھی، اور پھر اصل ڈیٹا فائل کے صفحات کو عارضی طور پر اس نئی پری امیج فائل میں کاپی کیا گیا۔ اس کے بعد سسٹم اصل فائل میں تبدیلیاں کرے گا۔ اگر اپ ڈیٹ میں خلل پڑتا ہے اور پیج پر صرف آدھا ڈیٹا لکھا جاتا ہے، تو پیج کو انجن کے ذریعے پری امیج فائل سے پیج کو اصل ڈیٹا بیس فائل میں خراب شدہ پیج میں واپس کاپی کرکے واپس رول کیا جائے گا، پھر عارضی پری امیج فائل کو حذف کر دیا جائے گا۔ پری امیج فائلوں کو توسیع. پی آر ای دی گئی تھی، اس لیے سسٹم میں ان فائلوں کو تلاش کرنے سے عام طور پر اشارہ ملتا ہے کہ لین دین صحیح طریقے سے نہیں ہوا تھا اور بازیابی کامیاب نہیں ہوئی تھی۔ ورژن 6.0 سے شروع کرتے ہوئے، پری امیجنگ کے بجائے شیڈو پیجنگ کا استعمال کیا گیا تھا، اور یہ آج بھی استعمال ہوتا ہے۔ صفحہ کو عارضی فائل میں کاپی کرنے کے بجائے، ڈیٹا بیس فائل میں اگلا اسپیئر فزیکل لوکیشن مل گیا اور صفحہ اس لوکیشن پر لکھا گیا۔ اس صفحہ کو شیڈو پیج کہا جاتا ہے کیونکہ اس کا مقام ابھی تک فائل کے پی اے ٹی پر نہیں لکھا گیا ہے۔ شیڈو پیج پر اپ ڈیٹ مکمل ہونے کے بعد، پی اے ٹی کو اپ ڈیٹ کیا گیا اور فائل میں اگلے دستیاب اور موجودہ فزیکل پیج کے پی اے ٹی میں اندراج ریکارڈ کیا گیا۔ تاہم، اگر شیڈو پیج پر اپ ڈیٹ کرتے وقت سسٹم کی ناکامی واقع ہوئی تو پی اے ٹی کو اپ ڈیٹ نہیں کیا جائے گا اور اس لیے تبدیلی کو ختم کر دیا جائے گا کیونکہ پی اے ٹی میں موجودہ اور اگلی اندراج کو اپ ڈیٹ نہیں کیا گیا تھا۔ پری امیج پیجنگ سے شیڈو پیجنگ میں تبدیلی کی وجہ سے فائل کی شکل میں بنیادی تبدیلیاں ہوئیں جس نے بیٹریو کے پچھلے ورژن اور پروڈکٹ کے ورژن 6. x کے درمیان مطابقت کو توڑ دیا۔ متبادل کولیٹنگ سیکوینس پیجز متبادل کولیٹنگ سیکوینس (اے سی ایس) پیجز وہ پیجز ہیں جو ریکارڈ کو مختلف ترتیب میں ترتیب دینے کی اجازت دیتے ہیں۔ کولیشن تحریری معلومات کو معیاری ترتیب میں جمع کرنا ہے۔ عام استعمال میں، اسے حروف تہجی کہا جاتا ہے، حالانکہ مجموعہ حروف تہجی کے حروف ترتیب دینے تک محدود نہیں ہے۔ مثال کے طور پر، ایک اے سی ایس کیس حساس اور کیس غیر حساس دونوں ترتیب میں ترتیب دینے کی اجازت دے سکتا ہے۔ ورژن 6 سے پہلے فائل میں صرف ایک اے سی ایس محفوظ کیا جا سکتا تھا، تاہم 6 کے جاری ہونے کے بعد کسی بھی وقت ایک سے زیادہ اے سی ایس پیج کو فائل سے منسلک کیا جا سکتا تھا۔ اضافی صفحات ورژن 6 اور اس کے بعد کی فائلوں میں، اصل میں استعمال ہونے والے صفحات سے زیادہ فزیکل پیجز موجود ہو سکتے ہیں۔ اس کی وجہ یہ ہے کہ شیڈو پیجنگ کے ساتھ سسٹم کے کچھ صفحات میں پی اے ٹی میں اندراج نہیں ہو سکتا ہے۔ ان صفحات کو "اضافی" صفحات کے طور پر نشان زد کیا جاتا ہے، اور نئے صفحات کے لیے جگہ مختص کرنے سے پہلے استعمال کیا جاتا ہے۔ متغیر دم الاٹمنٹ ٹیبلز بیٹریو میں، ہر صفحہ طے کیا جاتا ہے لیکن ریکارڈ صفحہ کے سائز سے بڑا ہو سکتا ہے۔ اس کا مطلب یہ ہے کہ ریکارڈز کو اکثر ٹکڑے ٹکڑے کرنے اور بہت سے مختلف صفحات پر پھیلانے کی ضرورت ہوتی ہے۔ بہت بڑے ریکارڈ کے ساتھ اس کا مطلب یہ ہو سکتا ہے کہ ریکارڈ کو محفوظ کرنے کے لیے سینکڑوں صفحات استعمال کرنے کی ضرورت پڑ سکتی ہے۔ ایک منسلک فہرست کا نقطہ نظر اس ٹکڑے ٹکڑے کرنے کی اجازت دے سکے گا، لیکن بیٹریو انجن کو ترتیب وار ریکارڈوں کو پڑھنے میں مشکل پیش آئے گی۔ لہذا، ورژن 6.1 سے شروع کرتے ہوئے، فائل میں ایک ٹیبل استعمال کیا جاتا ہے جو ڈیٹا ریکارڈ بنانے والے ہر صفحے کی طرف اشارہ کرتا ہے۔ اس ٹیبل کو متغیر دم الاٹمنٹ ٹیبل (وی اے ٹی) کہا جاتا ہے۔ انڈیکسنگ بیٹریو مخصوص ٹیبل کالموں پر ریکارڈ انڈیکس کو ذخیرہ کرنے کے لیے بی-ٹری فارمیٹ کا استعمال کرتا ہے۔ انڈیکس ان قطاروں کے لیے منفرد شناخت کاروں کے سیٹ پر انڈیکس شدہ کالم اقدار کے ہر سیٹ کا نقشہ بناتا ہے جن میں وہ کالم اقدار ہوتی ہیں، جو انڈیکس شدہ کالم کا استعمال کرتے ہوئے ٹیبل کے اندر قطاروں کو تلاش کرنے کا ایک تیز طریقہ فراہم کرتا ہے۔ بی-ٹری ٹری ڈیٹا ڈھانچے ہیں اور تیزی سے ڈیٹا کی بازیافت کے طریقہ کار کے طور پر بہت موثر ہیں۔ بی ٹری کی خرابی یہ ہے کہ جب ڈیٹا کو ٹری میں ڈالا جاتا ہے تو اسے مستقل طور پر متوازن ہونا چاہیے، اس لیے بی ٹرییو صرف ریکارڈ انڈیکس کو بی ٹری کے طور پر محفوظ کرتا ہے تاکہ ریکارڈ داخل کرنے اور اپ ڈیٹ کرنے میں لگنے والے وقت کو کم کیا جا سکے۔ نظام میں ہر اشاریہ کے لیے ایک علیحدہ بی-ٹری رکھا جاتا ہے، اور جڑ نوڈ کی معلومات ایف سی آر میں رکھی جاتی ہے۔ بیٹریو 6. x میں فائل بنانے کے وقت ایک نیا انڈیکس بنایا جا سکتا ہے، یا فائل بنانے کے بعد شامل اور گرایا جا سکتا ہے۔ انڈیکس پیجز بھی ضرورت کے مطابق بنائے جاتے ہیں۔ بیٹریو 6 سے پہلے موجودہ کلیدی اشاریہ جات کو ہٹایا نہیں جا سکتا تھا، حالانکہ ضمیمہ اشاریہ جات کو ضرورت کے مطابق بنایا اور گرایا جا سکتا تھا۔ بیٹریو انڈیکس میں کلیدی اقدار کی نقل کی اجازت دیتا ہے۔ بیٹریو یا تو منسلک ڈپلیکیٹ طریقہ استعمال کرتے ہوئے، یا دہرائے جانے والے ڈپلیکیٹ طریقہ استعمال کرتے ہوئے ڈپلیکیٹ کلیدوں کو سنبھالتا ہے (یہ اصطلاح اس وقت استعمال ہونا شروع ہوئی جب ورژن 6.0 جاری کیا گیا تھا)۔ منسلک ڈپلیکیٹ طریقہ کار میں ڈپلیکیٹ چابیاں کی دوگنا منسلک فہرست کے سر اور دم کی طرف اشارہ کرنے کے لیے انڈیکس پیج میں ہی ریکارڈ پوائنٹرز کا ایک جوڑا استعمال کیا گیا۔ اس کا مطلب یہ تھا کہ فہرست میں ڈپلیکیٹ چابیاں اسی ترتیب میں درج کی گئی تھیں۔ ڈپلیکیٹ کلیدی طریقہ نے منسلک فہرست کا استعمال نہیں کیا، بلکہ ایک نئی انڈیکس کلید بنا کر اور کلید کے آخر میں ریکارڈ پوائنٹر کا پتہ جوڑ کر تمام کلیدوں کو منفرد بنا دیا۔ اس کا مطلب یہ ہے کہ کلید کو اس کی پوزیشن آرڈر کے ذریعے بازیافت کیا جاتا ہے۔ فائل شیئرنگ جب بیٹریو کو ریکارڈز تک رسائی حاصل کرنے کے لیے فائل شیئرنگ کرنے کی ضرورت ہوتی ہے، تو فائل شیئرنگ کے دو مختلف طریقے استعمال کیے جا سکتے ہیں: سنگل انجن فائل شیئرنگ (ایس ای ایف ایس) موڈ، اور ملٹی انجن فائل شیئرنگ (ایم ای ایف ایس) موڈ۔ ایس ای ایف ایس نے صرف ان کلائنٹس کو اجازت دی جنہوں نے ڈیٹا بیس کو تبدیل کرنے کے لیے اس انجن تک رسائی حاصل کی، دوسرے کلائنٹس جنہوں نے مختلف انجن تک رسائی حاصل کی وہ ڈیٹا بیس تک رسائی حاصل نہیں کر سکے۔ ایم ای ایف ایس ڈیٹا بیس تک رسائی حاصل کرنے کے لیے مختلف انجنوں کے تحت چلنے والے مختلف کلائنٹس کی اجازت دیتا ہے۔ کنکرنسی بیٹریو 6. x سیریز میں بیک وقت لین دین کو سنبھالنے میں کامیاب رہا۔ بیٹریو 6 سے پہلے انجن صرف فائل لیول لاکنگ یا خصوصی لاکنگ کر سکتا تھا۔ 6 سے آگے، ریکارڈز کو انفرادی طور پر لاک کیا جا سکتا تھا۔ ریکارڈ (یا صفحہ) کی سطح پر لاک کرنا کنکرنٹ لاکنگ کے نام سے جانا جاتا تھا۔ فوائد واضح تھے: ایک سے زیادہ کلائنٹ ایک ہی وقت میں فائل تک رسائی حاصل کر سکتے تھے، جب تک کہ وہ ایک ہی ریکارڈ تک رسائی حاصل کرنے کی کوشش نہ کر رہے ہوں، جس سے کارکردگی میں اضافہ ہوتا ہے۔ مزید برآں، دوسرے کلائنٹ لاک شدہ صفحات کو پڑھ سکتے تھے، اور ریکارڈ کو لاک کرنے والے کسی دوسرے عمل کے ذریعے تحریری لین دین میں شامل فائل میں کوئی تبدیلی نہیں دیکھ پائیں گے۔ ایم ای ایف ایس موڈ سمورتی لاکنگ کو مکمل طور پر سپورٹ نہیں کرتا تھا۔ اگر کوئی کلائنٹ بیک وقت لین دین شروع کرتا ہے اور پھر ریکارڈ پر تحریری عمل انجام دینے کی کوشش کرتا ہے، تو بیٹریو انجن ایک اسٹیٹس کوڈ 85 واپس کرے گا جس سے یہ ظاہر ہوتا ہے کہ فائل لاک تھی-حالانکہ بیک وقت لاک استعمال کیا جا رہا تھا۔ سسٹم اور صارف کے لین دین بیٹریو کے ورژن 6.15 سے شروع کرتے ہوئے، ایک نئی قسم کا ڈیٹا بیس لین دین متعارف کرایا گیا جسے سسٹم ٹرانزیکشن کہا جاتا ہے، جسے صارف کے لین دین سے الگ کیا گیا تھا۔ صارف کے لین دین خصوصی اور بیک وقت ہونے والے لین دین ہوتے ہیں جبکہ نظام کے لین دین غیر لین دین کی کارروائیوں اور/یا صارف کے لین دین کا ایک مجموعہ ہوتے ہیں۔ سسٹم ٹرانزیکشنز کو خصوصی طور پر ایم کے ڈی ای کے ذریعے ڈیٹا کی بازیابی کے لیے استعمال کیا گیا تھا۔ اگر سسٹم کی ناکامی ڈیٹا کی بدعنوانی کا سبب بنتی ہے تو جب ایم کے ڈی ای دوبارہ شروع ہوتا ہے تو یہ ان تمام فائلوں کا پتہ لگاتا ہے جن کا سسٹم ٹرانزیکشن ناکام ہوا تھا اور انہیں بازیافت کرنے کی کوشش کرتا ہے۔ تاہم، چونکہ آخری سسٹم ٹرانزیکشن کے واپس آنے پر صارف کے لین دین ضائع ہو چکے تھے، اس لیے ایک آپشن سیٹ کیا جا سکتا تھا جس کی وجہ سے انجن کو "اینڈ آپریشن" کی درخواست موصول ہونے پر ایم کے ڈی ای سسٹم ٹرانزیکشنز کو مکمل کرنے پر مجبور کر دیتا تھا۔ نوٹ حوالہ جات دہانسی، ایوڈیل (1 جنوری 1998)۔ بیٹریو اور اسکیل ایبل ایس کیو ایل 4 کو سمجھنا۔ کلیرین میگزین۔ ناول (کوئی تاریخ نہیں)۔ نیٹ ویئر بیٹریو کے اجزاء۔ اخذ شدہ بتاریخ دسمبر 12,2004. وسیع (1997)۔ DOS انسٹالیشن اور آپریشن دستی کے لیے Btrieve۔ پروڈکٹ دستی۔ وسیع (1998)۔ نیٹ ویئر این ایل ایم ایپلی کیشن سے اسٹیٹس 96۔ وسیع علم بیس مضمون (مضمون آئی ڈی: بی ٹی آر ٹی ٹی-97070801)۔ اخذ شدہ بتاریخ دسمبر 12,2004. وسیع (نومبر 1996)۔ ونڈوز این ٹی/ونڈوز 95 انسٹالیشن اور آپریشن کے لیے بیٹریو۔ پروڈکٹ دستی۔ سی فیڈلر (جولائی 2010)۔ بیٹریو ڈیٹا بیس فائل تک رسائی (پیج سائز کا پتہ لگانا)۔ dbcoretech (جولائی 2010)۔ بیٹریو ریکوری یوٹیلیٹی (اوپن سورس)۔ ملکیتی ڈیٹا بیس مینجمنٹ سسٹم