OrientDB এর ডকুমেন্ট ম্যানেজমেন্ট

ওরিয়েন্টডিবি (OrientDB) - Database Tutorials

406

ওরিয়েন্টডিবি (OrientDB) একটি মাল্টি-মোডাল ডেটাবেস, যা ডকুমেন্ট ডেটাবেস হিসেবে ব্যবহার করা যায় এবং ডকুমেন্ট ম্যানেজমেন্ট সিস্টেম (DMS) হিসেবে কার্যকরী ভূমিকা পালন করতে সক্ষম। এটি JSON বা XML ফরম্যাটে ডেটা সংরক্ষণ করে এবং ডকুমেন্ট-ওরিয়েন্টেড ডেটাবেসের সুবিধা প্রদান করে। ডকুমেন্ট ম্যানেজমেন্টে, ডেটা সন্নিবেশ, আপডেট, অনুসন্ধান এবং মুছতে সহজ হয়, যা অনেক অ্যাপ্লিকেশনে সহায়ক।


OrientDB এর ডকুমেন্ট ম্যানেজমেন্ট

১. ডকুমেন্ট স্টোর

ওরিয়েন্টডিবি ডকুমেন্ট-ওরিয়েন্টেড ডেটাবেস হিসেবে JSON বা XML ফরম্যাটে ডেটা সংরক্ষণ এবং পরিচালনা করে। এটি একক ডকুমেন্টে প্রয়োজনীয় প্রপার্টি এবং তথ্য সংরক্ষণ করতে সহায়তা করে। ডকুমেন্ট স্টোরে প্রতিটি ডকুমেন্ট একটি ইউনিট হিসেবে কাজ করে এবং ডেটা সংরক্ষণের জন্য ব্যবহার করা হয়। এটি রিলেশনাল ডেটাবেসের টেবিলের চেয়ে আরও নমনীয় এবং সহজ।

ডকুমেন্টের গঠন

ডকুমেন্ট সাধারণত একটি key-value পেয়ার ধারণ করে, যেখানে key ফিল্ড বা প্রপার্টি এবং value ডেটা (যেমন নাম, বয়স, ঠিকানা) হতে পারে। এই ডকুমেন্টে আপনি প্রয়োজনীয় সব প্রপার্টি এবং সম্পর্ক ধারণ করতে পারবেন।

উদাহরণ:

{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "New York"
  }
}

এখানে, name, age, এবং address একটি ডকুমেন্টের ফিল্ড বা প্রপার্টি, যেখানে address আবার একটি সাব-ডকুমেন্ট।


২. ডকুমেন্ট এবং রিলেশনাল ডেটাবেসের তুলনা

ডকুমেন্ট ডেটাবেস একটি খুবই নমনীয় ডেটা মডেলিং পদ্ধতি। এখানে ডেটা ফ্ল্যাট বা নেস্টেড আকারে সঞ্চিত থাকতে পারে, যা রিলেশনাল ডেটাবেসের তুলনায় বেশি নমনীয়। যেখানে রিলেশনাল ডেটাবেসের টেবিল ও কলাম সিস্টেম রয়েছে, সেখানে ডকুমেন্ট ডেটাবেসে বিভিন্ন ধরনের তথ্য একটি একক ডকুমেন্টে সঞ্চিত থাকতে পারে।


৩. ডকুমেন্ট ম্যানিপুলেশন

ওরিয়েন্টডিবি ডকুমেন্ট ম্যানেজমেন্টের জন্য বিভিন্ন কার্যকরী ফিচার সরবরাহ করে:

  • CREATE: নতুন ডকুমেন্ট তৈরি করা।
  • UPDATE: বিদ্যমান ডকুমেন্ট আপডেট করা।
  • DELETE: ডকুমেন্ট মুছে ফেলা।
  • SELECT: ডকুমেন্ট অনুসন্ধান করা।
  • MERGE: দুটি ডকুমেন্ট একত্রিত করা।

উদাহরণ: ডকুমেন্ট তৈরি করা

CREATE DOCUMENT Person SET name = "John", age = 30, address = { street: "123 Main St", city: "New York" }

