ওরিয়েন্টডিবি (OrientDB) একটি মাল্টি-মডেল ডেটাবেস সিস্টেম, যা গ্রাফ ডেটাবেসের ক্ষমতা সহ বিভিন্ন ডেটা মডেলকে সমর্থন করে। গ্রাফ ডেটাবেসে Vertex এবং Edge হল ডেটার দুই প্রধান উপাদান, যেগুলি গ্রাফের মধ্যে সম্পর্ক এবং সংযোগ প্রতিষ্ঠা করে। Vertex একটি নোড বা ডেটা পয়েন্ট এবং Edge সেই নোডগুলির মধ্যে সম্পর্ক প্রতিনিধিত্ব করে।
এই টিউটোরিয়ালে, আমরা দেখব কিভাবে OrientDB তে Vertex এবং Edge তৈরি এবং হ্যান্ডলিং করা যায়।
১. Vertex (নোড) তৈরি
Vertex বা নোড হলো গ্রাফ ডেটাবেসের মৌলিক উপাদান, যা ডেটার একক অংশ উপস্থাপন করে। এটি একটি অবজেক্ট হিসেবে কাজ করে, যার মধ্যে একাধিক প্রপার্টি থাকতে পারে।
Vertex তৈরি করার প্রক্রিয়া
- Vertex ক্লাস তৈরি: প্রথমে, আপনাকে Vertex এর জন্য একটি ক্লাস তৈরি করতে হবে, যেমন
PersonবাProduct। - প্রপার্টি যোগ করা: Vertex ক্লাসে বিভিন্ন প্রপার্টি যুক্ত করতে পারেন, যেমন নাম, বয়স, স্থান ইত্যাদি।
উদাহরণ:
CREATE CLASS Person EXTENDS V; -- V হল Vertex এর জন্য নির্ধারিত ডিফল্ট ক্লাস
CREATE PROPERTY Person.name STRING;
CREATE PROPERTY Person.age INTEGER;
এই কোডটি একটি Person ক্লাস তৈরি করবে এবং তার মধ্যে দুটি প্রপার্টি (নাম এবং বয়স) যুক্ত করবে।
Vertex ইনসার্ট করা
আপনি একটি Vertex ইনসার্ট করতে পারেন নিচের কোয়েরির মাধ্যমে:
INSERT INTO Person (name, age) VALUES ('John Doe', 30);
এটি একটি Person Vertex তৈরি করবে যার নাম "John Doe" এবং বয়স 30।
২. Edge (এজ) তৈরি
Edge বা এজ হলো গ্রাফের মধ্যে Vertex গুলির মধ্যে সম্পর্ক বা সংযোগ। এজগুলি দুইটি Vertex এর মধ্যে সম্পর্ক নির্দেশ করে এবং তাদের মধ্যে সম্পর্কের ধরন বা শক্তি উপস্থাপন করতে পারে। যেমন, একজন ব্যক্তি এবং তার বন্ধুর মধ্যে সম্পর্ক হতে পারে।
Edge তৈরি করার প্রক্রিয়া
- Edge ক্লাস তৈরি: Edge ক্লাস তৈরি করার জন্য, আপনাকে একটি সম্পর্কের ধরন নির্ধারণ করতে হবে, যেমন
FRIENDবাLIKES। - প্রপার্টি যোগ করা: Edge ক্লাসের মধ্যে সম্পর্কের তথ্য (যেমন তারিখ বা শক্তি) যোগ করা যেতে পারে।
উদাহরণ:
CREATE CLASS Friend EXTENDS E; -- E হল Edge এর জন্য নির্ধারিত ডিফল্ট ক্লাস
CREATE PROPERTY Friend.since DATE;
এটি একটি Friend ক্লাস তৈরি করবে, যার মধ্যে since নামে একটি প্রপার্টি থাকবে যা সম্পর্কের শুরুর সময় নির্ধারণ করবে।
Edge ইনসার্ট করা
একটি Edge ইনসার্ট করতে হবে, যাতে দুটি Vertex এর মধ্যে সম্পর্ক তৈরি করা যায়। নিচের কোডটি দুটি Person Vertex এর মধ্যে Friend সম্পর্ক তৈরি করবে:
CREATE EDGE Friend FROM (SELECT FROM Person WHERE name = 'John Doe') TO (SELECT FROM Person WHERE name = 'Jane Smith') SET since = '2020-01-01';
এটি John Doe এবং Jane Smith এর মধ্যে একটি Friend Edge তৈরি করবে, যেখানে সম্পর্কের শুরু সময় '2020-01-01' হবে।
৩. Vertex এবং Edge হ্যান্ডলিং
Vertex এর প্রপার্টি আপডেট করা
Vertex এর প্রপার্টি আপডেট করতে, আপনি UPDATE কমান্ড ব্যবহার করতে পারেন।
UPDATE Person SET age = 31 WHERE name = 'John Doe';
এটি John Doe এর বয়স 30 থেকে 31 তে পরিবর্তন করবে।
Edge এর প্রপার্টি আপডেট করা
Edge এর প্রপার্টি আপডেট করতে, নিচের কোয়েরি ব্যবহার করা যেতে পারে:
UPDATE Friend SET since = '2021-01-01' WHERE out = (SELECT FROM Person WHERE name = 'John Doe') AND in = (SELECT FROM Person WHERE name = 'Jane Smith');
এটি John Doe এবং Jane Smith এর মধ্যে Friend Edge এর since প্রপার্টি আপডেট করবে।
Vertex এবং Edge ডিলিট করা
Vertex বা Edge ডিলিট করতে, DELETE কমান্ড ব্যবহার করা হয়।
Vertex ডিলিট করা:
DELETE VERTEX (SELECT FROM Person WHERE name = 'John Doe');Edge ডিলিট করা:
DELETE EDGE (SELECT FROM Friend WHERE out = (SELECT FROM Person WHERE name = 'John Doe') AND in = (SELECT FROM Person WHERE name = 'Jane Smith'));
এই কোড দুটি যথাক্রমে John Doe নামের Vertex এবং তাদের মধ্যে Friend সম্পর্ক (Edge) ডিলিট করবে।
৪. Vertex এবং Edge এর মধ্যে সম্পর্ক অনুসন্ধান
আপনি Vertex এবং Edge এর মধ্যে সম্পর্ক অনুসন্ধান করতে গ্রাফ কোয়েরি করতে পারেন।
সব Vertex দেখুন
SELECT FROM Person;
সব Edge দেখুন
SELECT FROM Friend;
একটি Vertex এর সাথে সম্পর্কিত অন্য Vertex খুঁজে বের করা
SELECT expand(out('Friend')) FROM Person WHERE name = 'John Doe';
এটি John Doe এর সাথে সম্পর্কিত সকল বন্ধু (যারা Friend Edge এর মাধ্যমে সংযুক্ত) দেখাবে।
সারাংশ
ওরিয়েন্টডিবি তে Vertex এবং Edge তৈরি এবং হ্যান্ডলিং অত্যন্ত সহজ এবং শক্তিশালী, যা ডেটার মধ্যে সম্পর্ক এবং সংযোগ নির্ধারণে কার্যকর। গ্রাফ ডেটাবেসে নোড এবং তাদের মধ্যে সম্পর্ক গঠন করার মাধ্যমে, ডেটার মধ্যে বিভিন্ন ধরণের সম্পর্ক সহজেই মডেল করা যায়। ওরিয়েন্টডিবি এর মাধ্যমে আপনি গ্রাফ ডেটাবেসের সঙ্গতি এবং স্কেলেবিলিটি অর্জন করতে পারেন, যা বড় আকারের ডেটাসেট এবং সম্পর্কিত ডেটা বিশ্লেষণে অত্যন্ত কার্যকর।
Read more