Skill

এইচ২ ডাটাবেস (H2 Database)

Database Tutorials | NCTB BOOK

এইচ২ ডাটাবেস হলো একটি ওপেন-সোর্স রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) যা মূলত Java প্রোগ্রামিং ল্যাঙ্গুয়েজে লেখা হয়েছে। এটি Java SQL API ব্যবহার করে ডেটা পরিচালনা করে এবং একটি এম্বেডেড (embedded) বা ক্লায়েন্ট-সার্ভার (client-server) মডেল হিসেবে কাজ করতে সক্ষম। H2 ডাটাবেস তার উচ্চ কার্যক্ষমতা, কম সাইজ এবং সহজ ব্যবহারযোগ্যতার কারণে ডেভেলপারদের কাছে জনপ্রিয়। এটি SQL স্ট্যান্ডার্ড সমর্থন করে এবং বিভিন্ন মোডে কাজ করতে পারে, যেমন এম্বেডেড এবং স্ট্যান্ডঅ্যালোন মোড।


H2 Database: একটি বিস্তারিত বাংলা টিউটোরিয়াল

H2 Database কি?

H2 Database হলো একটি ওপেন সোর্স রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS), যা Java প্রোগ্রামিং ভাষায় লেখা হয়েছে। এটি Java SQL Database হিসেবে পরিচিত এবং এটি ইন-মেমরি ও ডিস্ক-ভিত্তিক ডাটাবেস উভয় পদ্ধতিতে কাজ করতে পারে। H2 Database এর বৈশিষ্ট্য হলো এটি হালকা, দ্রুত এবং সহজে এমবেডেড ডাটাবেস হিসেবে ব্যবহার করা যায়, যা বিশেষত Java ভিত্তিক অ্যাপ্লিকেশনগুলোর জন্য উপযুক্ত।

H2 ডাটাবেসের সবচেয়ে বড় সুবিধা হলো এটি ইন-মেমরি ডাটাবেস হিসেবে ব্যবহার করা যায়, যেখানে ডেটা সম্পূর্ণরূপে RAM এ সংরক্ষণ করা হয়, ফলে দ্রুততম পারফরম্যান্স প্রদান করে। এটি SQL-92 মান সমর্থন করে এবং Java অ্যাপ্লিকেশনগুলোর জন্য জনপ্রিয় ডাটাবেস বিকল্পগুলোর মধ্যে একটি।


H2 Database এর বৈশিষ্ট্য

ইন-মেমরি এবং ডিস্ক-ভিত্তিক ডাটাবেস: H2 ইন-মেমরি ডাটাবেস হিসেবে ব্যবহার করা যায়, যার ফলে ডেটা সরাসরি RAM-এ সংরক্ষণ হয় এবং দ্রুত অ্যাক্সেস করা যায়। এছাড়াও, এটি ডিস্ক-ভিত্তিক ডাটাবেস হিসেবে কাজ করতে পারে যেখানে ডেটা স্থায়ীভাবে সংরক্ষিত থাকে।

ওপেন সোর্স: H2 Database একটি ওপেন সোর্স ডাটাবেস, যা GNU General Public License (GPL) এবং Eclipse Public License (EPL) এর অধীনে বিতরণ করা হয়।

হালকা ও দ্রুত: H2 খুবই হালকা এবং উচ্চতর পারফরম্যান্স প্রদান করে, যা ছোট থেকে মাঝারি আকারের অ্যাপ্লিকেশনের জন্য আদর্শ।

Java Embedded Database: H2 সরাসরি Java কোডে এমবেড করা যায়, যা Java অ্যাপ্লিকেশনের জন্য এটি একটি চমৎকার সমাধান করে তোলে।

JDBC API সমর্থন: H2 ডাটাবেস JDBC (Java Database Connectivity) API সমর্থন করে, ফলে Java অ্যাপ্লিকেশনগুলোর সাথে সহজেই সংযুক্ত করা যায়।

বহু প্ল্যাটফর্ম সমর্থন: H2 বিভিন্ন প্ল্যাটফর্ম যেমন Windows, Linux, এবং MacOS এ কাজ করতে সক্ষম।

GUI কনসোল: H2 একটি বিল্ট-ইন ওয়েব ভিত্তিক GUI কনসোল সরবরাহ করে, যার মাধ্যমে ডাটাবেস পরিচালনা, কুয়েরি চালানো, এবং ডেটাবেস টেবিল পরিচালনা করা যায়।

স্ট্যান্ডার্ড SQL সমর্থন: H2 SQL-92 মান অনুসরণ করে, যার ফলে SQL কুয়েরি চালানো সহজ এবং পরিচিত SQL সিনট্যাক্স ব্যবহার করা যায়।


H2 Database ইনস্টলেশন