এখানে, Person নামক একটি ডকুমেন্ট তৈরি করা হয়েছে যেখানে name, age, এবং address প্রপার্টি রয়েছে।

উদাহরণ: ডকুমেন্ট আপডেট করা

UPDATE Person SET age = 31 WHERE name = "John"

এখানে, John নামের ব্যক্তির বয়স ৩০ থেকে ৩১ আপডেট করা হচ্ছে।

উদাহরণ: ডকুমেন্ট মুছে ফেলা

DELETE DOCUMENT WHERE name = "John"

এটি John নামের সমস্ত ডকুমেন্ট মুছে ফেলবে।

উদাহরণ: ডকুমেন্ট অনুসন্ধান করা

SELECT FROM Person WHERE age = 30

এটি age প্রপার্টির মান ৩০ হওয়া সমস্ত Person ডকুমেন্ট রিটার্ন করবে।


৪. ডকুমেন্ট ইনডেক্সিং

ওরিয়েন্টডিবি ডকুমেন্ট ডেটাবেসে ইনডেক্স ব্যবহার করে ডেটার দ্রুত অনুসন্ধান করতে সহায়তা করে। ডকুমেন্টের বিভিন্ন প্রপার্টি, যেমন নাম, বয়স, ইত্যাদি ইনডেক্স করা যেতে পারে, যাতে দ্রুত ডেটা পাওয়া যায়।

উদাহরণ: ডকুমেন্টের প্রপার্টির ওপর ইনডেক্স তৈরি করা

CREATE INDEX ON Person(name)

এটি Person ডকুমেন্টের name প্রপার্টির উপর ইনডেক্স তৈরি করবে, যাতে name অনুসারে দ্রুত অনুসন্ধান করা যায়।


৫. ডকুমেন্টের জন্য স্কিমা ব্যবহার

ওরিয়েন্টডিবি স্কিমা নির্ধারণের জন্য ডকুমেন্টে প্রপার্টি এবং ডেটার ধরন নির্ধারণ করার সুযোগ দেয়। স্কিমা ডকুমেন্টের জন্য প্রপার্টি এবং সম্পর্কের গঠন নির্দেশ করে এবং ডেটার স্ট্রাকচার নিশ্চিত করে।

উদাহরণ: স্কিমা তৈরি করা

CREATE CLASS Person EXTENDS V
CREATE PROPERTY Person.name STRING
CREATE PROPERTY Person.age INTEGER

এখানে, Person নামের একটি ক্লাস তৈরি করা হয়েছে যা গ্রাফের নোডের মতো কাজ করবে এবং name এবং age প্রপার্টি অন্তর্ভুক্ত থাকবে।


ডকুমেন্ট ম্যানেজমেন্টের সুবিধা

  • নমনীয়তা: ডকুমেন্ট মডেল নমনীয় এবং স্কিমা-লেস ডেটা সংরক্ষণে সহায়তা করে।
  • এফেক্টিভ কুয়েরি: SQL স্টাইলে কুয়েরি ব্যবহার করে ডকুমেন্টের মধ্যে সহজে অনুসন্ধান এবং ম্যানিপুলেশন করা যায়।
  • রিলেশনাল এবং ডকুমেন্ট ডেটা একত্রিত: রিলেশনাল ডেটার পাশাপাশি ডকুমেন্ট ডেটার সন্নিবেশ এবং বিশ্লেষণ করা যায়।
  • স্কেলেবল: ডিস্ট্রিবিউটেড আর্কিটেকচারের মাধ্যমে বড় পরিমাণ ডেটা স্কেল করতে সহায়তা করে।

সারাংশ

ওরিয়েন্টডিবি (OrientDB) একটি মাল্টি-মোডাল ডেটাবেস, যা ডকুমেন্ট ডেটাবেস হিসেবে ব্যবহার করা যায়। এটি JSON বা XML ফরম্যাটে ডেটা সংরক্ষণ, আপডেট, মুছতে এবং অনুসন্ধান করতে সক্ষম। ডকুমেন্ট ম্যানেজমেন্টে, ওরিয়েন্টডিবি ডকুমেন্ট ইনডেক্সিং, স্কিমা নির্ধারণ, এবং কুয়েরি অপটিমাইজেশন সহ একাধিক সুবিধা প্রদান করে। এটি বিভিন্ন ধরনের অ্যাপ্লিকেশন যেমন রিকমেন্ডেশন সিস্টেম, সোশ্যাল নেটওয়ার্ক, এবং ফ্রড ডিটেকশন এর জন্য অত্যন্ত কার্যকরী।

