সিকুয়েল এবং নো-সিকুয়েল এর মাঝে পার্থক্য : এতোদিন ধরে আমরা যারা ডাটাবেজ নিয়ে কাজ করে এসেছি, তাদের কাছে সিকুয়েল (SQL) জানাটা একটা বিশাল ব্যাপার ছিল। ওরাকল, মাইক্রোসফট এবং বহুল ব্যবহৃত মাইসিকুয়েল (MySQL) নিয়ে আমাদের ভাবনার অন্ত ছিল না। কিন্তু সেই অহংকারে এসে বিশাল এক ধাক্কা দিয়েছে "নো-সিকুয়েল" (NoSQL)। নাম শুনেই বুঝতে পারছেন, এই নতুন প্রযুক্তিটি প্রচলিত ধারার সিকুয়েল ডাটাবেজ নয় - বরং ঠিক উল্টো। আর যখন ইয়াহু, গুগল, ফেসবুক, টুইটারের মতো বিশাল কোম্পানীগুলো এই নো-সিকুয়েল ব্যবহার করে, তখন বুঝতেই পারছেন এর ঘটনা! নোসিকুয়েল এবং সিকুয়েল এর মাঝে পার্থক্য কী? কেনই বা সৃষ্টি হল নো-সিকুয়েল ডাটাবেজ? এই প্রশ্নগুলি এখন জাগতে পারে। নো-সিকুয়েল ডাটাবেজ এখন এতটাই উন্নত হয়েছে যে, সে তার ডাটাবেজেও তথ্য সংরক্ষণ করতে পারে। তাহলে এই দুই ডাটাবেজের মাঝে পার্থক্য কোথায়?
ব্যবহারকারীকে কিভাবে দ্রুত এবং সঠিকভাবে অধিক সুবিধা প্রদান করা যায় সেই লক্ষ্য নিয়ে তৈরি হয়েছে নো-সিকুয়েল ডাটাবেজ। বর্তমানে স্টোরেজ প্রযুক্তির ক্ষেত্রে যে বিপ্লব ঘটে গিয়েছে তার সাথে পাল্লা দিতে এবং আরো ভালো পারফরমেন্স নিংরে নেবার প্রচেষ্টা স্বরূপ ডাটাবেজ ডেভেলপারেরা এই পদ্ধতিটি গ্রহণ করে।
সিকুয়েল ডাটাবেজ কি?সিকুয়েল নিয়ে যখন কথা হচ্ছে তখন এ সম্পর্কে সাধারণ জ্ঞান থাকা প্রয়োজন। এটি একটি ডাটাবেজ যা তথ্যের রিলেশনাল বা সম্পর্কের উপর নির্ভর করে ডাটাবেজ সংরক্ষণ করে - যাকে আমরা বলি "রিলেশনাল ডাটাবেজ"। ডাটাবেজটি তথ্য সংরক্ষণের জন্য তথ্যের মাঝে থাকা সম্পর্কের (অনেক সময় একে টেবিল বলা হয়) উপর খুব বেশি নির্ভর করে। একটি রিলেশনাল ডাটাবেজ সাধারণত ডাটাশিটে পাওয়া বৈশিষ্ট্য ব্যবহার করে একই রকম ডাটার সাথে মেলায়। এবং এর ফলাফলের মাধ্যমে যে গ্রুপের সৃষ্টি হয় তাকে স্কিমা বলে।
রিলেশনাল ডাটাবেজের এই সম্পর্ক বা টেবিলগুলো সারি এবং কলামে বিভক্ত থাকে। ডাটাবেজ টেবিলের সারিগুলোকে বোঝানোর জন্য একটি টাপল ব্যবহার করা হয় এবং প্রশ্ন বা কোয়ারির মাধ্যমে তথ্য উদ্ধার করা যায়।
এসকিউএল কিভাবে সাহায্য করে:সিকুয়েল বা স্ট্রাকচার্ড কোয়ারি ল্যাঙ্গুয়েজ (SQL) (প্রশ্ন জিজ্ঞাসার কাঠামোগত ভাষা) হচ্ছে একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা ব্যবহার করে রিলেশনাল ডাটাবেজকে নিয়ন্ত্রণ করা হত। যেমন ধরুন মাইক্রোসফটের সিকুয়েল সার্ভার, এই সার্ভারের রিলেশনাল ডাটাবেজ ব্যবহার করে নেটওয়ার্ক অথবা লোকাল কম্পিউটারের সাহায্য নিয়ে অ্যাপ্লিকেশনের মাধ্যমে তথ্য সংগ্রহ এবং সংরক্ষণ করা হত।
নোসিকুয়েল ডাটাবেজ কি?গত কয়েক বছর যাবত তথ্য সংরক্ষণ সংক্রান্ত "এক জিনিস সবার জন্য" চিন্তাধারাটি বিজ্ঞান এবং ওয়েব নির্ভর প্রতিষ্ঠানগুলোর কাছ থেকে সমালোচিত হয়েছে। আর সেখান থেকে বিকল্প ডাটাবেজের ধারণা জন্ম নেয়। নতুন এই প্রক্রিয়া এবং তথ্য সংরক্ষণের পদ্ধতিটি সকলের কাছে পরিচিত হয় নোসিকুয়েল হিসেবে।
নোসিকুয়েলের মৌলিক বৈশিষ্ট্য হচ্ছে ফিক্সড টেবিল স্কিমাসের প্রয়োজন নেই, "জয়েন" (JOIN) অপারেশন এড়িয়ে থাকে এবং সাধারণত অনুভূমিক (হরাইজন্টালি) স্কেল বা আকার পরিবর্তন করে। অ্যাকাডেমিক গবেষকেরা এ ধরণের ডাটাবেজগুলোকে সাধারণত স্ট্রাকচার্ড স্টোরেজ হিসেবে অভিহিত করেন। এই শব্দ ব্যবহার করার ফলে ক্লাসিক রিলেশনাল ডাটাবেজ সাবসেটের মধ্যে পরে যায়।
এছাড়া নোসিকুয়েল ডাটাবেজ থেকে বাদ পরে যায় "অ্যাসিড" (অ্যাটমিক, কনসিস্টেন্সি, আইসোলেশন, এবং ডিউরাবিলিটি)। এই ডাটাবেজটির তারতম্যের মাত্রা নানাধরনের, এমনকি ডাটার স্কিমা রেকর্ড ভেদে ভিন্ন হতে পারে।
আপনার নিশ্চয়ই জানতে ইচ্ছে করছে নোসিকুয়েলে যদি স্কিমা বা টেবিল না থাকে তাহলে ডাটাবেজের কাঠামোটি কি রকম তা বুঝবেন কিভাবে। উত্তর এখানে-
স্কিমার প্রয়োজন নেই: নির্দিষ্ট কোন ডাটাবেজ স্কিমা প্রথমে নির্ধারণ করা ব্যতীতই নোসিকুয়েল ডাটাবেজে তথ্য দেয়া যাবে। ফলে, অ্যাপ্লিকেশনে সমস্যার সৃষ্টি না করে যে সকল তথ্য ডাটাবেজে রাখা হয়েছে সেগুলোতে যে কোন সময় পরিবর্তন আনা সম্ভব হবে। যার কারণে এই ডাটাবেজ অ্যাপ্লিকেশনের ক্ষেত্রে নিয়ে এসেছে প্রচণ্ড ফ্লেক্সিবিলিটি, যা পরবর্তীতে ব্যবসায়িক ক্ষেত্রে নিয়ে আসছে প্রচণ্ড ফ্লেক্সিবিলিটি।
অটো ইলাস্টিসিটি: কোন ধরণের অ্যাপ্লিকেশনের সাহায্য ছাড়াই নোসিকুয়েল স্বয়ংক্রিয়ভাবে আপনার তথ্যগুলোকে একাধিক সার্ভারে সংরক্ষণ করবে। অ্যাপ্লিকেশনের পারফরমেন্সের ক্ষেত্রে কোন প্রতিক্রিয়া সৃষ্টি ব্যতিরেকে ডাটা লেয়ার থেকে সার্ভার বাদ বা যোগ করা সম্ভব।
ইন্টিগ্রেটেড ক্যাশিং: তথ্যের আদান-প্রদান বাড়ানো এবং পারফরমেন্স আগে থেকে বৃদ্ধি করার জন্য নোসিকুয়েল সিস্টেম মেমরিতে ডাটা ক্যাশে করতে পারে। সিকুয়েল ডাটাবেজের ক্ষেত্রে একই সুবিধা পেতে হলে আপনাকে আলাদাভাবে অবকাঠামো তৈরি করতে হবে।
এবার আশা যাক নোসিকুয়েলের ডাটা স্টোরেজ অবকাঠামো সম্পর্কে। মোটামুটি জনপ্রিয় তিনটি ডাটাবেজ রয়েছে নোসিকুয়েলে।
কি-ভ্যালু স্টোরস: এই পদ্ধতিতে তথ্যগুলো সংরক্ষণ এবং সূচি তৈরি করা হয় একটি কি-এর মাধ্যমে।
কলাম-নির্ভর ডাটাবেজ: একগুচ্ছ তথ্যকে কলাম এবং সাড়ির সাহায্যে তৈরি করা ভারী টেবিল যেখানে প্রতিটি তথ্য সংরক্ষণের জন্য থাকবে অভিন্ন ফিল্ড, তার বদলে কলাম-নির্ভর ডাটাবেজে একগুচ্ছ তথ্যের জন্য থাকবে একটি এক্সটেন্ডেড কলাম।
ডকুমেন্ট-নির্ভর স্টোরস: কাঠামোগত টেবিলের মধ্যে প্রতিটি তথ্যের জন্য অভিন্ন ফিল্ডের বদলে এই ডাটাবেজগুলো তথ্য সংরক্ষণ এবং বণ্টন করে ডকুমেন্ট হিসেবে। এ ধরনের ডাটাবেজ ব্যবহার করে ব্যবহারকারীরা একটি ডকুমেন্টে সৃষ্টি করতে পারে যে কোন সংখ্যক যে কোন আকারের ফিল্ড।
Source : Iqbal Ahsan,