H2 ডাটাবেসের ইনস্টলেশন প্রক্রিয়া খুবই সহজ এবং এটি Java ভিত্তিক হওয়ার কারণে আপনার সিস্টেমে JDK (Java Development Kit) ইনস্টল করা থাকতে হবে।

ধাপ ১: H2 ডাটাবেস ডাউনলোড

  1. প্রথমে H2 ডাটাবেসের অফিসিয়াল ওয়েবসাইট থেকে ডাটাবেসটি ডাউনলোড করুন।
  2. ডাউনলোড সম্পন্ন হলে, .zip বা .jar ফাইলটি আনজিপ করুন।

ধাপ ২: H2 ডাটাবেস চালু করা

H2 ডাটাবেস চালাতে নিচের কমান্ডটি ব্যবহার করুন:

java -jar h2*.jar

ডাটাবেস চালু হলে একটি ব্রাউজারে নিচের লিংকটি খুলুন:

এখানে আপনি H2 ডাটাবেসের GUI কনসোল দেখতে পাবেন, যেখানে আপনি SQL কুয়েরি চালাতে এবং ডাটাবেস পরিচালনা করতে পারবেন।

http://localhost:8082

ধাপ ৩: H2 ডাটাবেসে লগ ইন

H2 ডাটাবেসের GUI কনসোলে লগ ইন করতে সাধারণত ডিফল্ট লগইন তথ্যগুলো এই রকম থাকে:

  • Driver Class: org.h2.Driver
  • JDBC URL: jdbc:h2:~/test
  • User Name: sa
  • Password: (খালি রাখতে হবে)

এই তথ্যগুলো দিয়ে লগ ইন করার পরে আপনি ডাটাবেসের GUI কনসোলে প্রবেশ করতে পারবেন এবং ডেটাবেস পরিচালনা করতে পারবেন।


H2 ডাটাবেসে ডেটা পরিচালনা

H2 ডাটাবেসে ডেটা সংরক্ষণ ও পরিচালনার জন্য SQL কুয়েরি ব্যবহার করা হয়। এখানে কিছু সাধারণ কাজের উদাহরণ দেওয়া হলো।

১. একটি টেবিল তৈরি করা

H2 ডাটাবেসে টেবিল তৈরি করতে নিচের SQL কুয়েরি ব্যবহার করা যেতে পারে:

CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(100),
  designation VARCHAR(100),
  salary DECIMAL(10, 2)
);

২. ডেটা ইনসার্ট করা

একটি টেবিলে ডেটা ইনসার্ট করার জন্য:

INSERT INTO employees (id, name, designation, salary)
VALUES (1, 'John Doe', 'Software Engineer', 60000.00);

৩. ডেটা রিট্রিভ করা

একটি নির্দিষ্ট শর্ত অনুসারে ডেটা রিট্রিভ করতে:

SELECT * FROM employees WHERE designation = 'Software Engineer';

৪. ডেটা আপডেট করা

H2 ডাটাবেসে ডেটা আপডেট করার জন্য:

UPDATE employees SET salary = 65000.00 WHERE id = 1;

৫. ডেটা ডিলিট করা

একটি টেবিল থেকে ডেটা ডিলিট করার জন্য:

DELETE FROM employees WHERE id = 1;

H2 Database এর সুবিধা

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

H2 Database এর অসুবিধা

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

H2 Database বনাম অন্যান্য ডাটাবেস

H2 Database এর তুলনা অন্যান্য ডাটাবেসের সাথে করলে এর বেশ কিছু অনন্য বৈশিষ্ট্য এবং সীমাবদ্ধতা প্রকাশ পায়। নিচে H2 Database কে কিছু জনপ্রিয় ডাটাবেসের সাথে তুলনা করে দেখানো হয়েছে।

H2 Database বনাম MySQL

বৈশিষ্ট্যH2 DatabaseMySQL
ডাটাবেস টাইপরিলেশনাল ডাটাবেস (RDBMS)রিলেশনাল ডাটাবেস (RDBMS)
এম্বেডেড সাপোর্টহ্যাঁনা
ইন-মেমরি সাপোর্টহ্যাঁনা
ক্লায়েন্ট-সার্ভার মডেলহ্যাঁহ্যাঁ
ডাটাবেস সাইজছোট আকারের অ্যাপ্লিকেশনবড় আকারের অ্যাপ্লিকেশন
কনসিস্টেন্সিACID সমর্থিত (ট্রানজ্যাকশন)ACID সমর্থিত (ট্রানজ্যাকশন)
স্কেলেবিলিটিসীমিতঅত্যন্ত স্কেলেবল
ডিস্ট্রিবিউটেড সাপোর্টনাহ্যাঁ
ব্যবহারক্ষেত্রছোট Java অ্যাপ্লিকেশন, টেস্টিংবড় ও উচ্চ ট্রাফিক অ্যাপ্লিকেশন

