HearT HackeR

《 H.S.C--ICT 》 Database indexing //ডেটাবেজ ইনডেক্সিংয়ের°°





ডেটা সর্টিং এবং ইনডেক্সিং 

 HSC-ICT






-Roll Number One…
-Yes, Sir.
-Two..
-Yes, Sir.
-Three…
-Yes, Sir.
-Four…
-আসেনি, Sir.
-Five…
-Yes, Sir.
………….
………….
-Forty Eight…
-Yes, Sir.
-Forty Nine…
-আসেনি, Sir.
-Fifty…
-Yes, Sir.
হ্যাঁ, শিক্ষক ক্লাসে Roll Call করছেন, মানে হাজিরা নিচ্ছেন। তোমরা সবাই বিষয়টার সাথে পরিচিত। হাজিরা খাতায় ক্লাসে সব শিক্ষার্থীদের নাম বা পরিচিতি  ঠিক এভাবেই সবার রোল অনুযায়ী ক্রমান্বয়ে সাজানো থাকে। এই যে রোল অনুযায়ী ক্লাসে সব শিক্ষার্থীদের নাম বা পরিচিতি ক্রমান্বয়ে সাজানো থাকে, এই বিষয়টাই হল সর্টিং (Sorting); মানে বাংলায় সাজানো
Roll Call শেষ, এবার স্যার পড়াবেন।
আজ আমরা নতুন Topic নিয়ে আলোচনা করব। সবাই বইয়ের Chapter 6 বের কর।
এবার সব শিক্ষার্থী বইয়ের Chapter 6 বের করতে লাগলো।  অনেকেই বইয়ের Index বা বাংলায়  “সূচীপত্র” খুঁজে বের করলো, Chapter 6 কত নম্বর পৃষ্ঠায়। তারপর সেই পৃষ্ঠা খুলে Chapter 6 বের করলো।
এই যে বইয়ের বিভিন্ন অধ্যায়ের বিভিন্ন Topic গুলো সূচীপত্রে যেভাবে রাখা হয়, সেটাই হল ইনডেক্সিং (Indexing); মানে বাংলায় সূচীভুক্ত করা।
আরও একটা উদাহরণ দেয়া যাক। ধরা যাক, “Preceptor”  “Apprentice” ইংরেজিশব্দের বাংলা অর্থ আমাদের জানা নেই। আমরা কোন অজানা ইংরেজি শব্দের বাংলা অর্থ জানতে অভিধান বা ডিকশনারি ব্যবহার করে থাকি। এবার ডিকশনারি ঘেঁটে ইংরেজি শব্দ দুটোর বাংলা অর্থ জানতে জানতে আমরা ডেটা সর্টিং ও ইনডেক্সিং সম্পর্কে ও বিস্তারিত জানবো।


ইনডেক্সিং (Indexing)

