هوش ڪرڻ وارا تصورات


تعارف

هش فائل جي تنظيم جو طريقو اهو آهي جتي ڊيٽا بلاڪ جي ڊيٽا کي اسٽور ڪيو ويندو آهي جن جو پتو هيش فنڪشن کي استعمال ڪندي ٺاهي ويندو آهي. جنهن يادگيري جي جاءِ انهن رڪارڊن کي محفوظ ڪيو ويندو آهي ، ڊيٽا بلاڪ يا ڊيٽا باڪڪ سڏيو ويندو آهي. هي ڊيٽا جي بالٽ هڪ يا وڌيڪ رڪارڊ محفوظ ڪرڻ جي قابل آهي.

هش فنڪشن ايڊريس ٺاهڻ لاءِ ڪنهن به ڪالم ويليو کي استعمال ڪري سگهي ٿو. اڪثر وقت ، هش فنڪشن کي هش انڊيڪس ٺاھڻ لاءِ پرائمري چاٻي استعمال ڪندو آهي - ڊيٽا بلاڪ جو پتو. هش فنڪشن آسان رياضياتي فنڪشن ٿي سگھي ٿو ڪنهن پيچيده رياضياتي فنڪشن لاءِ. اسان اهو پڻ سمجهن ٿا ته پرائمري اهم پاڻ کي ڊيٽا بلاڪ جو پتو. مطلب ته هر قطار ڊيٽا بلاڪ ۾ محفوظ ڪئي ويندي جنهن جو پتو پرائمري ڪيجي وانگر هوندو. اهو مطلب آهي ته ڊيٽابيس ۾ هيش فنڪشن ڪيترو سادو آهي.

مٿي diagramاڻايل ڊيٽا بلاڪ ايڊريس کي ساڳي بنيادي قدر جي برابر ڏيکاري ٿو. هي هش فنڪشن سادو رياضياتي فنڪشنل به ٿي سگھي ٿو جهڙوڪ موڊ ، گناہ ، ڪوس ، توسيع وغيره. تصور ڪريو ته اسان وٽ هش فنڪشن موڊ (5) طور آهي ڊيٽا بلاڪ جو پتو لڳائڻ لاءِ. پوءِ مٿئين ڪيس جو ڇا ٿيندو؟ اهو ابتدائي ڪيج تي موڊ (5) لاڳو ڪندو آهي ۽ ترتيب وار 3,3,1,4،2،XNUMX،XNUMX ۽ XNUMX پيدا ڪري ٿو ۽ رڪارڊ انهن ڊيٽا بلاڪ ايڊريسن ۾ محفوظ ٿيل آهن.

مٿي ڏنل ٻن نقشن مان هاڻي اهو واضح ٿيو ته هيش فنڪشن ڪيئن ڪم ڪندو آهي.

ھش فائل تنظيمن جا ٻه قسم آھن - جامد ۽ متحرڪ ڇڪڻ.

جامد هوشنگ

ھيش ڪرڻ جي ھن طريقي ۾ ، ڊيٽا جو buckاڻو پتو هميشه ساڳيو ھوندو. ان جو مطلب ، جيڪڏهن اسان موڊ (103) هيش فنڪشن استعمال ڪندي EMP_ID = 5 لاءِ ايڊريس ٺاهڻ چاهيون ٿا ، اهو هميشه ساڳيا بڪ ايڊريس 3. ان جي نتيجي ۾ هتي بالٽ ايڊريس ۾ ڪا به تبديلي نه ايندي. انهي ڪري جامد هاشنگ جي ياداشت ۾ ڊيٽا بڪٽس جو تعداد لڳاتار رهي ٿو. اسان جي مثال ۾ ، اسان وٽ ڊيٽا گڏ ڪرڻ لاءِ استعمال ڪيل ميموري ۾ پنج ڊيٽا ٻڪريون هونديون.

رڪارڊ ڳولي پيو

هش فنڪشن کي استعمال ڪندي ، ڊيٽا بڪ ايڊريس هيش ڪيڊ لاءِ ٺاهيل آهي. ان کانپوءِ رڪارڊ انهي هنڌ تان واپس ورتو ويو. يعني ؛ جيڪڏهن اسان آئي ڊي 104 لاءِ س recordو ريڪارڊ ڪ wantڻ چاهينداسين ، ۽ جيڪڏهن ايش تي هش فنڪشن موڊ (5) هوندو ، ٺاهيل پتو 4 هوندو. پوءِ اسان سڌو سنئون 4 تي ايڊريس حاصل ڪندا ۽ آئي ڊي 104 لاءِ س recordو رڪارڊ حاصل ڪندا. هتي آئي ڊي. هيش ڪيڊ طور ڪم ڪري رهيو آهي

رڪارڊ داخل ڪيو پيو وڃي

