ডেটাবেজ ম্যানেজমেন্ট সিস্টেম
ডেটাবেজ মানে হচ্ছে তথ্যভান্ডার। কম্পিউটার আবিষ্কারের আগ পর্যন্ত ফাইলের স্তুপে জমা থাকতো তথ্য, এখন তথ্য সংরক্ষণ করা হয় ডেটাবেজে। ডাটাবেজ তৈরীর বিভিন্ন প্রোগ্রাম আছে। একটি ডাটাবেজ তৈরী করার পর সেটাকে প্রায়ই হালনাগাদ করার প্রয়োজন পড়ে। এই হালনাগাদের কাজ করার জন্যও বিভিন্ন ধরনের প্রোগ্রাম আছে। ডাটাবেজ ম্যানেজমেন্ট সিস্টেম বা ডিবিএমএস হলো এমন একটি পূর্ণাঙ্গ প্রোগ্রাম যা একই সাথে ডাটাবেজ তৈরী, ব্যবস্থাপনা, তত্ত্ববধান এবং ডাটা প্রসেসের কাজ করে। ডাটাবেজের সাহায্যে ডাটা প্রসেস করে আমরা ঐসব ডাটার প্রকৃতি ও বৈশিষ্ট্য সম্পর্কে জানতে পারি। যদিও ডাটা প্রসেস করে নলেজ মাইন করা ডাটাবেজের মুল উদ্দেশ্য নয়। নলেজ মাইনিংয়ের জন্য ডাটা মাইনিং টুলস ব্যবহৃত হয়ে থাকে। ডাটাবেজের মুল উদ্দেশ্য হলো, দ্রুত গতিতে ডাটার খোঁজ করা, সবচেয়ে নিরাপদ উপায়ে ডাটা সংরক্ষণ করা ইত্যাদি। ডাটাবেজ ম্যানেজমেন্ট সিস্টেম সেই সমস্ত ক্ষেত্রে অপরিহার্য যেখানে একই সময় একাধিক ব্যবহারকারী একই ডাটা ব্যবহার করে থাকেন। যেমন, একটি ব্যাংকের একাধিক শাখায় অবস্থিত কর্মকর্তারা যদি একই তথ্য, একই সময়ে হালনাগাদ করতে চান, তখন বিভিন্ন সমস্যার তৈরী হতে পারে। ডাটাবেজ ম্যানেজমেন্ট সিস্টেম, এই সমস্যাগুলোকে খুবই দক্ষতার সাথে সামাল দেয়।
কম্পিউটার আবিষ্কার এবং এর ব্যবহারের শুরুর দিকেই তথ্য তৈরী, সংরক্ষণ এবং খোঁজার কাজটি বেশ গুরুত্বপূর্ণ হয়ে উঠেছিলো। সর্বপ্রথম ১৯৬০ সালে, বিখ্যাত কম্পিউটার বিজ্ঞানী চার্লস বাকম্যান ডিবিএমএস তৈরী করেন। তিনি তখন জেনারেল ইলেট্রিকে কর্মরত ছিলেন। সেই ডিবিএমএসটির নাম দেয়া হয়েছিলো, ইন্টিগ্রেটেড ডাটা স্টোর(আইডিএস) । ষাটের দশকের শেষের দিকে আইবিএম ইনফরমেশন ম্যানেজমেন্ট সিস্টেম নামে একটি ডিবিএমএস তৈরী করে। এই সফটওয়্যারটিই, তথ্যকে শ্রেনীক্রম অনুসারে কিভাবে সাজানো যায় তার একটি ধারনা দিয়েছিলো, যা বর্তমানে হায়ারারকিকাল ডাটা মডেল নামে পরিচিত। ১৯৭০ সালে এটস্খার কড, তথ্যকে পরিবেশন করার নতুন একটা মডেলের প্রস্তাব দেন। তিনি তখন আইবিএম'র স্যান হোস গবেষণাগারে কর্মরত ছিলেন। এই ধারনাটিই রিলেশনাল ডাটা মডেল নামে পরিচিত। ডিবিএমসের ক্রমবিকাশের সবচেয়ে গুরুত্বপূর্ণ অধ্যায় শুরু হয়, ইন্টারনেটের আবিষ্কার এবং এর বহুল ব্যবহারের পর থেকে। এখন ওয়েবসাইট ভিত্তিক ডাটাবেজকে উন্নত করার জন্য নানা ধরনের গবেষণা চলছে। [1]
একই তথ্যের পুনরাবৃত্তি রোধ করে স্থানের সর্বোচ্চ ব্যবহার। ধরা যাক, একটি স্কুলের ডাটাবেজে, তিন ধরনের টেবিল আছে। প্রথম টেবিলে, শিক্ষার্থীদের পরীক্ষার রেজাল্ট সংক্রান্ত তথ্য । দ্বিতীয় টেবিলে তাদের বেতন সম্পর্কিত তথ্য । তৃতীয় টেবিলে তাদের ব্যক্তিগত তথ্য। দেখা যাবে, প্রতিটি টেবিলেই, শিক্ষার্থীদের নাম উল্লেখ করতে হচ্ছে। অথচ, ডাটাবেজ ম্যানেজমেন্ট সিস্টেম ব্যবহার করে আমরা শুধু মাত্র এক যায়গায় শিক্ষার্থীদের নাম সংরক্ষন করে, পরবর্তীতে ঐ জায়াগার রেফারেন্স দিয়ে দিতে পারি। তথ্যের অসামঞ্জস্যতা দুর করা। বিচ্ছিন্নভাবে সংরক্ষিত তথ্যে বিভ্রাট বা যৌক্তিক অসামঞ্জস্যতা থাকতে পারে। ডিবিএমএসে তথ্য সংরক্ষণ করা হলে, তথ্যের যেকোন ধরনের অসামঞ্জস্যতা সনাক্ত করা যায়। যেমন, একই ব্যক্তির ছবির শিরোনাম ভিন্ন হতে পারে না। দেখা গেলো, একই রকম ছবি বা তথ্য জমা দিয়ে, দুজন ভিন্ন ব্যক্তি, দুটো ভিন্ন নাম ব্যবহার করলো। ডিবিএমএস ব্যবহারের মাধ্যমে তা সনাক্ত করা সম্ভব। একই সময়ে একাধিক ব্যবহারকারী একই তথ্য নিয়ে কাজ করতে সক্ষম[2] তথ্যের নিরাপত্তা নিশ্চিত করা। তথ্য নবায়ন করার পর, সংরক্ষণের আগেই যেনো তা মুছে না যায় তা নিশ্চিত করা। যেমন, কোন তথ্যভান্ডারে ২০০ ডাটা নবায়ন করার পর, সংরক্ষণের আগেই বিদ্যুৎ চলে যেতে পারে। এই সমস্যা সমাধানের ব্যবস্থা ডিবিএমএস এ আছে। ডিবিএমএস তথ্যের যেকেনো পরিবর্তনের সুচী তৈরী করে রাখে। যখন প্রয়োজন হয়, তখন স্বল্পমেয়াদের জন্য তৈরীকৃত ঐসব সুচীর মাধ্যমে তথ্য উদ্ধার করা হয়। তথ্যের স্বনির্ভরতা তৈরী করা। এর মানে হলো, তথ্য যেন তথ্য ব্যবস্থাপনা প্রোগ্রামের ওপর নির্ভর না হয়। তাতে সুবিধা হবে এই যে, এক ডিবিএমএসএ তৈরী করা তথ্য অন্য ডিবিএমএস এ ব্যবহার করা যাবে। স্বল্পতম সময়ে তথ্য খুঁজে বের করা। সহজে এবং কম সময়ে ডাটাবেজ বা তথ্যভান্ডার তৈরী করা [3]
১৯৮০ সালে ড. কড রিলেশনাল ডাটাবেজ তৈরীর ১২ টি নীতি প্রস্তাব করেন।
সূত্র ১: সমস্ত ডাটাকে টেবিলের মাধ্যমে উপস্থাপন করতে হবে। সূত্র ২: প্রতিটি ডাটার একটি অনন্য মান থাকবে, যেনো একই ধরনের ডাটা নিয়ে বিভ্রান্তি তৈরী না হয়। যেমন, সরদার আমীর আলি নামের অনেক ব্যক্তিই থাকতে পারেন। এজন্য প্রতিটি নামের সাথেই একটি অনন্য নির্দেশক থাকবে যা শুধু ঐ নামটিকেই নির্দেশ করবে। যেমন, একজনের বয়স যদি ৫৯ হয় এবং অপরজনের যদি ১৫ হয়, তাহলে আমরা নামের প্রথম অক্ষরগুলোর সাথে বয়স জুড়ে দিয়ে ভিন্ন ভিন্ন নির্দেশক বের করতে পারি। সআআ৫৯ এক ব্যক্তি, কিন্তু সআআ১৫ অন্য ব্যক্তি। যদিও সাধারণত এসব ক্ষেত্রে সংখ্যা ব্যবহার করা হয়। কারণ, সংখ্যাকে প্রসেস করা অপেক্ষাকৃত সহজ। সূত্র ৩: তথ্য পুরণের ঘর প্রয়োজনে খালি থাকতে পারবে। সূত্র ৪: ডাটাবেজের গঠন প্রকৃতি এবং বর্ণনা, তার সাথেই দেয়া থাকতে হবে। সূত্র ৫: ডাটাবেজের সাথে একটি সুনির্দিষ্ট কুয়েরী ভাষা তৈরি করতে হবে। যেনো, ঐ ভাষা ব্যবহার করে নতুন ধরনের তথ্য তৈরী, তথ্য ব্যবস্থাপনা, ট্রান্সফার এবং তথ্যের সামঞ্জস্যতা রক্ষা করা যায়। সূত্র ৬: তথ্যকে বিভিন্ন আঙ্গিকে উপস্থাপন করার সুবিধা থাকতে হবে। অর্থাৎ কুয়েরী ভাষা ব্যবহার করে বিভিন্ন ভাবে তথ্য সাজিয়ে, তা উপস্থাপন করার ব্যবস্থা থাকতে হবে। সূত্র ৭: তথ্য সংযোজন, বিয়োজন এবং নবায়ন এর কাজ যেনো উচ্চ পর্যায়ে করা যায়, সেই ব্যবস্থা থাকতে হবে। উচ্চ পর্যায় বলতে বোঝানো হচ্ছে যে, কুয়েরী ভাষা দিয়ে নতুন নতুন রুল তৈরী করে যেন এসব কাজ করা যায়। যেনো, একজন ব্যবহারকারী যেকোন ধরনের সেট গঠন করতে পারেন। সূত্র ৮: তথ্যকে হার্ডওয়্যার থেকে পৃথক রাখতে হবে। সূত্র ৯: তথ্য উপস্থাপনের প্রক্রিয়া, তথ্য সংরক্ষণের থেকে স্বনির্ভর হতে হবে। অর্থাৎ তথ্যকে যেভাবেই সংরক্ষণ করা হোক, তথ্য উপস্থাপন তার উপর নির্ভর করবে না। এর সুবিধা হলো, যখন তথ্যের সংরক্ষণ অভ্যন্তরীণ কাঠামো পরিবর্তন করতে হবে, তখন আবার নতুন করে, তথ্য উপস্থাপনের প্রয়োজন হবে না। সূত্র ১০: ডাটাবেজের সামঞ্জস্যতা বজায় রাখার জন্য, ডাটাবেজ ব্যবহারকারীর উপর কিছু সুনির্দিষ্ট বিধিনিষেধ থাকবে। সূত্র ১১: ডাটাবেজ এমন ভাবে বানাতে হবে, যেনো যদি সেটি একাধিক স্থানে, কম্পিউটারে বা সার্ভারে, অবস্থিত হয়, ব্যবহারকারীর যেনো তা নিয়ে কোন আলাদা শ্রম ব্যয় করার প্রয়োজন না থাকে। অর্থাৎ, একটি ডাটাবেজ একই স্থানে অবস্থিত, না একাধিক স্থানে, তা না জেনেই একজন ব্যবহারকারী যেনো তা ব্যবহার করতে পারেন। সূত্র ১২: একটি ডিবিএমএস যদি লো এবং হাই, এ দু লেভেলের ভাষা ব্যবহারেরই ব্যবস্থা রাখে, তাহলে নিশ্চিতকরতে হবে, লো লেভলের ভাষা যেনো হাই লেভেলের ভাষার সাথে সামঞ্জস্যপূর্ণ হয়। অর্থাৎ, লো-লেভেলের ভাষা দিয়ে এমন কিছু করা যাবে না, যা হাই লেভেল ভাষায় নিষিদ্ধ।
অন্য অনেক কাজের মধ্যে ডিবিএমএসের একটি গুরুত্বপূর্ণ কাজ হলো, তথ্য সংরক্ষণ এবং ব্যবস্থাপনার পদ্ধতি সংক্রান্ত ঝামেলা থেকে তথ্যের ব্যবহারকারীকে দুরে রাখা। অর্থাৎ, আপনি যদি কোন ডাটাবেজ থেকে কোন তথ্য জানতে চান, তাহলে সেই ডাটাবেজের গঠন প্রকৃতি বা তাতে কিভাবে তথ্য সংরক্ষণ করা হয়েছে তা আপনার জানা লাগবেনা। যাঁরা ডাটাবেজ তৈরী করেন, তাঁরা এ কাজটি করার জন্য, কয়েক স্তরের এবস্ট্রাকশন ব্যবহার করেন। এবস্ট্রাকশন কি? এবস্ট্রাকশন হলো এক ধরনের বিমুর্ত ধারনা। তথ্যকে ধারনাকে তিনটি স্তরে প্রকাশ করা যায়:
গাঠনিক স্তর: এই স্তরটি সবচেয়ে নীচের স্তর। এর মানে হলো, এ স্তরটি আন্য স্তরের ভিত্তি। এ স্তরে, একটি ডাটাবেজ কিভাবে গঠন করা হলো, এতে তথ্য কি উপায়ে রাখা হলো, তথ্যের গঠন কি ইত্যাদি বিস্তারিত দেয়া থাকে। যৌক্তিক স্তর: এই স্তরে মুল ডাটা রাখা থাকে। এবং সেসব ডাটার মধ্যে সম্পর্ক কি তাও এ স্তরেই সংজ্ঞায়িত করা হয়। উল্লেখ্য, এই স্তরের ব্যবহারকারীর গাঠনিক স্তর সম্পর্কে কোন ধারনার প্রয়োজন হয় না। উপস্থাপন স্তর: এটিই সর্বোচ্চ স্তর। এই স্তরে বলা থাকে, একজন ব্যবহারকারী কিভাবে, কত সহজে ডাটাবেজে রাখা তথ্য দেখতে পারবে।
নীচে ছবির মাধ্যমে উপরোল্লিখিত তিনটি স্তর দেখানো হয়েছে,ডাটাবেজ।
ওরাকল, এসকিউএল, এসকিউএল-লাইট, পোস্টজিআরই-এসকিউএল, মাইক্রোসফট এসকিউএল সার্ভার, আইবিএম ডিবি২, মাইক্রোসফট এক্সেস ইত্যাদি।