এখন আমরা ডিকশনারি থেকে  “Preceptor”  “Apprentice” ইংরেজি শব্দের বাংলা অর্থ জানবো। কিন্তু বিষয় হল, ডিকশনারি তে লক্ষাধিক শব্দের ভিড়ে ঐ শব্দ দুইটির অর্থ খুঁজে বের করবো কীভাবে? ডিকশনারির প্রত্যেকটি পৃষ্ঠা উল্টিয়ে শব্দ দুইটি খুঁজতে গেলে যে সময় লাগতে পারে, সেই সময়ে হয়তো বা চাঁদে উঁকি মেরে আসা সম্ভব!
আর সেই জন্যই লক্ষাধিক শব্দের মধ্যে থেকে একটি নির্দিষ্ট শব্দ অল্প সময়ে খুঁজে বের করবার জন্য ডিকশনারিতে কিছু যৌক্তিক নিয়ম ব্যবহার করা হয়। যেমনঃ
(১) শব্দ গুলো প্রথমে শব্দের প্রথম অক্ষর বা বর্ণ সমন্বয়ে সন্নিবেশিত করা হয়। যেমনঃ শব্দের প্রথম অক্ষর  A বিশিষ্ট শব্দগুলো একসাথে রাখা; তারপর শব্দের প্রথম অক্ষর B বিশিষ্ট শব্দগুলো একসাথে রাখা; তারপর ক্রমান্বয়ে C,D,E,F…………. এভাবে Z পর্যন্ত।
(২) এরপর ডিকশনারির শুরুতে প্রথম অক্ষর বা বর্ণ A বিশিষ্ট শব্দগুলো রাখা হয়। প্রথম অক্ষর A বিশিষ্ট শব্দগুলোর পর বা শেষে প্রথম অক্ষর B বিশিষ্ট শব্দগুলো রাখা হয়। প্রথম অক্ষর B বিশিষ্ট শব্দগুলোর পর বা শেষে প্রথম অক্ষর C বিশিষ্ট শব্দগুলো রাখা হয় এবং এভাবে D, E, F, G ………Z পর্যন্ত।
(৩) এরপর নির্দিষ্ট প্রথম অক্ষর বা বর্ণ বিশিষ্ট শব্দগুলোও আবার প্রত্যেক অক্ষর বা বর্ণের বর্ণানুক্রমে নিজেদের মধ্যে সাজানো অবস্থায় থাকে, এই বিষয়টা হল সর্টিং।
এই নিয়মগুলোই একটি নির্দিষ্ট শব্দ দ্রুত খুঁজে পেতে ডিকশনারিতে ব্যবহার করা হয়। এই পুরো বিষয়টাই হল ইনডেক্সিং। অর্থাৎ- ডেটাবেজে একটি নির্দিষ্ট ডেটা দ্রুত খুঁজে পাওয়ার জন্য একটি বিশেষ অর্ডার বা ক্রমান্বয়ে যৌক্তিকভাবে ডেটাসমূহকে সাজানো হয়। এটাই ইনডেক্সিং বা বাংলায় সূচিভুক্ত করা। ডিকশনারির ইনডেক্সিং হয় Alphabetically; অর্থাৎ প্রথমে A, তারপর B, তারপর C, D, E… এভাবে। আর তোমাদের বইয়ে ইনডেক্সিং হয় Numerically অর্থাৎ শুরুতে প্রথম অধ্যায়, তারপর দ্বিতীয় অধ্যায়, তারপর তৃতীয়, চতুর্থ, পঞ্চম… অথবা Lesson/ Chapter 1, তারপর Lesson/Chapter 2, তারপর Lesson/Chapter 3, 4, 5… এভাবে।
ডিকশনারির মতো এরকম অনেক ডেটাবেজ ও এক বা একাধিক ফিল্ড এর উপর ভিত্তি করে ইনডেক্সিং করা যায়। এক্ষেত্রে কিছু বিষয় বিবেচনায় রাখতে হয়। যেমন-
(১)  সাধারণত কী ফিল্ড (Key Field) এর উপর ভিত্তি করে ইনডেক্সিং করা হয়।
(২) মনে রাখার সুবিধার জন্য যে ফিল্ডের উপর ইনডেক্স করা হবে, সাধারণত তার নামের অনুরুপ নাম নির্বাচন করা হয়।
(৩) ইনডেক্স করার জন্য কোন ভ্যালু বা মান বিবেচনা করা হবে তার জন্য ইনডেক্স এক্সপ্রেশন তৈরি করতে হয়।
(৪) এক বা একাধিক ফিল্ডের উপর ভিত্তি করে ইনডেক্স করা যায়। কিংবা একাধিক ইনডেক্স একই সাথে করা যায়। তবে একটিমাত্র ইনডেক্স সক্রিয় থেকে রেকর্ডসমূহ বা তথ্য সমূহ প্রদর্শন করে।

ডেটাবেজ ইনডেক্সিং এর সুবিধা







১. Index করা থাকলে টা থেকে সহজেই কোন রেকর্ড বা তথ্য খুঁজে বের করা যাবে।
২. ডেটাবেজের এক বা একাধিক ফিল্ডের উপর Index করে Alphabetically ও Numerically সাজানো যায়।
৩. ডেটা টেবিলের রেকর্ড বা তথ্য সমূহের উপর বিভিন্ন অপারেশন যেমন-Searching, Sorting এবং Queries ইত্যাদি খুব তাড়াতাড়ি সম্পন্ন করার জন্য Index করা হয়।
৪. Index ফাইল মূল ডেটাবেজ ফাইলের কোনোরূপ পরিবর্তন না করে বিভিন্নভাবে সাজাতে পারে।
৫. যদি একটি ফিল্ডের উপর ইনডেক্সিং করা থাকে তবে ডেটা টেবিলের ডেটা Edit করলে বা সম্পাদনা করলে প্রোগ্রাম স্বয়ংক্রিয়ভাবে ইনডেক্স আপডেট করে বা নতুন করে সজ্জিত হয়।
৬. ইনডেক্স আপডেট করতে বা নতুন করে সাজাতে খুব কম সময়ের প্রয়োজন হয় যখন একটি মাত্র ফিল্ডের উপর ইনডেক্স করা হয়।
৭. ডেটাবেজের ডেটা ফাইলগুলো ইনডেক্স করা থাকলে Speedy পারফরমেন্স বা দ্রুত সুবিধা পাওয়া যায়।



ডেটাবেজ ইনডেক্সিংয়ের অসুবিধা







দুই বা ততোধিক ফিল্ডের উপর ইনডেক্সিং এর ক্ষেত্রে কিছু অসুবিধার সম্মুখীন হতে হয়। যেমনঃ
১. যদি কিছু ফিল্ডের উপর ইনডেক্সিং করা থাকে তবে ডেটা টেবিলে ডেটা এডিট করলে ইনডেক্সিং আপডেট হতে সময় বেশি লাগে।
২. যদি ডেটা টেবিলকে অনেক রেকর্ডের জন্য Large number of indexes থাকে তবে ইনডেক্স আপডেট হতে প্রচুর সময় লাগে।
৩. Large number of indexes এর ক্ষেত্রে সমস্ত ডেটাবেজ প্রোগ্রামটি খুব Slow হয়ে যায়।
৪. প্রোগ্রাম Slow হয়ে গেলে ডেটা এন্টি করা, অতঃপর ডেটা আপডেট বা নতুন করে সাজানো করা বেশ অসুবিধাজন







No comments

Theme images by fpm. Powered by Blogger.