Content added By

ডকুমেন্ট মডেল (Document Model) হলো একটি NoSQL ডেটাবেস মডেল, যেখানে ডেটা ডকুমেন্ট আকারে সংরক্ষিত থাকে, সাধারণত JSON বা BSON ফরম্যাটে। ডকুমেন্ট মডেল একটি নমনীয় এবং স্কিমা-ফ্রি ডেটা মডেলিং পদ্ধতি, যা ডেটাকে অবজেক্ট বা ডকুমেন্ট হিসেবে সংগঠিত করে। এই মডেলে ডেটার প্রপার্টি বা ফিল্ডগুলি একে অপরের সাথে সম্পর্কিত থাকতে পারে এবং তা পূর্বনির্ধারিত স্কিমা অনুযায়ী বাধ্যতামূলকভাবে সংগঠিত হতে হবে না।


ডকুমেন্ট মডেলের মূল বৈশিষ্ট্য

১. স্কিমা-ফ্রি (Schema-free)

ডকুমেন্ট ডেটাবেসে, ডেটা স্ট্রাকচার বা গঠন প্রাথমিকভাবে পূর্বনির্ধারিত থাকে না, অর্থাৎ এটি স্কিমা-ফ্রি। এর মানে হলো যে, ডেটা প্রতিটি ডকুমেন্টে ভিন্নভাবে গঠিত হতে পারে এবং তাদের মধ্যে কোনো নির্দিষ্ট কাঠামো থাকতে হবে না। এর ফলে, ডেটা খুব সহজে পরিবর্তনযোগ্য এবং প্রসারিত করা যায়।

২. ডকুমেন্ট ভিত্তিক সংরক্ষণ

ডকুমেন্ট ডেটাবেজে ডেটা ডকুমেন্ট হিসেবে সংরক্ষিত হয়, যা একটি একক ইউনিট হিসেবে কাজ করে। এই ডকুমেন্ট সাধারণত JSON, BSON, বা XML ফরম্যাটে থাকতে পারে। যেমন:

  • JSON: { "name": "Alice", "age": 30, "address": "123 Main St" }
  • BSON: একটি বাইনারি ফরম্যাট যা JSON এর মতো কিন্তু আরও কার্যকরী এবং দ্রুত।

৩. নমনীয়তা

ডকুমেন্ট মডেল অত্যন্ত নমনীয়, কারণ ডকুমেন্টের মধ্যে প্রপার্টির সংখ্যা এবং প্রকার একে অপর থেকে ভিন্ন হতে পারে। এর ফলে, আপনি খুব সহজে নতুন ফিল্ড বা ডেটা যুক্ত করতে পারেন বা পুরনো ডেটা মুছে ফেলতে পারেন, যা traditional relational databases এ সহজে সম্ভব হয় না।

৪. ডেটার অভ্যন্তরীণ সম্পর্ক

ডকুমেন্ট মডেলে ডেটার মধ্যে অভ্যন্তরীণ সম্পর্ক থাকতে পারে। একাধিক প্রপার্টি বা সাব-ডকুমেন্ট একে অপরের সাথে সম্পর্কযুক্ত হতে পারে, এবং তারা একই ডকুমেন্টে একত্রিত হয়ে থাকতে পারে। উদাহরণস্বরূপ:

{
  "order_id": 123,
  "customer": {
    "name": "John",
    "address": "456 Market St"
  },
  "items": [
    {"product": "Laptop", "quantity": 1},
    {"product": "Mouse", "quantity": 2}
  ]
}

এখানে, customer এবং items ভ্যালুগুলি সাব-ডকুমেন্ট হিসাবে রয়েছে, যা ডকুমেন্টের মধ্যে সম্পর্ক তৈরি করেছে।

