ওরিয়েন্টডিবি (OrientDB) একটি মাল্টিমডেল ডেটাবেস যা ডকুমেন্ট ডেটাবেস হিসেবে কার্যকরীভাবে কাজ করে। এটি JSON বা BSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং ডকুমেন্ট মডেলিংয়ের জন্য খুবই উপযুক্ত। ওরিয়েন্টডিবি ডকুমেন্ট তৈরি এবং হ্যান্ডলিং করতে SQL-এর মতো Query Language ব্যবহার করে, যা ডকুমেন্টগুলিকে সহজেই তৈরি, আপডেট, ডিলিট এবং অনুসন্ধান করতে সক্ষম। এখানে OrientDB তে ডকুমেন্ট তৈরি এবং হ্যান্ডলিংয়ের কিছু বেসিক কৌশল আলোচনা করা হলো।
১. ডকুমেন্ট তৈরি করা (Creating a Document)
ওরিয়েন্টডিবি-তে ডকুমেন্ট তৈরি করা সহজ এবং এটি JSON ফরম্যাটে স্টোর করা হয়। ডকুমেন্ট তৈরি করতে SQL-এর মতো কুয়েরি ব্যবহার করা হয়। আপনাকে একটি ডকুমেন্টের জন্য একটি ক্লাস (যেমন Person) তৈরি করতে হবে এবং তার পর ডকুমেন্ট তৈরি করতে হবে।
১.১ ক্লাস তৈরি করা (Creating a Class)
প্রথমে, ডকুমেন্ট তৈরি করার জন্য একটি ক্লাস তৈরি করা হয়। ক্লাস হল ডকুমেন্টের কাঠামো, যেখানে ডেটার প্রপার্টি এবং টাইপ নির্ধারণ করা হয়।
CREATE CLASS Person EXTENDS V;
এখানে Person ক্লাস তৈরি করা হয়েছে যা V (vertex) থেকে ইনহেরিট করেছে, অর্থাৎ এটি একটি গ্রাফের নোড হিসেবে কাজ করবে।
১.২ ডকুমেন্ট তৈরি করা (Creating Document)
ডকুমেন্ট তৈরি করতে INSERT কুয়েরি ব্যবহার করা হয়, যেখানে ডেটা JSON বা BSON ফরম্যাটে যুক্ত করা হয়।
INSERT INTO Person SET name = 'John', age = 30, address = '123 Main St';
এই কুয়েরি একটি Person ক্লাসের ডকুমেন্ট তৈরি করবে, যার মধ্যে name, age, এবং address প্রপার্টি থাকবে।
১.৩ নেস্টেড ডকুমেন্ট (Nested Document)
ওরিয়েন্টডিবি-তে আপনি নেস্টেড ডকুমেন্টও তৈরি করতে পারেন, যেখানে একটি ডকুমেন্টের মধ্যে আরেকটি ডকুমেন্ট থাকতে পারে। এটি জটিল ডেটা স্ট্রাকচার ধারণ করার জন্য উপকারী।
INSERT INTO Person SET name = 'Jane', age = 28, address = { street: '456 Oak St', city: 'Metropolis' };
এখানে address প্রপার্টি একটি নেস্টেড ডকুমেন্ট। এইভাবে আপনি একটি ডকুমেন্টের মধ্যে আরেকটি ডকুমেন্ট (যেমন, address) ধারণ করতে পারেন।
২. ডকুমেন্ট আপডেট করা (Updating a Document)
ডকুমেন্টে পরিবর্তন করতে UPDATE কুয়েরি ব্যবহার করা হয়। আপনি ডকুমেন্টের নির্দিষ্ট প্রপার্টি বা সমস্ত প্রপার্টি আপডেট করতে পারেন।
২.১ ডকুমেন্ট আপডেট (Update Document)
UPDATE Person SET age = 31 WHERE name = 'John';
এই কুয়েরিটি name = 'John' এর সাথে মেলা ডকুমেন্টের age প্রপার্টি ৩০ থেকে ৩১ এ পরিবর্তন করবে।
২.২ নেস্টেড ডেটা আপডেট (Update Nested Data)
নেস্টেড ডকুমেন্টের মধ্যে ডেটা আপডেট করতে, ডকুমেন্টের নির্দিষ্ট অংশ লক্ষ্য করে কুয়েরি করা হয়।
UPDATE Person SET address.city = 'Gotham' WHERE name = 'Jane';
এখানে, address.city প্রপার্টি আপডেট করা হয়েছে যেখানে name = 'Jane'।
৩. ডকুমেন্ট ডিলিট করা (Deleting a Document)
ওরিয়েন্টডিবি-তে ডকুমেন্ট মুছে ফেলতে DELETE কুয়েরি ব্যবহার করা হয়। ডকুমেন্ট নির্দিষ্টভাবে ডিলিট করা বা পুরো ক্লাস থেকে ডিলিট করা যেতে পারে।
৩.১ ডকুমেন্ট ডিলিট (Delete Document)
DELETE FROM Person WHERE name = 'John';
এই কুয়েরি name = 'John' এর সাথে মেলা সমস্ত Person ডকুমেন্ট মুছে ফেলবে।
৩.২ সব ডকুমেন্ট ডিলিট (Delete All Documents)
DELETE FROM Person;
এটি Person ক্লাসের সমস্ত ডকুমেন্ট মুছে ফেলবে।
৪. ডকুমেন্ট অনুসন্ধান করা (Querying Documents)
ওরিয়েন্টডিবি-তে ডকুমেন্ট অনুসন্ধান করতে SELECT কুয়েরি ব্যবহার করা হয়, যা SQL-এর মতো কাজ করে। আপনি ডকুমেন্টের প্রপার্টি অনুসারে কুয়েরি করতে পারেন।
৪.১ বেসিক সিলেক্ট (Basic Select)
SELECT * FROM Person WHERE age > 25;
এই কুয়েরি Person ক্লাসের সমস্ত ডকুমেন্ট থেকে সেই ডকুমেন্টগুলো নির্বাচন করবে যার age ২৫ এর চেয়ে বড়।
৪.২ সিলেক্ট সুনির্দিষ্ট ফিল্ড (Select Specific Fields)
SELECT name, age FROM Person WHERE city = 'Metropolis';
এটি Person ক্লাসের নাম এবং বয়স শুধুমাত্র নির্বাচন করবে যেখানে শহর Metropolis।
৫. ডকুমেন্ট ইন্ডেক্সিং (Indexing Documents)
ইন্ডেক্সিং ডকুমেন্ট অনুসন্ধান দ্রুত করতে সহায়তা করে। আপনি ডকুমেন্টের উপর ইন্ডেক্স তৈরি করতে পারেন যাতে প্রপার্টি অনুসারে দ্রুত অনুসন্ধান করা যায়।
৫.১ ইন্ডেক্স তৈরি করা (Creating an Index)
CREATE INDEX ON Person(name);
এটি Person ক্লাসের name প্রপার্টির উপর একটি ইন্ডেক্স তৈরি করবে, যাতে name অনুসন্ধান দ্রুত হবে।
৫.২ ইন্ডেক্স পরীক্ষা (Checking Index)
SHOW INDEXES;
এই কুয়েরি আপনার ডাটাবেসে তৈরি করা সমস্ত ইন্ডেক্স দেখাবে।
সারাংশ
OrientDB ডকুমেন্ট তৈরি এবং হ্যান্ডলিংয়ে অত্যন্ত নমনীয় এবং শক্তিশালী। এটি JSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং SQL-লাইক কুয়েরি ভাষা ব্যবহার করে ডকুমেন্ট তৈরি, আপডেট, ডিলিট এবং অনুসন্ধান করতে সহায়তা করে। মাল্টি-মডেল সাপোর্টের কারণে, ডকুমেন্ট ডেটাবেস এবং গ্রাফ ডেটাবেস একসাথে ব্যবহার করা যায়, যা আরও জটিল এবং সম্পর্কযুক্ত ডেটার জন্য একটি আদর্শ প্ল্যাটফর্ম তৈরি করে।