এইচএসসি তথ্য ও যোগাযোগ প্রযুক্তি

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

Supported by Matador Stationary

-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) এর উপর ভিত্তি করে ইনডেক্সিং করা হয়।
(২) মনে রাখার সুবিধার জন্য যে ফিল্ডের উপর ইনডেক্স করা হবে, সাধারণত তার নামের অনুরুপ নাম নির্বাচন করা হয়।
(৩) ইনডেক্স করার জন্য কোন ভ্যালু বা মান বিবেচনা করা হবে তার জন্য ইনডেক্স এক্সপ্রেশন তৈরি করতে হয়।
(৪) এক বা একাধিক ফিল্ডের উপর ভিত্তি করে ইনডেক্স করা যায়। কিংবা একাধিক ইনডেক্স একই সাথে করা যায়। তবে একটিমাত্র ইনডেক্স সক্রিয় থেকে রেকর্ডসমূহ বা তথ্য সমূহ প্রদর্শন করে।


ড্রপ ডাউনগুলোতে ক্লিক করে জেনে নাও বিস্তারিত


এ পর্যন্ত কেমন শিখলে, যাচাই করে নাও-


সত্য মিথ্যা যাচাই করো


সর্টিং (Sorting)


আমরা “Preceptor” ও “Apprentice” শব্দ দুটির অর্থ কিভাবে ডিকশনারিতে জানব, তা ইনডেক্সিং এর মাধ্যমে জানছিলাম।

আগেই বলেছি, সর্টিং মানে সাজানো। সুতরাং ডিকশনারিতে প্রথম অক্ষর P ও প্রথম অক্ষর A এর শব্দ গুলো পরস্পর বর্ণানুক্রমে সাজানো থাকে। এই বর্ণানুক্রম ধরে খুঁজতে থাকলেই অল্প সময়ের মধ্যেই বের করে ফেলতে পারব, “Preceptor” শব্দের অর্থ গুরু বা শিক্ষক ও “Apprentice” শব্দের অর্থ শিক্ষানবিশ বা শিক্ষার্থী ।

সুতরাং বইয়ের ভাষায় আমরা বলতে পারি, রেকর্ডগুলোকে এদের মানের ক্রমানুসারে সাজানোর প্রক্রিয়া হচ্ছে সর্টিং যেকোনো এক বা একাধিক ফিল্ড এর উপর ভিত্তি করে রেকর্ডগুলোকে সর্ট বা সাজানো যায়। এতে প্রয়োজনীয় তথ্য খুঁজে পেতে সুবিধা হয়। এই সাজানো প্রক্রিয়া আবার দুই ধরণের-


ড্রপ ডাউনগুলোতে ক্লিক করে জেনে নাও বিস্তারিত


তোমরা জেনেছ যে সর্টিং আসলে ফিল্ডের উপর ভিত্তি করে হয়। কিন্তু সেটা কিভাবে?

এখানে একটি বিভিন্ন জনের বয়সের ডেটাচার্ট দেখতে পারছ। যদি আমরা এই ডেটাচার্ট এর সর্টিং করি তবে বিষয়টি কি রকম হবে?

ধরা যাক, আমরা যদি ID ফিল্ডের উপর ভিত্তি করে সর্টিং করি, তাহলে নিচের File টির মতো হবে-


যদি First Name ফিল্ডের উপর ভিত্তি করে সর্টিং করি, তাহলে নিচের File টির মতো হবে-


যদি আমরা বয়সে ছোট থেকে বড়  কিংবা বড় থেকে ছোট ভাবে সাজাতে চাই, তাহলে Age with months ফিল্ডের উপর ভিত্তি করে সর্টিং করব।  তাহলে নিচের File টির মতো হবে-


এবার সর্টিং কেমন শেখা হল, তা যাচাই করা যাক –

সর্টিং এবং ইনডেক্সিং এর মধ্যে বেশ কিছু পার্থক্য রয়েছে। যেমন-

