Electron অ্যাপ্লিকেশনগুলোতে IndexedDB এবং WebSQL হল দুটি জনপ্রিয় প্রযুক্তি যা আপনি Renderer Process-এ ব্যবহার করতে পারেন ডেটা সংরক্ষণ এবং পুনরুদ্ধারের জন্য। এগুলি ক্লায়েন্ট-সাইড ডেটাবেস হিসেবে কাজ করে এবং Electron অ্যাপ্লিকেশনগুলিতে পersistent ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।
এই লেখায়, IndexedDB এবং WebSQL ব্যবহারের মাধ্যমে Electron অ্যাপ্লিকেশনে ডেটা সংরক্ষণ করার পদ্ধতি আলোচনা করা হবে।
১. IndexedDB
IndexedDB হল একটি ব্রাউজার-ভিত্তিক ডেটাবেস সিস্টেম যা অ্যাসিঙ্ক্রোনাসভাবে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে সক্ষম। এটি ব্রাউজার এবং Electron অ্যাপ্লিকেশনগুলোতে বড় আকারের ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। এটি একটি NoSQL ডেটাবেস, যেখানে ডেটা key-value জোড়ার মাধ্যমে সংরক্ষিত থাকে।
IndexedDB ব্যবহার করার উদাহরণ
IndexedDB-তে ডেটা সংরক্ষণের জন্য আপনি indexedDB API ব্যবহার করবেন।
ডেটা সংরক্ষণ করা:
const dbRequest = indexedDB.open('myDatabase', 1); // ডেটাবেস খোলা
dbRequest.onupgradeneeded = (event) => {
const db = event.target.result;
if (!db.objectStoreNames.contains('users')) {
const objectStore = db.createObjectStore('users', { keyPath: 'id' });
objectStore.createIndex('name', 'name', { unique: false });
}
};
dbRequest.onsuccess = (event) => {
const db = event.target.result;
const transaction = db.transaction(['users'], 'readwrite');
const objectStore = transaction.objectStore('users');
const user = { id: 1, name: 'John Doe', age: 30 };
const request = objectStore.add(user);
request.onsuccess = () => {
console.log('ডেটা সফলভাবে সংরক্ষিত হয়েছে');
};
request.onerror = () => {
console.log('ডেটা সংরক্ষণে সমস্যা হয়েছে');
};
};
ডেটা পুনরুদ্ধার করা:
const dbRequest = indexedDB.open('myDatabase', 1);
dbRequest.onsuccess = (event) => {
const db = event.target.result;
const transaction = db.transaction(['users'], 'readonly');
const objectStore = transaction.objectStore('users');
const request = objectStore.get(1); // id = 1 দ্বারা ডেটা আনা
request.onsuccess = () => {
console.log('ডেটা:', request.result);
};
request.onerror = () => {
console.log('ডেটা পড়তে সমস্যা হয়েছে');
};
};
IndexedDB এর বৈশিষ্ট্য:
- অ্যাসিঙ্ক্রোনাস: ডেটা পড়া এবং লেখা অ্যাসিঙ্ক্রোনাসভাবে হয়, তাই অ্যাপ্লিকেশন স্থির থাকে।
- NoSQL: এটি একটি NoSQL ডেটাবেস, তাই স্কিমা পরিবর্তন করতে অনেক সহজ।
- বড় আকারের ডেটা: IndexedDB বড় আকারের ডেটা যেমন JSON অবজেক্ট ইত্যাদি সংরক্ষণ করতে সক্ষম।
২. WebSQL
WebSQL একটি SQL-বেসড ডেটাবেস সিস্টেম, যা Electron এবং অন্যান্য ওয়েব অ্যাপ্লিকেশনে ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। WebSQL-এ আপনি SQL কুয়েরি ব্যবহার করে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে পারেন। তবে, WebSQL বর্তমানে অনেক ব্রাউজার দ্বারা ডিসকন্টিনিউড (deprecated) হয়ে গেছে, তবে Electron-এ এটি এখনো ব্যবহৃত হতে পারে।
WebSQL ব্যবহার করার উদাহরণ
ডেটা সংরক্ষণ করা:
const db = openDatabase('myDatabase', '1.0', 'My SQL Database', 5 * 1024 * 1024); // ডেটাবেস খোলা
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS users (id UNIQUE, name, age)');
tx.executeSql('INSERT INTO users (id, name, age) VALUES (1, "John Doe", 30)');
});
ডেটা পুনরুদ্ধার করা:
const db = openDatabase('myDatabase', '1.0', 'My SQL Database', 5 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM users WHERE id = ?', [1], function (tx, results) {
const user = results.rows.item(0);
console.log('ডেটা:', user);
});
});
WebSQL এর বৈশিষ্ট্য:
- SQL ভিত্তিক: SQL কুয়েরি ব্যবহার করে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করা যায়।
- অ্যাসিঙ্ক্রোনাস: WebSQL অ্যাসিঙ্ক্রোনাসভাবে ডেটা পড়তে এবং লেখতে সহায়ক।
- এখন আর সাপোর্টেড নয়: WebSQL অধিকাংশ ব্রাউজারে সাপোর্ট বন্ধ করেছে, তবে Electron এ এটি এখনও কাজ করতে পারে।
৩. IndexedDB এবং WebSQL এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | IndexedDB | WebSQL |
|---|---|---|
| টেকনিক্যাল স্টাইল | NoSQL (key-value store) | SQL (relational database) |
| প্ল্যাটফর্ম সাপোর্ট | ওয়েব এবং Electron | বেশিরভাগ আধুনিক ব্রাউজারে ডিসকন্টিনিউড |
| ডেটা সংরক্ষণ | JSON অবজেক্ট, key-value পেয়ার | টেবিল এবং SQL কুয়েরি ভিত্তিক |
| পারফরম্যান্স | উচ্চ পারফরম্যান্স, অ্যাসিঙ্ক্রোনাস | কম পারফরম্যান্স এবং ওয়েব ব্রাউজারে সাপোর্ট নেই |
৪. Electron-এ IndexedDB এবং WebSQL এর ব্যবহার
- IndexedDB: এটি Electron অ্যাপ্লিকেশনগুলোর জন্য উপযুক্ত, কারণ এটি বড় আকারের ডেটা সংরক্ষণের জন্য দ্রুত এবং কার্যকর। এটি NoSQL স্টোরেজ প্রযুক্তি হওয়ায় এটি JSON অবজেক্টগুলো সহজে সংরক্ষণ করতে পারে।
- WebSQL: যদিও WebSQL এখনও Electron-এ সাপোর্ট করা হয়, তবে এটি আধুনিক ব্রাউজারগুলিতে সাপোর্ট বন্ধ হয়ে গেছে। IndexedDB সেরা বিকল্প হিসেবে কাজ করবে কারণ এটি ওয়েব অ্যাপ্লিকেশন এবং Electron-এ ভালো সাপোর্ট পায়।
সারাংশ
- IndexedDB একটি আধুনিক, অ্যাসিঙ্ক্রোনাস, NoSQL ডেটাবেস প্রযুক্তি যা Electron অ্যাপ্লিকেশনগুলোর জন্য আদর্শ, বিশেষত যখন বড় আকারের ডেটা সংরক্ষণ করতে হয়।
- WebSQL একটি SQL ভিত্তিক ডেটাবেস সিস্টেম, তবে এটি আধুনিক ব্রাউজারগুলোতে সাপোর্ট বন্ধ হয়ে গেছে, তবে Electron এ এটি এখনও ব্যবহার করা যেতে পারে।
- IndexedDB এবং WebSQL ব্যবহার করে আপনি Electron অ্যাপ্লিকেশনগুলোতে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে পারেন, তবে IndexedDB আধুনিক এবং সেরা পছন্দ।
Read more