NoSQL কি?
অফিসিয়াল উইকি সংজ্ঞা অনুসারে:“A NoSQL (মূলত "নন এসকিউএল" বা "নন রিলেশনাল" উল্লেখ করে) ডেটাবেস ডেটাবেস স্টোরেজ এবং পুনরুদ্ধারের জন্য একটি পদ্ধতি প্রদান করে যা রিলেশন ডাটাবেসে (RDBMS) ব্যবহৃত ট্যাবুলার রিলেশন ছাড়া অন্য উপায়ে মডেল করা হয়। এটি বিভিন্ন ডাটাবেস প্রযুক্তির একটি বিস্তৃত বৈচিত্র্যকে অন্তর্ভুক্ত করে যা ব্যবহারকারী, বস্তু এবং পণ্য সম্পর্কে সঞ্চিত ডেটার পরিমাণ বৃদ্ধি, এই ডেটা অ্যাক্সেস করার ফ্রিকোয়েন্সি এবং কর্মক্ষমতা এবং প্রক্রিয়াকরণের প্রয়োজনীয়তার প্রতিক্রিয়া হিসাবে তৈরি করা হয়েছিল। সাধারণত, NoSQL ডাটাবেসগুলি একটি মূল-মান জোড়া, গ্রাফ ডাটাবেস, নথি-ভিত্তিক বা কলাম-ভিত্তিক কাঠামোতে গঠিত হয়।
সফ্টওয়্যার বিকাশের কয়েক দশক ধরে, আমরা এসকিউএল (স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ) আকারে ডেটাবেস ব্যবহার করে আসছি যেখানে আমরা আমাদের ডেটা রিলেশনাল টেবিলে সংরক্ষণ করি। যাইহোক, সাম্প্রতিক বছরগুলিতে ইন্টারনেট এবং ওয়েব 2.0 অ্যাপ্লিকেশনগুলির ব্যবহার ব্যাপক বৃদ্ধির সাথে, ডাটাবেসগুলি হাজার হাজার এবং হাজার হাজার টেরাবাইটে বেড়েছে। Facebook, Google, Amazon, Watsapp, ইত্যাদির মতো অ্যাপ্লিকেশনগুলি ডাটাবেস পরিচালনার একটি সম্পূর্ণ নতুন যুগের জন্ম দিয়েছে যা প্রচলিত ডাটাবেসের তুলনায় সহজ নকশা, গতি এবং দ্রুত স্কেলিং পদ্ধতি অনুসরণ করে। এই ধরনের ডেটাবেসগুলি বড় ডেটা, বিশাল রিয়েল টাইম অ্যাপ্লিকেশন এবং বিশ্লেষণে ব্যবহৃত হয়৷
একটি উদাহরণ হিসাবে, বিবেচনা করুন যে আপনার কাছে একটি ব্লগিং অ্যাপ্লিকেশন রয়েছে যা ব্যবহারকারীর ব্লগ সংরক্ষণ করে। এখন ধরুন যে আপনাকে আপনার অ্যাপ্লিকেশনে কিছু নতুন বৈশিষ্ট্য অন্তর্ভুক্ত করতে হবে যেমন ব্যবহারকারীরা এই ব্লগ পোস্টগুলি পছন্দ করে বা তাদের মন্তব্য করে বা এই মন্তব্যগুলি পছন্দ করে৷ একটি সাধারণ RDBMS বাস্তবায়নের সাথে, এটির জন্য আপনার বিদ্যমান ডাটাবেস ডিজাইনের সম্পূর্ণ ওভারহল প্রয়োজন হবে। যাইহোক, যদি আপনি এই ধরনের পরিস্থিতিতে NoSQL ব্যবহার করেন, তাহলে আপনি এই চটপটে প্রয়োজনীয়তার সাথে মেলে আপনার ডেটা কাঠামো সহজেই পরিবর্তন করতে পারেন। NoSQL-এর মাধ্যমে আপনি কোনো নতুন পূর্ব-নির্ধারিত কলাম বা পূর্ব-নির্ধারিত কাঠামো তৈরি না করেই আপনার বিদ্যমান কাঠামোতে এই নতুন ডেটা সরাসরি সন্নিবেশ করা শুরু করতে পারেন।
RDBMS-এর চ্যালেঞ্জ
-
RDBMS ডেটার একটি সু-সংজ্ঞায়িত কাঠামো অনুমান করে এবং অনুমান করে যে ডেটা মূলত অভিন্ন৷
-
এটি আপনার অ্যাপ্লিকেশনের স্কিমা এবং অ্যাপ্লিকেশনটি তৈরি করার আগে এর বৈশিষ্ট্যগুলি (কলাম, প্রকার, ইত্যাদি) আপ-সামনে সংজ্ঞায়িত করতে হবে। এটি অত্যন্ত গতিশীল অ্যাপ্লিকেশনগুলির জন্য চটপটে বিকাশের পদ্ধতির সাথে ভালভাবে মেলে না৷
-
ডেটা বড় হতে শুরু করলে, আপনাকে আপনার ডাটাবেসকে উল্লম্বভাবে স্কেল করতে হবে, অর্থাৎ বিদ্যমান সার্ভারগুলিতে আরও ক্ষমতা যোগ করতে হবে।
RDBMS এর উপর NoSQL এর সুবিধাগুলি
স্কিমা কম −
নোএসকিউএল ডাটাবেসগুলি স্কিমা-লেস হওয়ার কারণে কোনও কঠোর ডেটা কাঠামো সংজ্ঞায়িত করা হয় না।
গতিশীল এবং চটপটে −
NoSQL ডাটাবেসগুলির পরিবর্তনের প্রয়োজনীয়তার সাথে গতিশীলভাবে বৃদ্ধি পাওয়ার প্রবণতা রয়েছে। এটি স্ট্রাকচার্ড, সেমি-স্ট্রাকচার্ড এবং আনস্ট্রাকচার্ড ডেটা পরিচালনা করতে পারে।
অনুভূমিকভাবে স্কেল করে −
এসকিউএল ডাটাবেসগুলির বিপরীতে যা উল্লম্বভাবে স্কেল করে, NoSQL অনুভূমিকভাবে আরও সার্ভার যোগ করে এবং শার্ডিং এবং প্রতিলিপির ধারণা ব্যবহার করে। NoSQL-এর এই আচরণটি ক্লাউড কম্পিউটিং পরিষেবাগুলির সাথে মানানসই যেমন Amazon Web Services (AWS) যা আপনাকে ভার্চুয়াল সার্ভারগুলি পরিচালনা করতে দেয় যা চাহিদা অনুসারে অনুভূমিকভাবে প্রসারিত করা যেতে পারে৷
উন্নত কর্মক্ষমতা −
সমস্ত NoSQL ডাটাবেস প্রথাগত RDBMS বাস্তবায়নের তুলনায় ভাল এবং দ্রুত কর্মক্ষমতা প্রদানের দাবি করে৷
সীমাবদ্ধতা সম্পর্কে কথা বললে, যেহেতু NoSQL ডাটাবেসের একটি সম্পূর্ণ সেট (এবং একটি একক ডাটাবেস নয়), সীমাবদ্ধতাগুলি ডাটাবেস থেকে ডাটাবেসে আলাদা। এই ডাটাবেসগুলির মধ্যে কিছু ACID লেনদেন সমর্থন করে না যখন তাদের কিছু নির্ভরযোগ্যতার অভাব হতে পারে। তবে তাদের প্রত্যেকের নিজস্ব শক্তি রয়েছে যার কারণে তারা নির্দিষ্ট প্রয়োজনীয়তার জন্য উপযুক্ত।
NoSQL ডাটাবেসের প্রকারগুলি
ডকুমেন্ট ওরিয়েন্টেড ডেটাবেস −
ডকুমেন্ট ওরিয়েন্টেড ডাটাবেস একটি নথিকে সামগ্রিকভাবে বিবেচনা করে এবং একটি নথিকে এর উপাদান নাম/মূল্য জোড়ায় বিভক্ত করা এড়ায়। একটি সংগ্রহ স্তরে, এটি একটি একক সংগ্রহে বিভিন্ন নথির সেট একত্রিত করার অনুমতি দেয়। ডকুমেন্ট ডাটাবেস নথিগুলির সূচীকরণের অনুমতি দেয় শুধুমাত্র এর প্রাথমিক শনাক্তকারীর ভিত্তিতে নয় বরং এর বৈশিষ্ট্যগুলির উপরও। বিভিন্ন ওপেন সোর্স ডকুমেন্ট ডেটাবেস আজ উপলব্ধ কিন্তু উপলব্ধ বিকল্পগুলির মধ্যে সবচেয়ে বিশিষ্ট হল MongoDB এবং CouchDB৷ প্রকৃতপক্ষে, MongoDB সবচেয়ে জনপ্রিয় NoSQL ডেটাবেসগুলির মধ্যে একটি হয়ে উঠেছে৷
৷গ্রাফ ভিত্তিক ডেটাবেস −
একটি গ্রাফ ডাটাবেস নোড, প্রান্ত এবং বৈশিষ্ট্য সহ গ্রাফ স্ট্রাকচার ব্যবহার করে ডেটা উপস্থাপন এবং সঞ্চয় করে। সংজ্ঞা অনুসারে, একটি গ্রাফ ডাটাবেস হল যেকোনো স্টোরেজ সিস্টেম যা সূচক-মুক্ত সংলগ্নতা প্রদান করে। এর মানে হল যে প্রতিটি উপাদান তার সন্নিহিত উপাদানের একটি সরাসরি পয়েন্টার ধারণ করে এবং কোন সূচক সন্ধানের প্রয়োজন নেই। সাধারণ গ্রাফ ডাটাবেস যা যেকোনো গ্রাফ সংরক্ষণ করতে পারে সেগুলি বিশেষায়িত গ্রাফ ডাটাবেস যেমন ট্রিপল-স্টোর এবং নেটওয়ার্ক ডাটাবেস থেকে আলাদা। সূচীগুলি গ্রাফটি অতিক্রম করার জন্য ব্যবহৃত হয়৷
কলাম ভিত্তিক ডাটাবেস −
কলাম-ভিত্তিক স্টোরেজ ডেটা কার্যকরভাবে সংরক্ষণ করার অনুমতি দেয়। যখন সেই কলামের জন্য একটি মান বিদ্যমান না থাকে তখন এটি কেবল একটি কলাম সংরক্ষণ না করে নালগুলি সংরক্ষণ করার সময় স্থান গ্রহণ করা এড়ায়। ডেটার প্রতিটি ইউনিটকে কী/মান জোড়ার একটি সেট হিসাবে ভাবা যেতে পারে, যেখানে ইউনিট নিজেই প্রাথমিক শনাক্তকারীর সাহায্যে চিহ্নিত করা হয়, প্রায়শই প্রাথমিক কী হিসাবে উল্লেখ করা হয়। বিগটেবল এবং এর ক্লোনগুলি এই প্রাথমিক কীটিকে রো-কী বলে।
মূল মানের ডেটাবেস −
একটি কী/মান জোড়ার কী সেটের একটি অনন্য মান এবং ডেটা অ্যাক্সেস করার জন্য সহজেই তাক করা যেতে পারে। কী/মান জোড়া বিভিন্ন ধরনের হয়:কিছু ডেটা মেমরিতে রাখে এবং কিছু ডিস্কে ডেটা টিকে থাকার ক্ষমতা প্রদান করে। একটি সহজ, কিন্তু শক্তিশালী, কী/মূল্যের দোকান হল ওরাকলের বার্কলে ডিবি৷
৷জনপ্রিয় NoSQL ডেটাবেস
আসুন আমরা কিছু জনপ্রিয় NoSQL ডাটাবেস সংক্ষিপ্ত করি যেগুলি যথাক্রমে উপরের বিভাগে পড়ে৷
- ডকুমেন্ট ওরিয়েন্টেড ডেটাবেস − MongoDB, HBase, Cassandra, Amazon SimpleDB, Hypertable, ইত্যাদি।
- গ্রাফ ভিত্তিক ডেটাবেস − Neo4j, OrientDB, Facebook Open Graph, FlockDB, ইত্যাদি।
- কলাম ভিত্তিক ডেটাবেস − CouchDB, OrientDB, ইত্যাদি।
- মূল মানের ডেটাবেস − Membase, Redis, MemcacheDB, ইত্যাদি।
NoSQL ডাটাবেস। ছবির উৎস:getfilecloud.com
উপসংহার
এই নিবন্ধে, আমরা NoSQL ডাটাবেস প্রযুক্তি কী এবং এটি প্রাথমিকভাবে একটি RDBMS বাস্তবায়ন থেকে কীভাবে আলাদা সে সম্পর্কে শিখেছি। তারপরে আমরা বিভিন্ন ধরণের NoSQL ডাটাবেস, তাদের অ্যাপ্লিকেশন এবং প্রতিটি ধরণের জনপ্রিয় কিছু ডেটাবেস অন্বেষণ করেছি৷
অনেক সংস্থা আজ তাদের বিশাল ডেটাসেট এবং উচ্চ-স্কেল অ্যাপ্লিকেশনের জন্য এই ধরনের ডাটাবেসের সাথে খাপ খাইয়ে নিচ্ছে। এটি দেখায় যে NoSQL নিঃসন্দেহে ওয়েব এবং ডাটাবেস প্রযুক্তির পরবর্তী বড় জিনিস হতে চলেছে যা RDBMS-এর বছরের দীর্ঘ উত্তরাধিকার ভাঙার সম্ভাবনা রাখে৷