Apache Derby একটি শক্তিশালী রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) যা SQL (Structured Query Language) এর মাধ্যমে ডেটাবেস পরিচালনা করতে সাহায্য করে। এখানে Apache Derby এর বেসিক অপারেশনগুলো নিয়ে আলোচনা করা হলো যা আপনি ডেটাবেস তৈরি, কনফিগারেশন এবং সাধারণ অপারেশনগুলিতে ব্যবহার করতে পারবেন।
Apache Derby-তে ডেটাবেস তৈরি করতে JDBC বা Derby Command Line ব্যবহার করা যায়। এখানে আমরা JDBC এর মাধ্যমে ডেটাবেস তৈরি করার পদ্ধতি দেখবো।
JDBC ব্যবহার করে ডেটাবেস তৈরি:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;
public class DerbyExample {
public static void main(String[] args) {
try {
// ড্রাইভার লোড করা
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
// ডেটাবেস সংযোগ স্থাপন
Connection conn = DriverManager.getConnection("jdbc:derby:myDB;create=true");
// টেবিল তৈরি করা
Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE employee (id INT PRIMARY KEY, name VARCHAR(100), age INT)");
System.out.println("ডেটাবেস এবং টেবিল সফলভাবে তৈরি হয়েছে।");
// সংযোগ বন্ধ করা
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
এটি myDB নামের ডেটাবেস তৈরি করবে এবং এতে employee নামের একটি টেবিল তৈরি করবে।
একটি ডেটাবেস তৈরি করার পর, আপনি টেবিল তৈরি করতে পারেন। একটি টেবিল তৈরি করার জন্য SQL CREATE TABLE কমান্ড ব্যবহার করা হয়।
টেবিল তৈরি করার SQL কোড:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
এই কমান্ডটি একটি employee নামের টেবিল তৈরি করবে, যার মধ্যে id, name, এবং age কলাম থাকবে।
টেবিল তৈরি করার পর, আপনি তার মধ্যে ডেটা ইনসার্ট করতে পারেন। এর জন্য INSERT INTO SQL কমান্ড ব্যবহার করা হয়।
ডেটা ইনসার্ট করার SQL কোড:
INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30);
INSERT INTO employee (id, name, age) VALUES (2, 'Jane Smith', 25);
এই কমান্ডগুলো দুটি রেকর্ড employee টেবিলে ইনসার্ট করবে।
টেবিল থেকে ডেটা নির্বাচন করার জন্য SELECT কমান্ড ব্যবহার করা হয়। এটি টেবিল থেকে নির্দিষ্ট তথ্য বের করতে সাহায্য করে।
ডেটা নির্বাচন করার SQL কোড:
SELECT * FROM employee;
এটি employee টেবিলের সকল রেকর্ড এবং কলাম দেখাবে।
নির্দিষ্ট কলাম নির্বাচন:
SELECT name, age FROM employee;
এটি শুধুমাত্র name এবং age কলামগুলো দেখাবে।
ডেটাবেসে থাকা ডেটা আপডেট করার জন্য UPDATE কমান্ড ব্যবহার করা হয়।
ডেটা আপডেট করার SQL কোড:
UPDATE employee SET age = 35 WHERE id = 1;
এটি id = 1 রেকর্ডের age কলামটি ৩০ থেকে ৩৫ এ আপডেট করবে।
যেকোনো ডেটাবেস থেকে ডেটা মুছে ফেলার জন্য DELETE কমান্ড ব্যবহার করা হয়।
ডেটা মুছে ফেলার SQL কোড:
DELETE FROM employee WHERE id = 2;
এটি id = 2 রেকর্ডটি employee টেবিল থেকে মুছে ফেলবে।
ডেটাবেসের অপারেশন শেষে ডেটাবেস বন্ধ করতে হয়। এটি Embedded Mode-এ কাজ করার সময় গুরুত্বপূর্ণ। আপনি SHUTDOWN কমান্ড ব্যবহার করে ডেটাবেস বন্ধ করতে পারেন।
ডেটাবেস বন্ধ করার SQL কোড:
Connection conn = DriverManager.getConnection("jdbc:derby:myDB;shutdown=true");
এটি ডেটাবেস বন্ধ করবে এবং প্রয়োজনীয় রিসোর্স মুক্ত করবে।
Apache Derby SQL ইনডেক্স সাপোর্ট করে, যা দ্রুত ডেটা অনুসন্ধান (search) করতে সাহায্য করে। আপনি CREATE INDEX কমান্ড দিয়ে ইনডেক্স তৈরি করতে পারেন।
ইনডেক্স তৈরি করার SQL কোড:
CREATE INDEX idx_name ON employee(name);
এটি employee টেবিলের name কলামের উপর ইনডেক্স তৈরি করবে।
Apache Derby ACID ট্রানজেকশন সাপোর্ট করে, যা ডেটাবেসের সমন্বয় এবং নিরাপত্তা বজায় রাখে।
ট্রানজেকশন শুরু এবং শেষ করার SQL কোড:
START TRANSACTION;
UPDATE employee SET age = 40 WHERE id = 1;
COMMIT;
এটি id = 1 এর জন্য age ৩৫ থেকে ৪০ তে পরিবর্তন করবে এবং ট্রানজেকশন সফলভাবে সম্পন্ন করবে।
Apache Derby-তে বড় পরিমাণ ডেটার সঙ্গে কাজ করার সময় কুয়েরি অপটিমাইজেশন খুবই গুরুত্বপূর্ণ। আপনি EXPLAIN কমান্ড ব্যবহার করে কুয়েরির কর্মক্ষমতা বিশ্লেষণ করতে পারেন।
EXPLAIN ব্যবহার:
EXPLAIN SELECT * FROM employee WHERE age > 30;
এটি কুয়েরিটির কার্যক্রম এবং এর পারফরমেন্স সম্পর্কে তথ্য প্রদান করবে।
Apache Derby এর বেসিক অপারেশনগুলির মধ্যে ডেটাবেস তৈরি, টেবিল তৈরি, ডেটা ইনসার্ট, আপডেট, নির্বাচন, মুছে ফেলা এবং ট্রানজেকশন পরিচালনা অন্তর্ভুক্ত রয়েছে। এগুলো আপনি সহজেই JDBC অথবা SQL কমান্ড ব্যবহার করে পরিচালনা করতে পারেন। Apache Derby এর সাপোর্ট করা এই মৌলিক অপারেশনগুলির মাধ্যমে আপনি কার্যকরভাবে ডেটাবেস পরিচালনা করতে পারবেন।
Apache Derby এ ডেটাবেস তৈরি করা খুবই সহজ এবং এটি JDBC বা ij (Interactive JDBC) টুলের মাধ্যমে করা যেতে পারে। নিচে বিস্তারিতভাবে ডেটাবেস তৈরির প্রক্রিয়া আলোচনা করা হলো।
ij একটি কমান্ড লাইন টুল যা Apache Derby ডেটাবেসে SQL কুয়েরি রান করতে ব্যবহৃত হয়। এটি Java অ্যাপ্লিকেশন থেকে Derby ডেটাবেসের সাথে সংযোগ স্থাপন করতে সহায়তা করে।
প্রথমে ij টুলটি চালু করতে হবে। আপনি Windows অথবা Linux/MacOS এর জন্য নিচের স্ক্রিপ্ট ফাইল চালাতে পারেন।
Windows-এ:
C:\derby\bin\ij.bat
Linux/MacOS-এ:
$DERBY_HOME/bin/ij
এটি চালানোর পর, একটি ij>
প্রম্পট প্রদর্শিত হবে, যা নির্দেশ করবে আপনি সফলভাবে ij টুলে প্রবেশ করেছেন।
এখন আপনি ডেটাবেস তৈরি করতে নিচের SQL কমান্ডটি ব্যবহার করবেন:
connect 'jdbc:derby:/path/to/database/myDB;create=true';
এখানে:
/path/to/database/myDB
এর জায়গায় আপনি আপনার ডেটাবেসের লোকেশন উল্লেখ করবেন।create=true
নির্দেশ করে যে, যদি ডেটাবেসটি পূর্বে বিদ্যমান না থাকে, তাহলে নতুন ডেটাবেস তৈরি হবে।উদাহরণ:
connect 'jdbc:derby:C:/derby/myDB;create=true';
এটি myDB
নামক একটি নতুন ডেটাবেস তৈরি করবে এবং আপনি সেই ডেটাবেসে সংযুক্ত হয়ে যাবেন।
ডেটাবেস তৈরি হওয়ার পর, আপনি SQL কুয়েরি ব্যবহার করে টেবিল তৈরি করতে পারবেন। উদাহরণস্বরূপ, একটি সাধারণ employee
টেবিল তৈরি করতে:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
এই কুয়েরিটি একটি employee
টেবিল তৈরি করবে, যেখানে id
, name
, এবং age
ফিল্ড থাকবে।
টেবিল তৈরি করার পর, আপনি এতে ডেটা ইনসার্ট করতে পারবেন:
INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30);
এটি employee
টেবিলে একটি রেকর্ড ইনসার্ট করবে।
JDBC (Java Database Connectivity) ব্যবহার করে আপনি Java কোডের মাধ্যমে Apache Derby এ ডেটাবেস তৈরি করতে পারেন।
প্রথমে আপনার Java প্রোজেক্টে derby.jar লাইব্রেরি অন্তর্ভুক্ত করুন। এটি সাধারণত $DERBY_HOME/lib ফোল্ডারে থাকে।
এখানে একটি উদাহরণ কোড দেওয়া হলো, যা JDBC ব্যবহার করে Apache Derby এ ডেটাবেস তৈরি করবে:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class DerbyDatabaseExample {
public static void main(String[] args) {
try {
// JDBC ড্রাইভার লোড
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
// ডেটাবেস সংযোগ তৈরি
Connection conn = DriverManager.getConnection("jdbc:derby:C:/derby/myDB;create=true");
// SQL কমান্ড রান করার জন্য স্টেটমেন্ট তৈরি
Statement stmt = conn.createStatement();
// একটি টেবিল তৈরি করা
String createTableSQL = "CREATE TABLE employee (id INT PRIMARY KEY, name VARCHAR(100), age INT)";
stmt.executeUpdate(createTableSQL);
// টেবিলে ডেটা ইনসার্ট করা
String insertSQL = "INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30)";
stmt.executeUpdate(insertSQL);
// সংযোগ বন্ধ করা
stmt.close();
conn.close();
System.out.println("ডেটাবেস এবং টেবিল সফলভাবে তৈরি হয়েছে।");
} catch (Exception e) {
e.printStackTrace();
}
}
}
এটি C:/derby/myDB
নামক ডিরেক্টরিতে একটি নতুন ডেটাবেস তৈরি করবে, তারপর employee
নামক একটি টেবিল তৈরি করবে এবং তাতে একটি রেকর্ড ইনসার্ট করবে।
Apache Derby এ ডেটাবেস তৈরি করা খুবই সহজ। আপনি ij টুল ব্যবহার করে অথবা JDBC এর মাধ্যমে Java কোডের মধ্যে ডেটাবেস এবং টেবিল তৈরি করতে পারেন। এর মাধ্যমে আপনি সহজেই আপনার অ্যাপ্লিকেশনগুলির জন্য ডেটাবেস তৈরি এবং পরিচালনা করতে পারবেন।
Apache Derby-এ টেবিল তৈরি এবং সংশোধন করার জন্য SQL কমান্ড ব্যবহার করা হয়। নিচে বিস্তারিতভাবে টেবিল তৈরি এবং সংশোধন করার প্রক্রিয়া দেওয়া হলো।
Apache Derby-এ একটি নতুন টেবিল তৈরি করতে CREATE TABLE
SQL কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি একটি employee নামের টেবিল তৈরি করতে চান, যেখানে id, name, এবং age ফিল্ড থাকবে, তাহলে কমান্ডটি হবে:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
id
: একটি পূর্ণসংখ্যা (integer) কলাম, যা প্রাইমারি কি (Primary Key) হিসেবে ব্যবহৃত হবে।name
: একটি স্ট্রিং (VARCHAR), যেখানে ১০০ ক্যারেকটার পর্যন্ত নাম থাকতে পারে।age
: একটি পূর্ণসংখ্যা (integer), যেখানে কর্মচারীর বয়স রাখা হবে।টেবিল তৈরি হওয়ার পর, আপনি সেই টেবিলে ডেটা ইনসার্ট করতে পারেন। উদাহরণস্বরূপ:
INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30);
এটি employee টেবিলে একটি নতুন রেকর্ড যোগ করবে, যেখানে:
id
: ১name
: 'John Doe'age
: ৩০টেবিলে উপস্থিত তথ্য পরিবর্তন করতে UPDATE
কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি id = 1
এর নাম পরিবর্তন করতে চান, তাহলে কমান্ডটি হবে:
UPDATE employee SET name = 'Jane Doe' WHERE id = 1;
এটি id ১ এর জন্য কর্মচারীর নাম 'John Doe'
থেকে 'Jane Doe'
এ পরিবর্তন করবে।
যদি আপনি কোন টেবিল থেকে রেকর্ড মুছে ফেলতে চান, তাহলে DELETE
কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি id = 1
রেকর্ডটি মুছে ফেলতে চান:
DELETE FROM employee WHERE id = 1;
এটি id = 1 এর সাথে সংশ্লিষ্ট রেকর্ডটি মুছে ফেলবে।
টেবিলের গঠন পরিবর্তন করতে ALTER TABLE
কমান্ড ব্যবহার করা হয়। এর মাধ্যমে নতুন কলাম যোগ করা, পুরানো কলাম পরিবর্তন করা, অথবা কলাম মুছে ফেলা যায়।
ALTER TABLE employee ADD COLUMN department VARCHAR(50);
এটি employee টেবিলের মধ্যে একটি নতুন কলাম department
যোগ করবে, যেখানে ৫০ ক্যারেকটার পর্যন্ত ডিপার্টমেন্টের নাম থাকতে পারে।
ALTER TABLE employee RENAME COLUMN name TO full_name;
এটি employee টেবিলের name
কলামের নাম পরিবর্তন করে full_name
করবে।
ALTER TABLE employee DROP COLUMN age;
এটি employee টেবিল থেকে age
কলামটি মুছে ফেলবে।
যদি আপনি একটি টেবিল পুরোপুরি মুছে ফেলতে চান, তাহলে DROP TABLE
কমান্ড ব্যবহার করতে হয়:
DROP TABLE employee;
এটি employee টেবিলটি এবং তার সমস্ত ডেটা মুছে ফেলবে।
যদি আপনি একটি টেবিলের গঠন দেখতে চান, অর্থাৎ টেবিলের কলাম এবং তাদের ডেটা টাইপ জানতে চান, তাহলে DESCRIBE
কমান্ড ব্যবহার করতে পারেন:
DESCRIBE employee;
এটি employee টেবিলের কলাম এবং তাদের ডেটা টাইপের বিস্তারিত প্রদর্শন করবে।
Apache Derby-এ টেবিল তৈরি, সংশোধন, তথ্য ইনসার্ট, আপডেট, এবং মুছতে SQL কমান্ড ব্যবহার করা হয়। এই কমান্ডগুলি ব্যবহারের মাধ্যমে আপনি আপনার ডেটাবেস সিস্টেমে টেবিল এবং ডেটা পরিচালনা করতে পারেন। CREATE
, ALTER
, INSERT
, UPDATE
, DELETE
, এবং DROP
কমান্ডগুলো ব্যবহার করে ডেটাবেসের সম্পূর্ণ নিয়ন্ত্রণ রাখতে পারবেন।
Apache Derby একটি রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম, যেখানে আপনি SQL ব্যবহার করে ডেটা ইনসার্ট, আপডেট এবং ডিলিট করতে পারেন। নিচে এগুলি করার জন্য কিছু মৌলিক SQL কুয়েরি দেওয়া হল:
ডেটাবেসে নতুন রেকর্ড বা ডেটা ইনসার্ট করতে INSERT INTO কুয়েরি ব্যবহার করা হয়।
ধরা যাক, আপনার employee
নামক একটি টেবিল রয়েছে, যার মধ্যে id
, name
, এবং age
কলাম রয়েছে।
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
এখন, এই টেবিলের মধ্যে ডেটা ইনসার্ট করতে:
INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30);
INSERT INTO employee (id, name, age) VALUES (2, 'Jane Smith', 25);
এটি employee
টেবিলের মধ্যে দুইটি রেকর্ড ইনসার্ট করবে।
আপনি একাধিক রেকর্ড একসঙ্গে ইনসার্ট করতে পারেন:
INSERT INTO employee (id, name, age) VALUES
(3, 'Sam Green', 35),
(4, 'Lucy Brown', 28),
(5, 'David White', 40);
ডেটাবেসে কোন নির্দিষ্ট রেকর্ডের মান পরিবর্তন করতে UPDATE কুয়েরি ব্যবহার করা হয়।
ধরা যাক, আপনি employee
টেবিলের id = 2
এর age
আপডেট করতে চান:
UPDATE employee SET age = 26 WHERE id = 2;
এটি id = 2
এর age
মান ২৫ থেকে ২৬ তে আপডেট করবে।
একাধিক কলাম একসঙ্গে আপডেট করতে পারেন:
UPDATE employee SET name = 'John Wick', age = 31 WHERE id = 1;
এটি id = 1
এর name
এবং age
দুইটি কলাম আপডেট করবে।
ডেটাবেস থেকে কোন রেকর্ড মুছতে DELETE FROM কুয়েরি ব্যবহার করা হয়।
ধরা যাক, আপনি employee
টেবিল থেকে id = 3
এর রেকর্ড মুছে ফেলতে চান:
DELETE FROM employee WHERE id = 3;
এটি id = 3
এর রেকর্ডটি ডিলিট করবে।
যদি আপনি টেবিলের সব রেকর্ড ডিলিট করতে চান (কিন্তু টেবিল স্ট্রাকচার রয়ে যাবে):
DELETE FROM employee;
এটি employee
টেবিলের সব রেকর্ড মুছে ফেলবে।
এই তিনটি মৌলিক SQL কুয়েরি দিয়ে আপনি Apache Derby-এ ডেটা পরিচালনা করতে পারবেন।
Derby SQL Dialect হল Apache Derby ডেটাবেস সিস্টেমের জন্য নির্দিষ্ট SQL ভাষা সংজ্ঞা। এটি SQL (Structured Query Language)-এর একটি সংশোধিত সংস্করণ যা Derby ডেটাবেস পরিচালনা করতে ব্যবহৃত হয়। অন্যান্য রিলেশনাল ডেটাবেস সিস্টেম যেমন MySQL, PostgreSQL, বা Oracle SQL-এর মতোই, Derby SQL Dialect এর নিজস্ব কিছু সীমাবদ্ধতা এবং বিশেষত্ব রয়েছে।
Apache Derby-এ SQL সমর্থন স্ট্যান্ডার্ড ANSI SQL এর সাথে মিলে, তবে কিছু অঙ্গভঙ্গি এবং ডেটাবেসের কার্যক্রমে কিছু পার্থক্য থাকতে পারে। Derby SQL Dialect ব্যবহৃত SQL কুয়েরিগুলি বিশেষভাবে JDBC (Java Database Connectivity) ক্লায়েন্ট অ্যাপ্লিকেশনগুলির জন্য অপ্টিমাইজ করা।
Derby SQL Dialect, স্ট্যান্ডার্ড SQL সিনট্যাক্স ব্যবহার করে, তবে কিছু সুবিধা বা সীমাবদ্ধতা থাকতে পারে। অধিকাংশ SQL কুয়েরি যেমন SELECT
, INSERT
, UPDATE
, DELETE
, CREATE
, DROP
ইত্যাদি সমর্থিত থাকে।
উদাহরণ:
SELECT * FROM employees;
CREATE TABLE: Derby SQL Dialect এ টেবিল তৈরি করতে CREATE TABLE
কুয়েরি ব্যবহার করা হয়।
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
ALTER TABLE: টেবিলের গঠন পরিবর্তন করতে ALTER TABLE
কুয়েরি ব্যবহার করা হয়, তবে কিছু সীমাবদ্ধতা থাকতে পারে যেমন কলাম পরিবর্তন বা ড্রপ করা।
ALTER TABLE employees ADD COLUMN department VARCHAR(50);
Derby SQL Dialect এ ইন্ডেক্স এবং ফাংশন সমর্থিত হলেও, কিছু ক্ষেত্রে এটি অন্যান্য ডেটাবেস সিস্টেমের মতো পরিপূর্ণভাবে সমর্থন নাও করতে পারে। আপনি CREATE INDEX এবং DROP INDEX কুয়েরি ব্যবহার করে টেবিলের উপর ইনডেক্স তৈরি এবং মুছে ফেলতে পারেন।
Derby SQL Dialect সম্পূর্ণভাবে ACID (Atomicity, Consistency, Isolation, Durability) ট্রানজেকশন সমর্থন করে, তবে Derby তে SAVEPOINT এবং ROLLBACK এর কিছু সীমাবদ্ধতা থাকতে পারে।
উদাহরণ:
START TRANSACTION;
INSERT INTO employees (id, name, age) VALUES (1, 'John Doe', 30);
COMMIT;
Derby SQL Dialect INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN সহ বিভিন্ন জয়েন অপারেশন সমর্থন করে। তবে CROSS JOIN অপারেশন সাধারণত অন্যান্য ডেটাবেসের তুলনায় সীমাবদ্ধ থাকতে পারে।
উদাহরণ:
SELECT employees.name, departments.name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
Derby SQL Dialect সাবকোয়েরি বা Subquery সমর্থন করে, যেগুলি মূল কুয়েরির ভিতরে আরেকটি কুয়েরি চালায়। তবে, কিছু ক্ষেত্রে অর্গানাইজেশন এবং অপটিমাইজেশনে Correlated Subqueries এর জন্য কিছু সমস্যা হতে পারে।
উদাহরণ:
SELECT name FROM employees
WHERE age > (SELECT AVG(age) FROM employees);
Derby SQL Dialect SELECT FOR UPDATE সমর্থন করে না, এবং এটি locking সম্পর্কিত কিছু সীমাবদ্ধতা থাকতে পারে যা বৃহৎ বা বহু ব্যবহারকারী অ্যাপ্লিকেশনগুলির জন্য সমস্যার সৃষ্টি করতে পারে। তবে এটি COMMIT এবং ROLLBACK সমর্থন করে।
Derby-এ SELECT FOR UPDATE এবং PESSIMISTIC LOCKING সঠিকভাবে কাজ নাও করতে পারে, এবং এতে একটি নির্দিষ্ট লকিং স্তরের সমস্যা দেখা দিতে পারে।
Derby SQL Dialect কিছু সাধারণ SQL ফাংশন যেমন COUNT()
, SUM()
, AVG()
, MAX()
, MIN()
ইত্যাদি সমর্থন করে, তবে কিছু ডেটাবেস ফাংশন যেমন RANK(), ROW_NUMBER(), এবং WINDOW FUNCTIONS সমর্থিত নয়।
উদাহরণ:
SELECT AVG(age) FROM employees;
Apache Derby SQL Dialect SQL-এর একটি সাধারণ, ANSI কমপ্লায়েন্ট সংস্করণ যা সাধারণ SQL অপারেশন সমর্থন করে। তবে, এটি কিছু ক্ষেত্রে সীমাবদ্ধ থাকতে পারে যেমন জয়েন অপারেশন, সাবকোয়েরি, ফাংশন এবং ট্রানজেকশন কনকারেন্সি-এ। এটি মূলত ছোট বা মিডিয়াম আকারের ডেটাবেস ব্যবহারের জন্য উপযুক্ত, যেখানে উচ্চ পারফরমেন্স বা উন্নত ফিচারের প্রয়োজন হয় না।
common.read_more