إدارة واستخدام قاعدة البيانات SQLite 3
SQLite 3 هو نظام إدارة قواعد بيانات علاقية مضمن وخفيف الوزن، ويستخدم بشكل واسع في تطبيقات الهواتف المحمولة وأنظمة الأجهزة المدمجة وتطبيقات سطح المكتب الصغيرة. لا يتطلب SQLite 3 عملية خادم مستقلة، حيث يتم تخزين البيانات في ملف واحد، مما يجعله سهل الإدارة والاستخدام. ستتناول هذه المقالة كيفية إدارة واستخدام قاعدة البيانات SQLite 3 في ServBay بالتفصيل، بما يشمل التثبيت، الإعداد، النسخ الاحتياطي، الاستعادة وتحسين الأداء.
تثبيت وإعداد SQLite 3
يأتي ServBay مع SQLite 3 مدمجًا، ويمكن استخدامه مباشرة في بيئات مثل سطر الأوامر، PHP، Node.js وغيرها.
التحقق من تثبيت SQLite 3
يمكنك التحقق مما إذا كان SQLite 3 قد تم تثبيته باستخدام الأمر التالي:
sqlite3 --version
إذا تم عرض معلومات الإصدار، فهذا يعني أن SQLite 3 قد تم تثبيته.
إنشاء والاتصال بقاعدة بيانات SQLite 3
يتم تخزين قاعدة بيانات SQLite 3 في ملف واحد، والمسار الافتراضي هو /Applications/ServBay/db/sqlite
. يمكنك استخدام أداة سطر الأوامر sqlite3
أو مكتبات SQLite في لغات البرمجة لإنشاء والاتصال بقاعدة البيانات.
الاتصال باستخدام أداة سطر الأوامر
إنشاء أو الاتصال بقاعدة البيانات:
bashsqlite3 /Applications/ServBay/db/sqlite/your_database.db
1الخروج من SQLite 3:
sql.exit
1
الاتصال باستخدام لغات البرمجة
مثال PHP
الاتصال بقاعدة بيانات SQLite 3 باستخدام فئة SQLite3
:
<?php
// Connect to SQLite 3 database
$db = new SQLite3('/Applications/ServBay/db/sqlite/your_database.db');
// Create table
$db->exec("CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)");
// Insert data
$db->exec("INSERT INTO mytable (name) VALUES ('Alice')");
// Query data
$result = $db->query("SELECT * FROM mytable");
while ($row = $result->fetchArray()) {
echo "ID: " . $row['id'] . " Name: " . $row['name'] . "\n";
}
// Close database connection
$db->close();
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
مثال Node.js
الاتصال بقاعدة بيانات SQLite 3 باستخدام مكتبة sqlite3
:
const sqlite3 = require('sqlite3').verbose();
// Connect to SQLite 3 database
let db = new sqlite3.Database('/Applications/ServBay/db/sqlite/your_database.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the SQLite database.');
});
// Create table
db.run(`CREATE TABLE IF NOT EXISTS mytable (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT
)`);
// Insert data
db.run(`INSERT INTO mytable (name) VALUES (?)`, ['Alice'], function(err) {
if (err) {
return console.error(err.message);
}
console.log(`A row has been inserted with rowid ${this.lastID}`);
});
// Query data
db.all(`SELECT * FROM mytable`, [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.id, row.name);
});
});
// Close database connection
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Close the database connection.');
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
إدارة قاعدة البيانات
العمليات الأساسية
إنشاء جدول:
sqlCREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT);
1إدخال البيانات:
sqlINSERT INTO mytable (name) VALUES ('Alice');
1استعلام البيانات:
sqlSELECT * FROM mytable;
1تحديث البيانات:
sqlUPDATE mytable SET name = 'Bob' WHERE id = 1;
1حذف البيانات:
sqlDELETE FROM mytable WHERE id = 1;
1
النسخ الاحتياطي والاستعادة
النسخ الاحتياطي للقاعدة
يتم تخزين قاعدة بيانات SQLite 3 في ملف واحد، ويمكنك نسخ هذا الملف لعمل نسخة احتياطية. يُوصى بتخزين ملفات النسخة الاحتياطية في الدليل التالي:
/Applications/ServBay/backup/sqlite
نسخ ملف قاعدة البيانات باستخدام أداة سطر الأوامر لإنشاء نسخة احتياطية:
cp /Applications/ServBay/db/sqlite/your_database.db /Applications/ServBay/backup/sqlite/your_database_backup.db
استعادة القاعدة
نسخ ملف النسخة الاحتياطية إلى الموقع الأصلي لاستعادته:
cp /Applications/ServBay/backup/sqlite/your_database_backup.db /Applications/ServBay/db/sqlite/your_database.db
تحسين الأداء
يوفر SQLite 3 العديد من خيارات تحسين الأداء، وهنا بعض طرق التحسين الشائعة.
تحسين الفهرسة
تأكد من إنشاء فهارس للأعمدة التي تستخدم بشكل متكرر في الاستعلامات. على سبيل المثال:
CREATE INDEX idx_name ON mytable(name);
تحسين الاستعلامات
استخدام أمر EXPLAIN
لتحليل أداء الاستعلامات وإجراء التحسينات اللازمة. على سبيل المثال:
EXPLAIN QUERY PLAN SELECT * FROM mytable WHERE name = 'Alice';
تحسين الإعدادات
تعديل معلمات PRAGMA في SQLite 3 لتحسين الأداء. على سبيل المثال، تمكين وضع المزامنة لتحسين أداء الكتابة:
PRAGMA synchronous = OFF;
إدارة الأمان
تأمين قاعدة البيانات من الأمور المهمة، وهنا بعض النصائح لإدارة الأمان.
أذونات الملفات
تأكد من أن أذونات ملفات قاعدة بيانات SQLite 3 تم تعيينها بشكل صحيح لمنع الوصول غير المصرح به. على سبيل المثال:
chmod 600 /Applications/ServBay/db/sqlite/your_database.db
تشفير البيانات
يدعم SQLite 3 تشفير قاعدة البيانات، ويمكنك استخدام ملحقات تشفير SQLite (مثل SQLCipher) لتشفير قاعدة البيانات.
الأسئلة الشائعة وحلولها
لا يمكن الاتصال بقاعدة بيانات SQLite 3
تحقق من مسار ملف القاعدة: تأكد من أن مسار ملف القاعدة صحيح وأن الملف موجود.
تحقق من أذونات الملفات: تأكد من أن أذونات ملف القاعدة تسمح بعمليات القراءة والكتابة.
قاعدة البيانات مغلقة
تحقق من الوصول المتزامن: تأكد من عدم وجود عمليات أخرى على قاعدة البيانات، حيث سيقوم SQLite 3 بقفل القاعدة أثناء عمليات الكتابة.
استخدم وضع WAL: تمكين وضع WAL (الكتابة المتقدمة) لتحسين أداء الوصول المتزامن:
sqlPRAGMA journal_mode = WAL;
1
الخاتمة
SQLite 3 هو نظام إدارة قواعد بيانات مضمن قوي ومرن، ووجوده مدمج في ServBay يسهل من إدارته واستخدامه. من خلال هذه المقالة، يمكنك إجراء عمليات التثبيت والإعداد والاتصال والإدارة والنسخ الاحتياطي والاستعادة وتحسين الأداء بسهولة، مما يضمن تشغيل قاعدة البيانات بكفاءة وأمان.