ইনডেক্সিং সর্টিং
১. ডেটাবেজের ডেটাকে দ্রুত খোঁজার জন্য টেবিলের ডেটা অপরিবর্তনীয় রেখে, টেবিলের এক বা একাধিক কলামকে অন্য একটি ইনডেক্স ফাইলে নির্দিষ্ট ক্রমে সাজিয়ে রাখা হয়। ইনডেক্স, ফাইলের প্রতিটি রো (row) কে নির্দেশ করে থাকে, যাতে করে খুব সহজে অতি দ্রুত মূল টেবিল থেকে ডেটা খুঁজে বের করা যায়। ১. সর্টিং হচ্ছে একটি পদ্ধতি যা দ্বারা কাঙ্ক্ষিত ডেটাকে নির্দিষ্ট ক্রম অনুসারে (ছোট থেকে বড় অথবা বড় থেকে ছোট) সাজানো হয়। এটি সাধারণত কুয়েরির মাধ্যমে ডেটাবেজের টেবিল থেকে প্রাপ্ত ডেটাকে সাজানোর জন্য ব্যবহৃত হয়ে থাকে।
২. ইনডেক্সিং এর মূল উদ্দেশ্য খুব দ্রুত কুয়েরি চালনা করে কাঙ্ক্ষিত ডেটা খুঁজে বের করা। ২. সর্টিং এর মূল উদ্দেশ্য আউটপুট ডেটাকে সাজানো।
৩. ইনডেক্সিং এর ফলে নতুন ফাইল তৈরি হয় এবং তা মেমরিতে সংরক্ষণের জন্য অতিরিক্ত জায়গার প্রয়োজন হয়। ৩. সর্টিংয়ে নতুন ফাইল তৈরি হয় না ফলে মেমরিতে কোন অতিরিক্ত জায়গার প্রয়োজন হয় না।
৪. ইনডেক্সিং হলো ডেটা টেবিলের রেকর্ডগুলোকে কোন নির্ধারিত এক বা একাধিক ফিল্ড অনুসারে সাজানোর উদ্দেশ্যে মূল টেবিল অপরিবর্তিত রেখে রেকর্ডগুলোর অ্যাড্রেসকে (Address) সাজানো। ৪. সর্টিং হলো ডেটা টেবিলের রেকর্ডগুলোকে কোন নির্ধারিত ফিল্ড অনুসারে সাজানো।
৫. ইনডেক্স পদ্ধতিতে ডেটা ফাইলকে সর্ট করা হলে মূল ডেটা ফাইলে রেকর্ডের ক্রমিক নং পরিবর্তন হয় না। ৫. সর্টিং পদ্ধতিতে ডেটা ফাইলকে সর্ট করা হলে মূল ডেটা ফাইলের রেকর্ডের ক্রমিক নং পরিবর্তন হয়।
৬. ইনডেক্স পদ্ধতিতে ডেটাবেজ ফাইলের এলোমেলো রেকর্ডগুলোকে তুলনামূলক দ্রুত সাজানো যায়। ৬. সর্টিং পদ্ধতিতে ডেটাবেজে ফাইলের এলোমেলো রেকর্ডগুলো সাজানোর জন্য তূলনামূলকভাবে বেশি সময়ের প্রয়োজন হয়।
৭. ডেটাবেজ ফাইলকে ইনডেক্স করা হলে নতুন ইনডেক্স ফাইল তৈরি হয় এবং মূল ডেটাবেজ ফাইল অপরিবর্তিত থাকে। ৭. ডেটাবেজ ফাইলকে সর্ট করা হলে মূল ডেটা ফাইলটি বিন্যাসকৃত অবস্থায় মেমরিতে জমা হয়।
৮. ডেটাবেজে কোনো রেকর্ড সংশোধন বা সংযোজন করলে ইনডেক্স করা ফাইলে তা আপডেট হয়। ৮. ডেটাবেজে কোনো রেকর্ড সংশোধন বা সংযোজন করলে সর্ট করা ফাইলে আপডেট হয় না,আবার নতুন করে ফাইলটি সর্ট করতে হয়।
৯. CREATE INDEX কমান্ডের সাহায্যে একটি টেবিলে কাঙ্ক্ষিত কলাম এর উপর ইনডেক্স তৈরি করা হয়। ৯. কুয়েরি করার সময় কুয়েরি অপারেটর ORDER BY এর সাহায্যে ডেটা সর্ট করা হয়।

অনেক তো শেখা হল। তো কেমন শিখলে, জেনে নাও নিচের ছোট পরিক্ষাটির মাধ্যমে-

সঠিক উত্তরে ক্লিক করো


চিত্রগুলোতে একটি ডেটাবেজ বিভিন্ন ভাবে সর্টিং করা আছে। ডেটাবেজটিতে দুটি ফিল্ডের একটি Numerical এবং আরেকটি Alphabetical. ডেটাবেজটি সম্পর্কিত সঠিক তথ্যগুলো নীচ থেকে টেনে এনে ছবিগুলোতে ছেড়ে দাও। তারপর Show Score এ ক্লিক করো-


আশা করি, এই স্মার্ট বুকটি থেকে তোমরা ডেটা সর্টিং এবং ইনডেক্সিং সম্পর্কে পরিষ্কার ধারণা পেয়েছো। 10 Minute School এর পক্ষ থেকে তোমাদের জন্য শুভকামনা রইলো।