কম্পিউটার বিজ্ঞানের মূল ভিত্তি হলো কাঁচা উপাত্ত এবং প্রক্রিয়াজাত তথ্যের পার্থক্য অনুধাবন করা:
- উপাত্ত বা ডেটা (Data): কোনো পর্যবেক্ষণ, পরিমাপ বা নিরীক্ষণের মাধ্যমে সংগৃহীত কাঁচা, অসংগঠিত, এলোমেলো এবং প্রক্রিয়াবিহীন বাস্তব সত্য বা সংখ্যাকে ডেটা বলা হয়। নিজস্বভাবে কোনো ডেটার অর্থপূর্ণ প্রেক্ষাপট থাকে না এবং এর দ্বারা কোনো সিদ্ধান্ত গ্রহণ করা সম্ভব নয়। যেমন:
৯৫, ৮৮, ৭৬, 'প্রিয়া', ৮—এগুলি শুধুই কিছু বিচ্ছিন্ন মান। এগুলি কোনো নম্বর, রোল নম্বর নাকি ঘরের নম্বর তা বোঝার উপায় নেই। - তথ্য বা ইনফরমেশন (Information): যখন কাঁচা ডেটাকে সুশৃঙ্খলভাবে সংগ্রহ করে প্রক্রিয়াকরণ (Processing), বাছাই (Filtering) ও বিন্যস্ত করা হয় এবং তা অর্থপূর্ণ রূপ লাভ করে, তখন তাকে তথ্য বলা হয়। উপরোক্ত মানগুলিকে সাজালে যখন পাই: "অষ্টম শ্রেণির ছাত্রী প্রিয়া গণিতে ৯৫, বিজ্ঞানে ৮৮ এবং ইংরেজিতে ৭৬ নম্বর পেয়ে প্রথম স্থান অধিকার করেছে এবং 'A+' গ্রেড লাভ করেছে"—তখন তা একটি অর্থপূর্ণ তথ্যে (রেজাল্ট কার্ড) পরিণত হয়।
কাঁচা ডেটা (ইনপুট) → প্রক্রিয়াকরণ (গণনা, বাছাই ও সাজানো) → অর্থপূর্ণ তথ্য (আউটপুট) → সঠিক সিদ্ধান্ত গ্রহণ।
আধুনিক ডেটাবেস আবিষ্কারের পূর্বে অফিস ও শিক্ষা প্রতিষ্ঠানে কাগজের খাতা বা লেজার বইতে হিসেব রাখা হতো। কম্পিউটার আসার পর প্রতিটি বিভাগ আলাদা আলাদা ফ্ল্যাট-ফাইল (যেমন টেক্সট ফাইল বা এক্সেল স্প্রেডশিট) সংরক্ষণ করত এবং সেগুলি পড়ার জন্য নিজস্ব আলাদা প্রোগ্রাম তৈরি করত। কিন্তু প্রতিষ্ঠানের পরিধি বাড়ার সাথে সাথে এই ব্যবস্থার গুরুতর ত্রুটিগুলি প্রকাশ পেতে থাকে।
ফ্ল্যাট-ফাইল ব্যবস্থার প্রধান সাতটি মারাত্মক দুর্বলতা নিম্নে আলোচিত হলো:
- ডেটা রিডান্ড্যান্সি (Data Redundancy - উপাত্তের অপ্রয়োজনীয় পুনরাবৃত্তি): ফ্ল্যাট-ফাইল ব্যবস্থায় একই তথ্য বিভিন্ন ফাইলে বারবার সংরক্ষিত হতো। উদাহরণস্বরূপ, একটি বিদ্যালয়ে শিক্ষার্থীর নাম, অভিভাবকের ফোন নম্বর ও ঠিকানা—অ্যাডমিশন ফাইল, লাইব্রেরি ফাইল, ফি জমার ফাইল এবং স্পোর্টস ফাইলে আলাদাভাবে জমা রাখা হতো। এতে মেমোরির মারাত্মক অপচয় হতো।
- ডেটা ইনকনসিস্টেন্সি (Data Inconsistency - উপাত্তের অসঙ্গতি): রিডান্ড্যান্সির কারণেই তথ্যের অসঙ্গতি সৃষ্টি হয়। যদি কোনো শিক্ষার্থী তার বাড়ির ঠিকানা পরিবর্তন করে এবং শুধু শ্রেণি শিক্ষকের কাছে তা আপডেট করে, তবে ফি বিভাগে পুরনো ঠিকানাই থেকে যায়। এর ফলে বিভিন্ন ফাইলে একই শিক্ষার্থীর পরস্পরবিরোধী তথ্য দেখা যায়।
- তথ্য অনুসন্ধানে জটিলতা (Difficulty in Accessing Data): ফাইল সিস্টেমে হঠাৎ কোনো বিশেষ তথ্য খোঁজার সহজ উপায় ছিল না। প্রধান শিক্ষক যদি দেখতে চান যে "অষ্টম শ্রেণির কোন কোন শিক্ষার্থী কম্পিউটারে ৯০-এর বেশি পেয়েছে এবং কলকাতায় বাস করে", তবে হাজার হাজার পৃষ্ঠার ফাইল হাতড়ে দেখতে হতো অথবা কোনো সফটওয়্যার ডেভেলপারকে ডেকে নতুন প্রোগ্রাম কোড লিখতে হতো।
- ডেটা আইসোলেশন ও প্রোগ্রামের উপর নির্ভরশীলতা: ফ্ল্যাট-ফাইলে সংরক্ষিত ডেটা এবং সংশ্লিষ্ট প্রোগ্রাম ঘনিষ্ঠভাবে আবদ্ধ থাকে। যদি কোনো কারণে ফাইলের গঠন কিছুটা বদলানো হয় (যেমন ফোন নম্বরের ঘর ১০ থেকে বাড়িয়ে ১২ ডিজিট করা হলো), তবে সেই ফাইলের সাথে যুক্ত সমস্ত কম্পিউটার প্রোগ্রাম বিকল হয়ে যেত।
- নিরাপত্তা ও গোপনীয়তার অভাব: ফাইল সিস্টেমে নির্দিষ্ট কোনো তথ্যে ব্যবহারকারীর প্রবেশাধিকার নিয়ন্ত্রণ করা যায় না। যে কেউ ফাইলটি খুললে শিক্ষার্থীর গোপন পরীক্ষার নম্বর, পরিবারের আয় বা চিকিৎসাজনিত স্পর্শকাতর তথ্য সবই দেখে ফেলতে পারত।
- যৌথ ব্যবহারের সমস্যা (Concurrent Access Anomalies): নেটওয়ার্কের মাধ্যমে যখন একাধিক ব্যবহারকারী একই সাথে একটি ফাইল খোলার ও বদলানোর চেষ্টা করে, তখন ডেটা নষ্ট হয়ে যায়। যেমন দুই জন কর্মচারী একই সাথে একজনের ফি জমা নেওয়ার চেষ্টা করলে একজনের আপডেট অন্যজনের আপডেটের উপর চেপে মুছে যেত।
- ডেটা অখণ্ডতার অভাব (Lack of Data Integrity Constraints): ফাইল সিস্টেমে ভুল তথ্য দেওয়া আটকাতে স্বয়ংক্রিয় কোনো নিয়ন্ত্রণ ছিল না। অসাবধানতাবশত বয়স হিসেবে ঋণাত্মক সংখ্যা (-১৫) বা রোলের জায়গায় নাম লিখে ফেললেও ফাইল সিস্টেম তা গ্রহণ করে নিত।