إدارة واستخدام قاعدة بيانات SQLite 3
SQLite 3 هو نظام إدارة قواعد بيانات علائقية مدمج وخفيف الوزن، يستخدم على نطاق واسع في التطبيقات المتنقلة، الأنظمة المدمجة، والتطبيقات المكتبية الصغيرة. لا يتطلب SQLite 3 عملية خادم مستقلة، ويخزن البيانات في ملف واحد يسهل إدارته واستخدامه. ستوضح هذه المقالة كيفية إدارة واستخدام قاعدة بيانات SQLite 3 في ServBay بالتفصيل، بما في ذلك التثبيت، التكوين، النسخ الاحتياطي، الاستعادة، وتحسين الأداء.
تثبيت وتكوين SQLite 3
عادةً لا يتطلب SQLite 3 تثبيتًا منفصلًا لأنه مضمن بالفعل في معظم أنظمة التشغيل وبيئات البرمجة. يحتوي ServBay على SQLite 3 المثبت بالفعل، فقط تأكد من توفره.
التحقق من تثبيت 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
استخدام فئة SQLite3
للاتصال بـ SQLite 3:
<?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
استخدام مكتبة sqlite3
للاتصال بـ SQLite 3:
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 هو نظام إدارة قواعد بيانات مدمج قوي ومرن. ومع توفر SQLite 3 في ServBay، تصبح إدارة واستخدام قاعدة البيانات أسهل بكثير. من خلال هذه المقالة، يمكنك بسهولة تنفيذ التثبيت، التكوين، الاتصال، الإدارة، النسخ الاحتياطي، الاستعادة وتحسين الأداء لـ SQLite 3 لضمان كفاءة وأمان قاعدة البيانات.