৫. কুয়েরি ক্ষমতা

ডকুমেন্ট ডেটাবেজে, আপনি কুয়েরি চালাতে পারেন যেগুলি ডকুমেন্টের ভিতরে থাকা ডেটার উপর ভিত্তি করে। সাধারণত JSONPath, XPath, অথবা ডকুমেন্ট ডেটাবেজের নিজস্ব কুয়েরি ভাষা ব্যবহার করে এই ধরনের কুয়েরি করা হয়। উদাহরণস্বরূপ, একটি ডকুমেন্টে থাকা name বা address প্রপার্টির উপর কুয়েরি চালানো যেতে পারে।

৬. উন্নত পারফরম্যান্স

ডকুমেন্ট ডেটাবেজ গুলি বড় পরিমাণ ডেটার সাথে দ্রুত কাজ করতে সক্ষম, কারণ ডেটা সংরক্ষণের জন্য একটি একক ডকুমেন্ট কাঠামো ব্যবহার করা হয়, যা দ্রুত অ্যাক্সেস এবং আপডেট অপারেশন করে।


OrientDB তে ডকুমেন্ট মডেল

OrientDB একটি মাল্টি-মোডাল ডেটাবেস সিস্টেম, যা ডকুমেন্ট ডেটাবেজ মডেলও সমর্থন করে। OrientDB তে ডেটা ডকুমেন্ট ফরম্যাটে সংরক্ষিত হয় এবং এটি একটি NoSQL ডেটাবেস হিসেবে কাজ করে। এটি SQL অনুরূপ কুয়েরি ভাষা ব্যবহার করে ডকুমেন্টের উপর কুয়েরি পরিচালনা করতে সক্ষম।

ডকুমেন্ট তৈরি করা

OrientDB তে একটি নতুন ডকুমেন্ট তৈরি করার জন্য, আপনি INSERT INTO কুয়েরি ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

INSERT INTO Person SET name = 'Alice', age = 30, address = '123 Main St'

এটি একটি Person ডকুমেন্ট তৈরি করবে, যেখানে name, age, এবং address প্রপার্টি থাকবে।

ডকুমেন্টের মধ্যে সম্পর্ক

ডকুমেন্ট মডেলটি আপনাকে অভ্যন্তরীণ ডেটা সম্পর্ক তৈরি করতে সাহায্য করে। OrientDB তে, আপনি লিঙ্কড ডকুমেন্ট তৈরি করতে পারেন, যা অন্য ডকুমেন্টের মধ্যে রেফারেন্স ধারণ করে।

INSERT INTO Order SET customer = (SELECT FROM Person WHERE name = 'Alice'), items = [ 'Laptop', 'Mouse' ]

এখানে, Order ডকুমেন্ট Person ডকুমেন্টের Alice নামক ব্যবহারকারীর সাথে সম্পর্কিত।

ডকুমেন্ট কুয়েরি

ডকুমেন্টের মধ্যে ডেটা অনুসন্ধান করতে, আপনি OrientDB তে SQL অনুরূপ কুয়েরি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটি নির্দিষ্ট name প্রপার্টির ভিত্তিতে ডকুমেন্ট খুঁজে বের করা:

SELECT * FROM Person WHERE name = 'Alice'

এটি Person ডকুমেন্টের মধ্যে name প্রপার্টি 'Alice' থাকা সমস্ত ডকুমেন্ট রিটার্ন করবে।