جڏهن نئون رڪارڊ ٽيبل ۾ داخل ڪرڻ جي ضرورت آهي ، اسان هيش ڪيڊ جي بنياد تي نئين رڪارڊ لاءِ پتو ٺاهينداسين. هڪ ڀيرو پتو ٺاهيل آهي ، رڪارڊ انهي هنڌ تي محفوظ ٿيل آهي.

هڪ رڪارڊ ختم ڪريو

هش فنڪشن کي استعمال ڪندي اسان سڀ کان پهريون رڪارڊ کڻي ويندا جيڪو ختم ٿيڻ گهرجي ها. پوءِ اسان ميموري ۾ هن پتي جي رڪارڊ کي ڪ willي ڇڏينداسين.

هڪ رڪارڊ تازو ڪريو

ڊيٽا جو رڪارڊ اپڊيٽ لاءِ نشان لڳايو ويو آهي ، جامد هش فنڪشن استعمال ڪندي ڳوليو ويندو ۽ پوءِ ان ايڊريس ۾ رڪارڊ تازه ڪاري ڪئي وئي.

 

فرض ڪيو اسان کي فائل ۾ ڪجهه رڪارڊ داخل ڪرڻا پوندا. پر هش فنڪشن پاران ٺاهيل ڊيٽا بڪٽري مڪمل آهي يا ان پتي ۾ پهريان ئي ڊيٽا موجود آهي. اسان ڪئين ڊيٽا داخل ڪريون ٿا؟ جامد هاشنگ جي اها صورتحال سڏجي ٿي بڪ اوور اوور. ھن طريقي مان ھڪڙي نازڪ حالتن / خرابين مان آھي. اسان ان ڪيس ۾ ڊيٽا کي ڪٿي محفوظ ڪنداسين؟ اسان ڊيٽا وڃائي نٿا سگھون. هن صورتحال کي منهن ڏيڻ لاءِ مختلف طريقا آهن. اڪثر عام طور تي استعمال ٿيل طريقا هيٺ درج ڪيا ويا آهن.

بند ٿيل هشنگ

هن طريقي سان اسان هڪ ئي ايڊريس سان گڏ نئين ڊيٽا جي بڪ متعارف ڪرائين ٿا ۽ ان کي لنڪ مڪمل ڊيٽا بڪوليٽ کان پوءِ بڪ اوور فلو کي ختم ڪرڻ جا اهي طريقا بند هشنگ کي سڏجن ٿا يا گهڻي چٻاڙڻ.

غور ڪيو اسان کي جدولن ۾ نئون رڪارڊ R2 داخل ڪرڻو پوندو. جامد هاش فنڪشن ڊيٽا بڪٽ ايڊريس ٺاهي ٿو 'اي اي سي ڊي بي ايف' جي طور تي. پر هي ڊيٽا مڪمل ٿيل ڊيٽا محفوظ ڪرڻ لاءِ ڀريل آهي. انهي صورت ۾ ڇا ڪيو ويو آهي هڪ نئون ڊيٽا باڪٽ 'اي اي سي ڊي بي ايف' جي ڊيٽا بالٽي جي آخر ۾ شامل ڪيو ويو آهي ۽ ان سان ڳن isيل آهي. پوءِ نئون ريڪارڊ R2 نئين بڪ ۾ داخل ڪيو وڃي ٿو. اهڙي طرح اهو جامد هشنگ جو پتو برقرار رکي ٿو. اهو نئون ڊيٽا بڪٽس جو تعداد ۾ شامل ڪري سگھي ٿو ، جڏهن اهو مڪمل هجي.

کليل هشنگ

هن طريقي ۾ ، اڳيان موجود ڊيٽا مٿان داخل ٿيندڙ بدران نئون رڪارڊ داخل ڪرڻ لاءِ ايندڙ دستياب ڊيٽا بلاڪ کي استعمال ڪيو ويندو آهي. هن طريقي کي اوپن هشنگ سڏيو ويندو آهي يا قطار چڪاس.

هيٺئين مثال ۾ ، R2 هڪ نئون رڪارڊ آهي جنهن کي داخل ڪرڻ جي ضرورت آهي. پر هيش فنڪشن پتو طور 237 پيدا ڪري ٿو. پر اهو اڳ ۾ ئي مڪمل آهي. تنهن ڪري سسٽم ايندڙ دستياب ڊيٽا بڪ ڳولا ، 238 کي ڳولي ٿو ۽ ان ڏانهن R2 تفويض ڪري ٿو.

ليڪري جاچ ۾ ، پراڻي بڪٽ ۽ نئين دٻي ۾ فرق عام طور تي طئي ٿيندو آهي ۽ اهو اڪثر ڪيسن جو 1 هوندو.

چوڻي جاچڻ

