ওরিয়েন্টডিবি (OrientDB) একটি মাল্টিমডেল ডাটাবেস যা গ্রাফ ডাটাবেস এবং ডকুমেন্ট ডাটাবেস সমর্থন করে। এটি গ্রাফ ডেটা মডেলিং ও বিশ্লেষণের জন্য দুটি প্রধান কুয়েরি ভাষা সাপোর্ট করে: Gremlin এবং SQL। এই দুটি ভাষার মাধ্যমে আপনি গ্রাফ ডেটা অনুসন্ধান, বিশ্লেষণ এবং ম্যানিপুলেশন করতে পারেন।
Gremlin কুয়েরি
Gremlin হল একটি গ্রাফ ট্রাভার্সাল কুয়েরি ল্যাঙ্গুয়েজ যা গ্রাফ ডেটাবেসে নোড এবং এজের মধ্যে সম্পর্কিত ডেটা অনুসন্ধান করতে ব্যবহৃত হয়। এটি Apache TinkerPop প্রকল্পের অংশ, যা গ্রাফ ডাটাবেসের জন্য স্ট্যান্ডার্ড ট্রাভার্সাল প্রোগ্রামিং ল্যাঙ্গুয়েজ সরবরাহ করে।
ওরিয়েন্টডিবি Gremlin কুয়েরি ভাষা সাপোর্ট করে, যা আপনাকে গ্রাফের মধ্যে সম্পর্ক এবং নোডের মধ্যকার জটিল সম্পর্ক অনুসন্ধান করতে সহায়তা করে।
Gremlin কুয়েরির মাধ্যমে গ্রাফ অনুসন্ধান
উদাহরণ ১: সমস্ত Person নোডের নাম বের করা
g.V().hasLabel('Person').values('name')
এখানে, g.V() গ্রাফের সব ভ্যারটেক্স (নোড) চয়ন করে এবং hasLabel('Person') দ্বারা শুধুমাত্র Person লেবেলযুক্ত নোডগুলো বের করা হয়।
উদাহরণ ২: একটি নোডের সম্পর্ক অনুসন্ধান
g.V().has('name', 'Alice').out('FRIEND_OF').values('name')
এটি Alice নামের Person নোডটি নির্বাচন করে এবং তার সাথে সম্পর্কিত সমস্ত FRIEND_OF সম্পর্কের মাধ্যমে সংযুক্ত নোডের নামগুলো রিটার্ন করবে।
উদাহরণ ৩: দুটি নোডের মধ্যে সংক্ষিপ্ত পথ খোঁজা
g.V().has('name', 'Alice').repeat(out().simplePath()).until(has('name', 'Bob')).path()
এটি Alice থেকে Bob পর্যন্ত সংক্ষিপ্ত পথ খুঁজে বের করবে, যেখানে শুধুমাত্র সরল সম্পর্কগুলো (এবং কোনো পুনরাবৃত্তি সম্পর্ক) বিবেচনায় নেয়া হবে।
SQL কুয়েরি
ওরিয়েন্টডিবি SQL ভিত্তিক কুয়েরি ভাষা ব্যবহার করে গ্রাফ ডেটার সাথে সম্পর্কিত তথ্য অনুসন্ধান এবং ম্যানিপুলেশন করতে সক্ষম। এটি SQL কুয়েরি স্টাইলে গ্রাফ ডেটাবেসের ডেটা ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়। SQL কুয়েরি ভাষাটি ডকুমেন্ট ডাটাবেস এবং গ্রাফ ডাটাবেসের মধ্যে একটি সেতুবন্ধন হিসেবে কাজ করে।
SQL কুয়েরির মাধ্যমে গ্রাফ অনুসন্ধান
উদাহরণ ১: Person লেবেলযুক্ত সমস্ত নোডের নাম বের করা
SELECT name FROM Person
এখানে Person লেবেলযুক্ত সমস্ত নোডের name প্রপার্টি রিটার্ন করা হবে।
উদাহরণ ২: নির্দিষ্ট সম্পর্কের মাধ্যমে নোড অনুসন্ধান
SELECT name FROM Person WHERE OUT('FRIEND_OF').name = 'Alice'
এটি FRIEND_OF সম্পর্কের মাধ্যমে এমন সকল Person নোডের নাম রিটার্ন করবে যাদের বন্ধু Alice।
উদাহরণ ৩: গ্রাফে একাধিক সম্পর্ক অনুসন্ধান
SELECT name FROM Person WHERE OUT('FRIEND_OF').IN('WORKS_WITH').name = 'Bob'
এটি Person নোডের মধ্যে প্রথমে FRIEND_OF সম্পর্ক এবং পরে WORKS_WITH সম্পর্কের মাধ্যমে Bob এর সাথে সম্পর্কিত সমস্ত নোডের নাম রিটার্ন করবে।
Gremlin এবং SQL এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Gremlin কুয়েরি | SQL কুয়েরি |
|---|---|---|
| ভাষার ধরন | গ্রাফ ট্রাভার্সাল (Graph Traversal) | স্ট্যাটিক কুয়েরি ভাষা (Structured Query Language) |
| সর্বাধিক ব্যবহার | গ্রাফ ভিত্তিক ডেটা মডেলিং এবং সম্পর্ক অনুসন্ধান | ডেটাবেসে টেবিল এবং ডকুমেন্ট ডেটা অনুসন্ধান |
| পরিচিতি | অ্যাপাচি TinkerPop ভিত্তিক, গ্রাফ ডেটাবেসের জন্য প্রমিত | SQL এর মতো, সাধারণত ডাটাবেস পরিচালনায় ব্যবহৃত |
| কাস্টমাইজেশন এবং নমনীয়তা | বেশি নমনীয়, গ্রাফ ডেটার অনুসন্ধান এবং ট্রাভার্সাল | তুলনামূলকভাবে কম নমনীয় |
| ডেটার ধরন | গ্রাফ নোড, এজ, এবং তাদের সম্পর্ক | রিলেশনাল টেবিল, ডকুমেন্ট ডেটা |
সারাংশ
ওরিয়েন্টডিবি (OrientDB) গ্রাফ ডাটাবেসে Gremlin এবং SQL কুয়েরি ভাষা সাপোর্ট করে। Gremlin গ্রাফ ট্রাভার্সাল কুয়েরি ল্যাঙ্গুয়েজ ব্যবহার করে গ্রাফের মধ্যে সম্পর্কিত ডেটা অনুসন্ধান করতে সহায়তা করে, যেখানে SQL গ্রাফ ডেটা ম্যানিপুলেশন এবং ডকুমেন্ট ডেটা পরিচালনায় ব্যবহৃত হয়। দুটি কুয়েরি ভাষা একে অপরের সাথে তুলনামূলকভাবে আলাদা, তবে উভয়ই গ্রাফ ডেটাবেসের কার্যকরী বিশ্লেষণ ও ম্যানিপুলেশনে সহায়ক।
Read more