6.2 রিলেশনাল ডেটাবেজ (Relational Database)

রিলেশনাল ডেটাবেজ-এ ডেটাকে এক বা একাধিক টেবিলে সংরক্ষণ ও প্রকাশ করা হয়। কিছু কিছু টেবিলের মধ্যে অনেক সময় সম্পর্ক (relationship) থাকতে পারে। যেমন- ধরা যাক, একটি স্কুলের ডেটাবেজ ওই স্কুলের শিক্ষক ও শিক্ষার্থীর নানান ধরনের তথ্য থাকতে পারে। আবার পরীক্ষার ফলাফল, ক্লাসের রুটিন, এসব তথ্যও ডেটাবেজে থাকতে পারে। একই ধরনের সব তথ্য একটি টেবিলে থাকবে। যেমন শিক্ষকদের তথ্যের জন্য teacher টেবিল, শিক্ষার্থীদের তথ্যের জন্য student টেবিল, পরীক্ষার ফলাফল রাখার জন্য result টেবিল তৈরি করতে হবে। student টেবিল ও result টেবিলের মধ্যে একটি সম্পর্ক থাকবে, যেন দুটি টেবিল থেকে একজন শিক্ষার্থীর ব্যক্তিগত তথ্য ও পরীক্ষার ফলাফল সংক্রান্ত তথ্য একসঙ্গে পাওয়া যায়। আর এসব টেবিল মিলে তৈরি হবে school ডেটাবেজ।

একটি ডেটাবেজ টেবিলের দুটি অংশ থাকে, টেবিল হেডার (table header) ও টেবিল বডি (table body)। টেবিল হেডারে থাকে বিভিন্ন কলামের নাম এবং সেই কলামে কী ধরনের ডেটা রাখা হবে তার তথ্য। আর টেবিলের বডিতে থাকে মূল তথ্য। প্রতিটি সারি (row)-তে একটি নির্দিষ্ট বিষয়ের তথ্য থাকে। একটি টেবিলে কী কী ডেটা রাখা হবে এবং সেগুলো কী ধরনের হবে, সেটি আগে ঠিক করতে হয়। যেমন- শিক্ষার্থীর টেবিলে থাকতে পারে শিক্ষার্থীর নাম, রোল নম্বর, ক্লাস, বিভাগ/শাখা, অভিভাবকের নাম, অভিভাবকের ফোন নম্বর, বাসার ঠিকানা ইত্যাদি।

ডেটার ধরন বিভিন্ন রকমের হতে পারে। সি প্রোগ্রামিং ভাষায় যেমন নির্দিষ্ট কিছু ডেটা টাইপ রয়েছে, রিলেশনাল ডেটাবেজেও তেমনি কিছু ডেটা টাইপ রয়েছে। বিভিন্ন ডেটাবেজ নির্মাতারা নিজেদের মতো ডেটা টাইপ নির্দিষ্ট করে দেন, তবে বেশ কিছু ডেটা টাইপ সব ডেটাবেজেই পাওয়া যায়। যেমন- টেক্সট (text), পূর্ণসংখ্যা (integer), দশমিকযুক্ত সংখ্যা (decimal number), তারিখ (date) ইত্যাদি।

এখন আমরা টেবিলের উদাহরণ দেখি:

টেবিলের নাম : শিক্ষার্থী

শিক্ষার্থীর নাম (টেক্সট)রোল নম্বর (পূর্ণসংখ্যা)শ্রেণি (পূর্ণসংখ্যা)শাখা (টেক্সট)অভিভাবকের নাম (টেক্সট)ফোন নম্বর (টেক্সট)
মিজানুর রহমানদিবাআব্দুর রহমান০২০৩০২
মোশাররফ হোসেনদিবাসেলিনা খাতুন০২০৩০৪
সৌরভ দাসপ্রভাতিঅজয় দাস০৩০৪০২
শাকিল মিয়াপ্রভাতিমনসুর মিয়া

এই শিক্ষার্থী টেবিলের প্রথম সারিটি হচ্ছে টেবিলের হেডার। এই সারিতে যেসব ঘর আছে, প্রতিটি হচ্ছে একটি কলাম (column)-এর নাম এবং তার ডেটা টাইপ (মানে ওই কলামে কী ধরনের ডেটা থাকবে)। যেমন- শিক্ষার্থীর নাম হচ্ছে একটি কলামের নাম এবং সেখানে টেক্সট টাইপের ডেটা থাকবে। এর নিচে যত ঘর থাকবে, সব ঘরে বিভিন্ন শিক্ষার্থীর নাম থাকবে, অন্য কোনো তথ্য থাকতে পারবে না। আর দ্বিতীয় সারি থেকে প্রতিটি সারিতে একজন করে শিক্ষার্থীর তথ্য দেওয়া আছে। যেমন- দ্বিতীয় সারির প্রথম ঘরে আছে মিজানুর রহমান, যা একজন শিক্ষার্থীর নাম, তারপরের ঘরে আছে তার রোল নম্বর, তারপরের ঘরে আছে তার শ্রেণি, অর্থাৎ সে কোন শ্রেণিতে পড়ছে, ইত্যাদি। একটি সারিতে কেবল একজন শিক্ষার্থীর তথ্য থাকবে, কখনো একাধিক তথ্য থাকবে না।

প্রতিটি সারিকে ইংরেজিতে বলে রো (row)। এগুলোকে রেকর্ড (record)-ও বলা হয়ে থাকে। আর টেবিলের প্রতিটি ঘর হচ্ছে একেকটি ফিল্ড (field)।

বর্তমানে বিশ্বব্যাপী জনপ্রিয় ও বহুল ব্যবহৃত রিলেশনাল ডেটাবেজ হচ্ছে ওরাকল (Oracle), মাইএসকিউএল (MySQL), মাইক্রোসফট এসকিউএল সার্ভার (Microsoft SQL Server), পোষ্টগ্রেস (PostgreSQL), মাইক্রোসফট অ্যাকসেস (Microsoft Access) ও এসকিউলাইট (SQLite)। এগুলোর মধ্যে মাইসিক্যুয়েল, পোস্টগ্রেস ও এসকিউলাইট হচ্ছে ফ্রি এবং ওপেন-সোর্স (free & open source) ডেটাবেজ। অর্থাৎ এগুলো ব্যবহার করার জন্য টাকা দিতে হয় না, এবং এগুলোর সোর্সকোডও উন্মুক্ত।

নোট : উচ্চারণের সুবিধার জন্য এসকিউএল শব্দটি অনেকে সিক্যুয়েল বলে উচ্চারণ করে। SQL শব্দটির পূর্ণরূপ, স্ট্রাকচারড কুয়েরি ল্যাঙ্গুয়েজ (Structured Query Language)।