اهو ساڳيو لڪير ڳولڻ جي برابر آهي. پر هتي ، پراڻي ۽ نئين بڪڪوٽ جو فرق سڌي آهي. اسان نئين بڪ ايڊريس کي طئي ڪرڻ لاءِ چوڪيداري فنڪشن استعمال ڪيو.

ڊبل هاشنگ

اهو به سڌي چڪاس جو ٻيو طريقو آهي. هتي اهو فرق لڪير جي چڪاس وانگر مقرر ڪيو ويو آهي ، پر اهو مقرر ٿيل فرق هڪ ٻئي هش فنڪشن کي استعمال ڪندي حساب ڪيو ويو آهي. انهي جو نالو ٻٽي هشنگ آهي.

متحرڪ هوشنگ

ھيشنگ جو طريقو جامد ھيشنگ جي مسئلن کي ختم ڪرڻ لاءِ استعمال ڪيو ويندو آھي - بڪ اوور اوور فلو. ھيش ڪرڻ جي ھن طريقي ۾ ڊيٽا بيڪٽ وڌندا يا orٽي ويندا آھن جيئن ريڪارڊ وڌندا يا وڌندا آھن. هاشنگ جي هن طريقي کي وڌائڻ جي طريقي ۾ پڻ سڃاتو وڃي ٿو. اچو ته هڪ طريقو ڏسون ته هن طريقي کي سمجھون.

غور ڪريو ٽي رڪارڊ آھن R1 ، R2 ۽ R4 جدول ۾ آھن. اهي رڪارڊ ترتيبوار 100100 ، 010110 ۽ 110110 ٺاهن ٿيون. محفوظ ڪرڻ جو هي طريقو هن پتي جي صرف حصي تي غور ڪندو آهي - خاص طور تي صرف هڪ پهرين ڊيٽا محفوظ ڪرڻ لاءِ. تنهنڪري اهو انهن مان ٽن کي لوڊ ڪرڻ جي ڪوشش ڪندو ايڊريس 0 ۽ 1 تي.

هتي R3 سان ڇا ٿيندو؟ R3 لاءِ بالڪل جڳهه ناهي. R3 کي ڀرتي ڪرڻ لاءِ بالٽ کي متحرڪ طور وڌڻو پوندو. تنهن ڪري ان کي ايڊٽ ڪيو 2 بٽ جي بجاءِ 1 بٽس ، ۽ پوءِ هي موجوده ڊيٽا کي 2 بيٽ ايڊريس ڪرڻ جي اپڊيٽ ڪري ٿو. پوءِ اهو آر 3 کي ڀرڻ جي ڪوشش ڪندو آهي.

ھاڻي اسان ڏسي سگھون ٿا ته آر 1 ۽ آر 2 جو پتو تبديل ڪيو ويو آھي نئون پتو ظاهر ڪرڻ لاءِ ۽ آر 3 پڻ داخل ٿيل آھي. جيئن ڊيٽا جو سائز وڌندو وڃي پيو ، اهو هاڻوڪو بيڪڪن ۾ داخل ڪرڻ جي ڪوشش ڪندو آهي. جيڪڏهن ڪوبه بيلٽ موجود ناهي ، بٽس جو تعداد وڌي ويو آهي ته جيئن وڏي ايڊريس تي غور ڪيو وڃي ، ۽ تنهن ڪري بڪيون وڌندا. جيڪڏهن اسان ڪوبه رڪارڊ حذف ڪريون ٿا ۽ جيڪڏهن ڊيٽا گهٽ بيڪن سان محفوظ ڪري سگھون ٿا ، اهو بيڪٽي جي سائز کي نن shrڙي ٿو. اهو انهي جي سامهون آهي جيڪو اسان مٿي ڏٺو آهي. اهو ڪئين آهي ته هڪ متحرڪ هشنگ ڪم ڪري ٿي. شروعاتي طور تي هش فنڪشن پاران ٺاهيل صرف جزوي انڊيڪس / پتو ڊيٽا کي محفوظ ڪرڻ سمجهيو ويندو آهي. جيئن جيئن ڊيٽا جو تعداد وڌي وڃي ٿو ۽ وڌيڪ بيڪ جي گهرج آهي ، انڊيڪس جو وڏو حصو ڊيٽا ذخيرو ڪرڻ تي غور ڪيو وڃي ٿو.

متحرڪ حرڪت جو فائدو

  • ڪارڪردگي سسٽم ۾ گهٽجي نه ايندي آهي جيئن نظام ۾ ڊيٽا وڌي ٿي. اهو صرف ڊيٽا کي ترتيب ڏيڻ جي ميموري سائيز کي وڌائي ٿو.
  • کان وٺي ڊيٽا کي وڌائيندو ۽ سکي ويندو آهي ، ياداشت سٺي نموني استعمال ڪيو ويندو آهي. اتي ڪو غلط استعمال ٿيل يادگيري نه هوندي.
  • متحرڪ ڊيٽابيسن لاءِ سٺو آهي جتي ڊيٽا اڪثر وڌائي ۽ نن shrا ٿي ويندا آهن.

 