MySQL বড় স্কেল অ্যাপ্লিকেশন এবং প্রোডাকশন এনভায়রনমেন্টের জন্য ব্যবহার করা হয়, যেখানে H2 Database প্রধানত ডেভেলপমেন্ট এবং টেস্টিং এর জন্য উপযুক্ত।

H2 Database বনাম SQLite

বৈশিষ্ট্যH2 DatabaseSQLite
ডাটাবেস টাইপরিলেশনাল ডাটাবেস (RDBMS)রিলেশনাল ডাটাবেস (RDBMS)
এম্বেডেড সাপোর্টহ্যাঁহ্যাঁ
ইন-মেমরি সাপোর্টহ্যাঁসীমিত
ক্লায়েন্ট-সার্ভার মডেলহ্যাঁনা
ডাটাবেস ফাইল সিস্টেমফাইল এবং মেমরি ভিত্তিকফাইল ভিত্তিক
স্কেলেবিলিটিছোট আকারের অ্যাপ্লিকেশনছোট আকারের অ্যাপ্লিকেশন
ডেটাবেস আকারছোটছোট
ব্যবহারক্ষেত্রJava অ্যাপ্লিকেশন, টেস্টিংমোবাইল অ্যাপ্লিকেশন, হালকা ওয়েব অ্যাপ

SQLite প্রধানত মোবাইল এবং ছোট ওয়েব অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়, যেখানে H2 Database মূলত Java ভিত্তিক অ্যাপ্লিকেশন এবং টেস্টিং এর জন্য ব্যবহৃত হয়।

H2 Database বনাম PostgreSQL

বৈশিষ্ট্যH2 DatabasePostgreSQL
ডাটাবেস টাইপরিলেশনাল ডাটাবেস (RDBMS)রিলেশনাল ডাটাবেস (RDBMS)
এম্বেডেড সাপোর্টহ্যাঁনা
ইন-মেমরি সাপোর্টহ্যাঁনা
ক্লায়েন্ট-সার্ভার মডেলহ্যাঁহ্যাঁ
ডাটাবেস সাইজছোট আকারের অ্যাপ্লিকেশনবড় আকারের অ্যাপ্লিকেশন
অ্যাডভান্সড ফিচারসীমিতস্টোরড প্রসিডিউর, ট্রিগার, JSON
স্কেলেবিলিটিসীমিতঅত্যন্ত স্কেলেবল
ব্যবহারক্ষেত্রটেস্টিং, হালকা অ্যাপ্লিকেশনএন্টারপ্রাইজ অ্যাপ্লিকেশন

PostgreSQL এন্টারপ্রাইজ লেভেলের অ্যাপ্লিকেশন এবং ডেটা বিশ্লেষণের জন্য জনপ্রিয়, যেখানে H2 Database মূলত টেস্টিং এবং ছোট আকারের অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়।

H2 Database বনাম MongoDB (NoSQL)

বৈশিষ্ট্যH2 DatabaseMongoDB
ডাটাবেস টাইপরিলেশনাল ডাটাবেস (RDBMS)NoSQL ডকুমেন্ট স্টোরেজ
এম্বেডেড সাপোর্টহ্যাঁনা
ইন-মেমরি সাপোর্টহ্যাঁনা
ক্লায়েন্ট-সার্ভার মডেলহ্যাঁহ্যাঁ
ডেটা মডেলটেবিল ভিত্তিকডকুমেন্ট ভিত্তিক (JSON-like)
স্কেলেবিলিটিসীমিতঅত্যন্ত স্কেলেবল
ব্যবহারক্ষেত্ররিলেশনাল ডেটাবেসডকুমেন্ট ভিত্তিক অ্যাপ্লিকেশন

MongoDB হলো একটি NoSQL ডাটাবেস, যা ডকুমেন্ট ভিত্তিক ডেটা স্টোরেজের জন্য ব্যবহৃত হয়। অন্যদিকে, H2 একটি রিলেশনাল ডাটাবেস হিসেবে SQL ভিত্তিক ডেটা ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।

উপসংহার

H2 Database মূলত Java ভিত্তিক অ্যাপ্লিকেশন এবং টেস্টিং এর জন্য উপযুক্ত একটি হালকা ও দ্রুত রিলেশনাল ডাটাবেস। তবে বড় আকারের অ্যাপ্লিকেশন বা ডিস্ট্রিবিউটেড সিস্টেমের জন্য MySQL বা PostgreSQL এর মতো বড় স্কেল রিলেশনাল ডাটাবেসগুলি বেশি কার্যকর। MongoDB বা CouchDB এর মতো NoSQL ডাটাবেসগুলি ডকুমেন্ট ভিত্তিক ডেটা মডেলিং এর জন্য ভালো, যেখানে H2 ডাটাবেস মূলত রিলেশনাল ডেটা মডেলের জন্য কাজ করে।

Promotion