ہیشنگ تصورات  


تعارف  

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

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

پن

ڈوگرام کے اوپر اعداد و شمار کے بلاک ایڈریس کو بنیادی کلیدی قدر کی طرح دکھایا گیا ہے۔ یہ ہیش فنکشن سادہ ریاضی کا فنکشن بھی ہوسکتا ہے جیسے موڈ ، سینو ، کوس ، اسفونیشنل۔ تو مندرجہ بالا کیس کا کیا ہوتا ہے؟ یہ پرائمری کیز پر ماڈ (5) لاگو کرتا ہے اور بالترتیب 5،3,3,1,4،2،XNUMX اور XNUMX پیدا کرتا ہے اور ریکارڈ ان ڈیٹا بلاک ایڈریسز میں محفوظ ہوتا ہے۔

یہ بھی دیکھتے ہیں
ڈی بی ایم ایس اور ڈیٹا بیس کا ڈھانچہ ڈیٹا بیس مینجمنٹ سسٹم کا ڈھانچہ

پن

دو آریگرام کے اوپر سے اب یہ واضح ہوگیا ہے کہ ہیش کا فنکشن کیسے کام کرتا ہے۔

یہاں دو قسم کی ہیش فائل تنظیمیں ہیں۔ جامد اور متحرک ہشنگ۔

جامد ہیشنگ  

ہیشنگ کے اس طریقے میں ، نتیجے میں ڈیٹا بالٹی کا پتہ ہمیشہ ایک جیسے رہتا ہے۔ اس کا مطلب یہ ہے کہ ، اگر ہم EMP_ID = 103 کے لئے Mod (5) ہیش فنکشن کا استعمال کرتے ہوئے ایڈریس تیار کرنا چاہتے ہیں تو ، اس کا نتیجہ ہمیشہ اسی بالٹی ایڈریس 3 میں آجاتا ہے۔ یہاں بالٹی ایڈریس میں کوئی تبدیلی نہیں ہوگی۔ لہذا اس مستحکم ہیشنگ کی یاد میں ڈیٹا بالٹیوں کی تعداد پوری طرح برقرار ہے۔ ہماری مثال میں ، ہمارے پاس ڈیٹا کو محفوظ کرنے کے لئے استعمال ہونے والی میموری میں پانچ ڈیٹا بالٹیاں ہوں گی۔

پن

ریکارڈ ڈھونڈ رہا ہے

ہیش فنکشن کا استعمال کرتے ہوئے ، ڈیٹا بالٹی ایڈریس ہیش کی کلید کے ل is تیار ہوتا ہے۔ اس کے بعد ریکارڈ اس جگہ سے حاصل کیا جاسکتا ہے۔ یعنی؛ اگر ہم ID 104 کے لئے پورا ریکارڈ بازیافت کرنا چاہتے ہیں ، اور اگر آئی ڈی پر ہیش فنکشن موڈ (5) ہے تو ، پیدا کردہ ایڈریس 4 ہوگا۔ پھر ہمیں سیدھے نمبر 4 پر پتہ چل جائے گا اور ID 104 کے لئے پورا ریکارڈ بازیافت کریں گے۔ یہاں ID ہیش کی چابی کے طور پر کام کرتا ہے۔

ریکارڈ داخل کرنا

جب کسی نئے ریکارڈ کو جدول میں داخل کرنے کی ضرورت ہوگی ، تو ہم اس کی ہیش بٹن کی بنیاد پر نئے ریکارڈ کے ل a ایک پتہ تیار کریں گے۔ ایک بار جب پتہ تیار ہوجاتا ہے ، تو ریکارڈ اس جگہ پر محفوظ ہوجاتا ہے۔

ایک ریکارڈ حذف کریں

ہیش فنکشن کا استعمال کرتے ہوئے ہم پہلے ریکارڈ حاصل کریں گے جس کو حذف کیا جانا ہے۔ اس کے بعد ہم اس پتے کے ریکارڈ کو میموری میں حذف کردیں گے۔