متحرڪ هيشنگ جي نقصان

  • جيئن ڊيٽا جي سائيز وڌي وڃي ٿي ، بڪڪوٽ جو تعداد به وڌي وڃي ٿو. اهي پتا بڪ ايڊريس ٽيبلز ۾ برقرار رکيا ويندا. اهو ان جي ڪري ، ڊيٽا جو پتو تبديل ٿيندي رهندي جيئن بڪيون وڌنديون ۽ سکڙنديون. جڏهن ڊيٽا ۾ وڏو واڌارو آهي ، هن بڪٽ ايڊريس ٽيبل کي برقرار رکڻ سخت ٿي ويندو آهي.
  • انهي صورت ۾ بيلٽ جي اوور فيلڊ صورتحال به ٿيندي. پر انهي صورتحال کي جامد هاشنگ کان وڌيڪ پهچڻ ۾ وقت لڳي سگهي ٿو.

ترتيب ڏنل انڊسٽنگ ۽ هشنگ جو مقابلو

ترتيب ڏنل انڊسٽنگ

هاشمي

ميموري ۾ ايڊريس اھم قدر لاءِ ترتيب ڏنل آھن. هن اهم قيمت جدول ۾ پرائمري اهم يا ڪنهن ٻئي ڪالم ٿي سگهي ٿي.ڪيش ويليو تي هش فنڪشن استعمال ڪندي پتي ٺاهيا ويا آهن. هن اهم قيمت جدول ۾ پرائمري اهم يا ڪنهن ٻئي ڪالم ٿي سگهي ٿي.
هن طريقي جي ڪارڪردگي هيٺ اچي ٿي جيئن ڊيٽا ۾ فائل وڌي وڃي ٿي. جئين اهو ڊيٽا کي ترتيب وار فارم ۾ محفوظ ڪندو آهي ، جڏهن آپريشن کي انٽرويو يا حذف ڪيو ويندو آهي ، رڪارڊ کي ترتيب ڏيڻ جي اضافي ڪوشش جي ضرورت هوندي آهي. اهو پنهنجي ڪارڪردگي کي گهٽائي ٿو.متحرڪ هشنگ جي ڪارڪردگي سٺي هوندي جڏهن ته ڊيٽا تي بار بار اضافي ۽ حذف هوندي. پر جيڪڏهن ڊيٽابيس تمام وڏي آهي ، مرمت مهانگي هوندي.

نن databن ڊيٽابيسن لاءِ جامد هشنگ سٺي هوندي ، جتي اڳيئي ريڪارڊ سائيز آئي ڊي. جيڪڏهن ڊيٽا ۾ واڌ ٿيندي ، ان جي نتيجي ۾ بالٽي اوور فلو وانگر سنجيده مسئلا ٿين ٿا.

آپريشن کي خارج ڪرڻ / تازه ڪاري ڪرڻ جي ڪري اڻ استعمال ٿيل ڊيٽا بلاڪ هوندا. اهي ڊيٽا بلاڪ ٻيهر استعمال لاءِ جاري نه ڪيا ويندا. انهي ڪري ياداشت جي وقتي سار سنڀال جي ضرورت هوندي آهي. ايلس ، يادگيري ضايع ٿي آهي ۽ ڪارڪردگي به خراب ٿيندي. انهي پڻ ياداشت کي قائم رکڻ جي لاءِ مٿانهون خرچ ڪيو ويندو.جامد ۽ متحرڪ هشنگ ٻنهي ۾ ، ياداشت بهتر نموني منظم ڪئي وئي آهي. جامد هاشپنگ ۾ بڪ اوور فلو پڻ بهتر حد تائين هٿ ڪيو وڃي ٿو. ڊيٽا واري بلاڪ متحرڪ هشنگ ۾ ڇڪڻ ۽ وڌڻ جي لاءِ تيار ڪيا ويا آهن.

پر متحرڪ هشنگ ۾ بالٽ ايڊريس ٽيبل کي برقرار رکڻ جي به گنجائش هوندي جڏهن اتي وڏو ڊيٽابيس واڌارو آهي.

رينج جي حاصلات جي ڊيٽا کي ترجيح ڏني وئي آهي- انهي جو مطلب آهي جڏهن خاص حد تائين ريڪوري جي ڊيٽا حاصل ڪئي ويندي آهي ، اهو طريقو بهترين موزون هوندو آهي.اهو طريقو سرچ جي بنياد تي هڪ خاص رڪارڊ حاصل ڪرڻ لاءِ موزون آهي. پر اهو بهتر ڪم نه ڪندو جيڪڏهن هيش فنڪشن ڳولا جي چاچي تي نه آهي.