ডকুমেন্ট ডেটাবেজের সুবিধা

  1. নমনীয়তা: ডকুমেন্ট মডেল স্কিমা-ফ্রি হওয়ায় সহজেই পরিবর্তনযোগ্য এবং প্রসারিত করা যায়।
  2. রিলেশনাল ডেটাবেজের সীমাবদ্ধতা কাটানো: ডকুমেন্ট ডেটাবেজে সম্পর্কিত ডেটা একত্রে সংরক্ষণ করা যায়, যা অনেক সময় রিলেশনাল ডেটাবেজে অনেক জটিলতা সৃষ্টি করে।
  3. পারফরম্যান্স: ডেটার দ্রুত পুনরুদ্ধার এবং আপডেট নিশ্চিত করে, কারণ সম্পর্কিত ডেটা একই ডকুমেন্টে থাকে।
  4. মাল্টি-ডকুমেন্ট সাপোর্ট: একটি ডকুমেন্টের মধ্যে একাধিক সাব-ডকুমেন্ট থাকতে পারে, যা সম্পর্কিত ডেটাকে একটি একক ইউনিটে অন্তর্ভুক্ত করে।
  5. এজি এবং স্কেলেবিলিটি: উচ্চ পরিমাণ ডেটা সহজেই ম্যানেজ করা যায় এবং দ্রুত স্কেল করা যায়।

সারাংশ

ডকুমেন্ট ডেটাবেজ একটি নমনীয়, স্কিমা-ফ্রি, এবং সম্পর্কযুক্ত ডেটা মডেলিং সমর্থনকারী ডেটাবেস মডেল, যেখানে ডেটা JSON বা BSON ফরম্যাটে সংরক্ষিত থাকে। OrientDB ডকুমেন্ট ডেটাবেজ মডেলকে সমর্থন করে, যা ডকুমেন্টের মধ্যে ডেটার সম্পর্ক, এক্সটেনশন এবং কাস্টমাইজেশন করতে সক্ষম। এটি ডেটা মডেলিং ও কুয়েরি করার জন্য একটি কার্যকরী পদ্ধতি সরবরাহ করে, বিশেষ করে যেখানে ডেটার নমনীয়তা এবং দ্রুত অ্যাক্সেস প্রয়োজন।

Content added By