ریکارڈ اپ ڈیٹ کریں

اپ ڈیٹ کے لئے نشان زدہ ڈیٹا ریکارڈ کو جامد ہیش فنکشن کا استعمال کرتے ہوئے تلاش کیا جائے گا اور پھر اس پتے میں ریکارڈ اپ ڈیٹ ہوجائے گا۔

یہ بھی دیکھتے ہیں
ڈیٹا بیس کی خصوصیات

 

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

ہیشنگ بند

اس طریقہ کار میں ہم ایک ہی پتے کے ساتھ ایک نئی ڈیٹا بالٹی متعارف کراتے ہیں اور پوری ڈیٹا بالٹی کے بعد اسے لنک کرتے ہیں۔ بالٹی کے اوور فلو پر قابو پانے کے ان طریقوں کو بند ہیشنگ یا کہا جاتا ہے اوور فلو سلسلہ بندی

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

پن

اوپن ہیسنگ

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

مندرجہ ذیل مثال میں ، آر 2 ایک نیا ریکارڈ ہے جسے داخل کرنے کی ضرورت ہے۔ لیکن ہیش فنکشن 237 کے بطور ایڈریس تیار کرتا ہے۔ لیکن یہ پہلے ہی بھرا ہوا ہے۔ لہذا یہ سسٹم اگلی دستیاب ڈیٹا بالٹی تلاش کرتا ہے ، اور اسے R238 تفویض کرتا ہے۔

یہ بھی دیکھتے ہیں
ڈیٹا بیس کے اجزاء

پن

لکیری تحقیقات میں ، پرانی بالٹی اور نئی بالٹی کے درمیان فرق عام طور پر طے ہوتا ہے اور یہ زیادہ تر معاملات میں 1 ہوگا۔

چوکور تفتیش

یہ لکیری جانچ پڑتال کی طرح ہے۔ لیکن یہاں ، پرانی اور نئی بالٹی کے درمیان فرق لکیری ہے۔ ہم نئی بالٹی پتے کا تعین کرنے کے لئے چکنے والی تقریب کا استعمال کرتے ہیں۔

ڈبل ہیشنگ

یہ بھی لکیری تحقیقات کا ایک اور طریقہ ہے۔ یہاں فرق کی طرح لائنر پروبنگ کی طرح طے کی گئی ہے ، لیکن یہ فکسڈ فرق کسی اور ہیش فنکشن کے استعمال سے لگایا جاتا ہے۔ لہذا نام ڈبل ہیشنگ ہے۔

متحرک ہیشنگ  

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

ٹیبل میں R1 ، R2 اور R4 کے تین ریکارڈ موجود ہیں۔ یہ ریکارڈ بالترتیب 100100 ، 010110 اور 110110 پتے تیار کرتے ہیں۔ ذخیرہ کرنے کا یہ طریقہ اس پتے کا صرف ایک حصہ سمجھتا ہے - خاص طور پر اعداد و شمار کو ذخیرہ کرنے کے لئے صرف ایک تھوڑا سا۔ لہذا یہ ان میں سے تین کو ایڈریس 0 اور 1 پر لوڈ کرنے کی کوشش کرتا ہے۔

یہاں R3 کا کیا ہوگا؟ R3 کے لئے بالٹی کی جگہ نہیں ہے۔ R3 کو ایڈجسٹ کرنے کے لئے بالٹی کو متحرک طور پر بڑھنا پڑتا ہے۔ لہذا یہ ایڈریس میں 2 بٹ کی بجائے 1 بٹس رکھتا ہے ، اور پھر یہ موجودہ ڈیٹا کو 2 بٹ ایڈریس رکھنے کے لئے اپ ڈیٹ کرتا ہے۔ پھر یہ R3 کو ایڈجسٹ کرنے کی کوشش کرتا ہے۔

پن

اب ہم دیکھ سکتے ہیں کہ نیا پتہ ظاہر کرنے کے لئے R1 اور R2 کا پتہ تبدیل کردیا گیا ہے اور R3 بھی داخل کیا گیا ہے۔ جیسے جیسے اعداد و شمار کی مقدار میں اضافہ ہوتا ہے ، یہ موجودہ بالٹیوں میں داخل کرنے کی کوشش کرتا ہے۔ اگر کوئی بالٹی دستیاب نہیں ہے تو ، بڑے پتے پر غور کرنے کے لئے بٹس کی تعداد بڑھا دی جاتی ہے ، اور اسی وجہ سے بالٹیوں میں اضافہ ہوتا ہے۔ اگر ہم کوئی ریکارڈ حذف کرتے ہیں اور اگر ڈیٹا کو کم بالٹیوں کے ساتھ محفوظ کیا جاسکتا ہے تو ، یہ بالٹی کے سائز کو گھٹا دیتا ہے۔ یہ اس کے برعکس کرتا ہے جو ہم نے اوپر دیکھا ہے۔ اس طرح متحرک ہیشنگ کام کرتی ہے۔ شروع میں ہیش فنکشن کے ذریعہ پیدا ہونے والا صرف جزوی انڈیکس / پتہ ڈیٹا کو اسٹور کرنے کے لئے سمجھا جاتا ہے۔ چونکہ اعداد و شمار کی تعداد میں اضافہ ہوتا ہے اور زیادہ بالٹی کی ضرورت ہوتی ہے ، لہذا انڈیکس کا بڑا حصہ اعداد و شمار کو ذخیرہ کرنے پر غور کیا جاتا ہے۔

یہ بھی دیکھتے ہیں
ڈیٹا کی آزادی

متحرک ہیشنگ کے فوائد  

  • نظام میں ڈیٹا بڑھتے ہی کارکردگی کم نہیں ہوتی ہے۔ یہ اعداد و شمار کو ایڈجسٹ کرنے کے لئے میموری کے سائز میں آسانی سے اضافہ کرتا ہے۔
  • چونکہ یہ بڑھتا ہے اور اعداد و شمار کے ساتھ سکڑ جاتا ہے ، میموری کا اچھی طرح سے استعمال کیا جاتا ہے۔ کسی بھی استعمال شدہ میموری کو جھوٹ نہیں کہا جائے گا۔
  • متحرک ڈیٹا بیس کے لئے اچھا ہے جہاں اعداد و شمار بڑھتے رہتے ہیں اور کثرت سے سکڑ جاتے ہیں۔

 

متحرک ہیشنگ کے نقصانات  

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

آرڈرڈ انڈیکسنگ اور ہیشنگ کا موازنہ  

ترتیب دینے کا حکم دیا

ہیکنگ

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

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

حذف / تازہ کاری کے عمل کی وجہ سے غیر استعمال شدہ ڈیٹا بلاکس ہوں گے۔ یہ ڈیٹا بلاکس دوبارہ استعمال کے لئے جاری نہیں کیے جائیں گے۔ لہذا میموری کی وقتا فوقتا بحالی ضروری ہے۔ بصورت دیگر ، میموری ضائع ہوجاتا ہے اور کارکردگی بھی نیچی ہوجاتی ہے۔ اس کے علاوہ میموری کو برقرار رکھنے کے لئے یہ لاگت سے زیادہ قیمت ہوگی۔ جامد اور متحرک ہیشنگ دونوں میں ، میموری اچھی طرح سے منظم ہوتا ہے۔ جامد ہیشنگ میں بالٹی کا زیادہ بہاؤ بہتر حد تک بھی سنبھالا جاتا ہے۔ ڈیٹا بلاکس کو سکڑ اور متحرک ہیشنگ میں بڑھنے کے لئے ڈیزائن کیا گیا ہے۔

جب متحرک ہیشنگ میں بالٹی ایڈریس ٹیبل کو برقرار رکھنے کا ایک اوور ہیڈ ہوگا جب ڈیٹا بیس کی بہت بڑی ترقی ہوگی۔

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