ওরিয়েন্টডিবি (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-লাইক কুয়েরি ভাষা ব্যবহার করে ডকুমেন্ট তৈরি, আপডেট, ডিলিট এবং অনুসন্ধান করতে সহায়তা করে। মাল্টি-মডেল সাপোর্টের কারণে, ডকুমেন্ট ডেটাবেস এবং গ্রাফ ডেটাবেস একসাথে ব্যবহার করা যায়, যা আরও জটিল এবং সম্পর্কযুক্ত ডেটার জন্য একটি আদর্শ প্ল্যাটফর্ম তৈরি করে।

Content added By

ওরিয়েন্টডিবি (OrientDB) একটি মাল্টি-মডেল ডেটাবেস সিস্টেম যা ডকুমেন্ট এবং গ্রাফ ডেটাবেস মডেল সমর্থন করে। ডেটাবেসে ডেটা মডেলিং করার জন্য ওরিয়েন্টডিবি-তে OClass এবং OProperty ব্যবহার করা হয়। OClass একটি ডেটা ক্লাসের প্রতিনিধিত্ব করে, যেখানে OProperty হল ক্লাসের ভিতরে থাকা একটি প্রোপার্টি। এই দুটি কম্পোনেন্টের মাধ্যমে আপনি ডেটাবেসে কাঠামোবদ্ধ ডেটা সংরক্ষণ এবং ম্যানিপুলেশন করতে পারেন।


OClass কি?

OClass হল ওরিয়েন্টডিবি-তে ডেটার একটি কাঠামো বা শ্রেণী (Class), যেখানে আপনি নোড বা ডকুমেন্টের মধ্যে স্টোর করা তথ্যের ধরন এবং কাঠামো সংজ্ঞায়িত করেন। প্রতিটি OClass ডেটার একটি লেবেল বা নাম থাকে, যেমন Person, Product, বা Order, যা ঐ শ্রেণীর মধ্যে থাকা ডেটার ধরনকে চিহ্নিত করে।

OClass এর সুবিধা:

  1. ডেটার কাঠামো নির্ধারণ: OClass দিয়ে আপনি ডেটার কাঠামো তৈরি করেন, যা বিভিন্ন OProperty ব্যবহার করে ডেটার প্রোপার্টি সংজ্ঞায়িত করে।
  2. হায়ারার্কি তৈরি: OClass এর মাধ্যমে আপনি ইনহেরিটেন্স ব্যবহার করে ক্লাসের মধ্যে সম্পর্ক তৈরি করতে পারেন, যেমন একটি ক্লাস অন্য একটি ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করতে পারে।
  3. স্কিমা-কানভেনশন: OClass ব্যবহারের মাধ্যমে ডেটাবেসের মধ্যে একধরনের স্কিমা কনভেনশন বা স্ট্রাকচার তৈরি করা যায়।

OClass তৈরি করা

ওরিয়েন্টডিবি-তে নতুন OClass তৈরি করতে SQL কুয়েরি ব্যবহার করা হয়। উদাহরণস্বরূপ:

CREATE CLASS Person EXTENDS V

এখানে, Person নামক একটি নতুন ক্লাস তৈরি করা হয়েছে যা V (vertex) ক্লাস থেকে ইনহেরিট করেছে। V হল গ্রাফের নোড (Node) এর জন্য ডিফল্ট ক্লাস।


OProperty কি?

OProperty হল OClass এর মধ্যে থাকা একটি প্রোপার্টি (Property), যা ক্লাসের সাথে সম্পর্কিত ডেটার বৈশিষ্ট্য সংজ্ঞায়িত করে। প্রতিটি OProperty একটি নাম এবং একটি ডেটা টাইপ থাকে, যেমন name (STRING), age (INTEGER), বা address (STRING)। OProperty দিয়ে আপনি ডেটার প্রোপার্টি বা ক্ষেত্রগুলো সংজ্ঞায়িত করেন, যা পরে ডকুমেন্টে বা গ্রাফে স্টোর করা হয়।

OProperty এর সুবিধা:

  1. ডেটা ফিল্ড সংজ্ঞায়িত করা: OProperty ব্যবহার করে আপনি ক্লাসের মধ্যে থাকা প্রতিটি ফিল্ড বা ডেটা টাইপ নির্ধারণ করতে পারেন।
  2. ডেটা ভ্যালিডেশন: OProperty এর মাধ্যমে ডেটার জন্য নির্দিষ্ট ডেটা টাইপ এবং কনস্ট্রেইন্ট সেট করা যায়, যা ডেটা ভ্যালিডেশন নিশ্চিত করে।
  3. স্কিমা লেভেল কন্ট্রোল: OProperty দিয়ে আপনি ডেটা মডেলিংয়ের উপর স্কিমা লেভেল কন্ট্রোল প্রবর্তন করতে পারেন।

OProperty তৈরি করা

OProperty তৈরি করতে, আপনি প্রথমে OClass তৈরি করবেন এবং তার পর OProperty সংজ্ঞায়িত করবেন। উদাহরণস্বরূপ:

CREATE PROPERTY Person.name STRING
CREATE PROPERTY Person.age INTEGER

এখানে, Person ক্লাসের মধ্যে name (STRING) এবং age (INTEGER) নামক দুটি প্রোপার্টি তৈরি করা হয়েছে।


OClass এবং OProperty এর মধ্যে সম্পর্ক

  • OClass হল ডেটার কাঠামো বা শ্রেণী, যেখানে আপনি ডেটার ধরন এবং প্রোপার্টি গুলি সংজ্ঞায়িত করেন।
  • OProperty হল ক্লাসের ভিতরে থাকা ডেটা ফিল্ড, যার মাধ্যমে আপনি ডেটার প্রোপার্টি এবং তাদের ডেটা টাইপ নির্ধারণ করেন।

উদাহরণ: OClass এবং OProperty এর ব্যবহারে একটি ডেটাবেস মডেল তৈরি করা

CREATE CLASS Person EXTENDS V
CREATE PROPERTY Person.name STRING
CREATE PROPERTY Person.age INTEGER
CREATE PROPERTY Person.address STRING

এখানে, Person নামে একটি ক্লাস তৈরি করা হয়েছে, এবং এর মধ্যে name, age, এবং address নামক প্রোপার্টি গুলি সংজ্ঞায়িত করা হয়েছে। name এবং address প্রোপার্টি STRING টাইপের, এবং age INTEGER টাইপের।


OClass এবং OProperty এর ব্যবহারের কিছু প্রাথমিক কেস

১. গ্রাফ ডেটাবেসে নোড তৈরি

CREATE CLASS Customer EXTENDS V
CREATE PROPERTY Customer.name STRING
CREATE PROPERTY Customer.email STRING

এখানে, Customer ক্লাস তৈরি করা হয়েছে এবং এর মধ্যে name এবং email প্রোপার্টি যোগ করা হয়েছে। এই ক্লাসে গ্রাফের নোডগুলোর তথ্য সংরক্ষণ করা হবে।

২. ডকুমেন্ট ডেটাবেসে ডেটা মডেলিং

CREATE CLASS Product EXTENDS V
CREATE PROPERTY Product.name STRING
CREATE PROPERTY Product.price DOUBLE

এখানে, Product নামে একটি ডকুমেন্ট ক্লাস তৈরি করা হয়েছে এবং এর মধ্যে name (STRING) এবং price (DOUBLE) প্রোপার্টি যোগ করা হয়েছে।


সারাংশ

ওরিয়েন্টডিবি (OrientDB) তে OClass এবং OProperty ডেটাবেস মডেলিং এর প্রধান উপাদান। OClass ডেটার কাঠামো বা শ্রেণী তৈরি করে, যেখানে OProperty ক্লাসের মধ্যে থাকা ফিল্ড বা ডেটা টাইপ সংজ্ঞায়িত করে। এগুলি একসাথে ব্যবহার করে আপনি ডেটা মডেলিং করতে পারেন এবং ডেটাবেসের মধ্যে ডেটার কাঠামো এবং বৈশিষ্ট্যগুলোকে সঠিকভাবে ম্যানেজ করতে সক্ষম হন। OClass এবং OProperty এর মাধ্যমে ওরিয়েন্টডিবি তে শক্তিশালী এবং কার্যকরী ডেটাবেস তৈরি করা সম্ভব।


Content added By

OrientDB একটি মাল্টিমোডাল ডেটাবেস, যা গ্রাফ, ডকুমেন্ট, এবং কী-ভ্যালু মডেল সমর্থন করে। Document API ব্যবহারের মাধ্যমে, আপনি ডকুমেন্ট ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশন খুব সহজে সম্পন্ন করতে পারেন। ডকুমেন্ট ডেটাবেসে, ডেটা সাধারণত JSON বা BSON (Binary JSON) ফরম্যাটে সংরক্ষিত হয়, যা ডকুমেন্ট ভিত্তিক ডেটা মডেলিং এবং অপারেশনগুলিকে কার্যকরী এবং নমনীয় করে তোলে।

এখানে OrientDB Document API ব্যবহার করে CRUD অপারেশনগুলি কীভাবে সম্পন্ন করা হয় তা বিস্তারিতভাবে আলোচনা করা হলো।


1. Create (সৃষ্টি) অপারেশন

ডকুমেন্ট ডেটাবেসে একটি নতুন ডকুমেন্ট তৈরি করতে, আপনাকে CREATE কমান্ড ব্যবহার করতে হবে। OrientDB-তে, ডকুমেন্ট তৈরি করার জন্য আপনি ডকুমেন্ট ক্লাসে ডেটা ইনসার্ট করেন।

উদাহরণ: একটি নতুন ডকুমেন্ট তৈরি

// নতুন ডকুমেন্ট তৈরি
db.command("insert into Person (name, age, city) values ('John Doe', 30, 'New York')");

এখানে, Person একটি ডকুমেন্ট ক্লাস, এবং name, age, city প্রোপার্টি ইনসার্ট করা হয়েছে।

এছাড়া, OrientDB Java API ব্যবহার করেও আপনি ডকুমেন্ট তৈরি করতে পারেন:

ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/mydatabase");
db.open("admin", "admin");

ODocument person = new ODocument("Person");
person.field("name", "John Doe");
person.field("age", 30);
person.field("city", "New York");

person.save();

এই কোডের মাধ্যমে, Person ক্লাসে নতুন একটি ডকুমেন্ট তৈরি হয়ে যাবে।


2. Read (পড়ুন) অপারেশন

ডকুমেন্ট ডেটাবেসে ডেটা পড়তে, SELECT কুয়েরি ব্যবহার করা হয়। OrientDB SQL-এর মত কুয়েরি ভাষা ব্যবহার করে ডকুমেন্টে থাকা তথ্য সহজে পড়া সম্ভব।

উদাহরণ: একটি ডকুমেন্ট পড়া

// "Person" ক্লাস থেকে সমস্ত ডকুমেন্ট পড়া
db.command("SELECT * FROM Person WHERE city = 'New York'");

এই কুয়েরি ডাটাবেস থেকে Person ক্লাসের সমস্ত ডকুমেন্ট বের করবে যেখানে city এর মান 'New York'।

Java API ব্যবহার করে:

ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/mydatabase");
db.open("admin", "admin");

OResultSet result = db.query("SELECT * FROM Person WHERE city = 'New York'");

while (result.hasNext()) {
    ODocument person = result.next();
    System.out.println(person.field("name"));
}

এই কোডে, Person ক্লাস থেকে সমস্ত ব্যবহারকারীর নাম বের করা হবে যাদের শহর 'New York'।


3. Update (আপডেট) অপারেশন

ডকুমেন্ট ডেটাবেসে ডেটা আপডেট করতে, UPDATE কুয়েরি ব্যবহার করা হয়। কোনো নির্দিষ্ট ডকুমেন্টের প্রোপার্টি আপডেট করতে এই কুয়েরি ব্যবহার করা হয়।

উদাহরণ: ডকুমেন্ট আপডেট করা

// "Person" ক্লাসের একটি ডকুমেন্টের নাম আপডেট করা
db.command("UPDATE Person SET age = 31 WHERE name = 'John Doe'");

এই কুয়েরি দিয়ে আপনি Person ক্লাসের মধ্যে name 'John Doe' যাদের নাম তাদের age প্রোপার্টি 31 এ আপডেট করতে পারেন।

Java API দিয়ে:

ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/mydatabase");
db.open("admin", "admin");

ODocument person = db.load("#12:0"); // ডকুমেন্ট আইডি দ্বারা লোড
person.field("age", 31);
person.save();

এই কোডে, নির্দিষ্ট ডকুমেন্ট আইডি (যেমন #12:0) ব্যবহার করে ডকুমেন্টটি লোড করে তার age প্রোপার্টি আপডেট করা হবে।


4. Delete (মুছুন) অপারেশন

ডকুমেন্ট ডেটাবেস থেকে ডেটা মুছে ফেলতে, DELETE কুয়েরি ব্যবহার করা হয়। আপনি একটি বা একাধিক ডকুমেন্ট মুছতে এই কুয়েরি ব্যবহার করতে পারেন।

উদাহরণ: একটি ডকুমেন্ট মুছুন

// "Person" ক্লাস থেকে একটি নির্দিষ্ট ডকুমেন্ট মুছে ফেলুন
db.command("DELETE FROM Person WHERE name = 'John Doe'");

এই কুয়েরি name 'John Doe' যাদের, তাদের সব ডকুমেন্ট মুছে ফেলবে।

Java API দিয়ে:

ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/mydatabase");
db.open("admin", "admin");

ODocument person = db.load("#12:0"); // ডকুমেন্ট আইডি দ্বারা লোড
person.delete();

এখানে, #12:0 ডকুমেন্ট আইডি ব্যবহার করে ডকুমেন্টটি মুছে ফেলা হবে।


সারাংশ

OrientDB Document API ব্যবহার করে CRUD অপারেশন (Create, Read, Update, Delete) করা খুবই সহজ। SQL-এর মতো কুয়েরি ভাষা ব্যবহার করা হয়, যা ডকুমেন্ট ডেটাবেসের উপর বিভিন্ন কাজ সহজভাবে করতে সহায়তা করে। Java API-ও OrientDB ডেটাবেসের সাথে ইন্টিগ্রেট করার জন্য শক্তিশালী এবং নমনীয় টুলস প্রদান করে, যা ডেভেলপারদের ডকুমেন্ট ডেটাবেস পরিচালনা করতে সহায়তা করে।


Content added By
Promotion

Are you sure to start over?

Loading...