SQLite 3 Veri Tabanı Yönetimi ve Kullanımı
SQLite 3, hafif ve gömülü bir ilişkisel veritabanı yönetim sistemidir. Mobil uygulamalar, gömülü sistemler ve küçük masaüstü uygulamalarında yaygın şekilde kullanılmaktadır. SQLite 3, bağımsız bir sunucu süreci gerektirmez, veriler tek bir dosyada saklanır ve yönetilmesi ile kullanılması kolaydır. Bu makale, ServBay'de SQLite 3 veritabanını nasıl yöneteceğinizi ve kullanacağınızı, kurulum, yapılandırma, yedekleme, geri yükleme ve performans optimizasyonu gibi konulara odaklanarak ayrıntılı bir şekilde anlatacaktır.
SQLite 3 Kurulumu ve Yapılandırılması
ServBay, SQLite 3 ile birlikte gelir ve doğrudan komut satırı, PHP, Node.js gibi ortamlarda kullanılabilir.
SQLite 3 Kurulumunu Doğrulama
SQLite 3'ün kurulu olup olmadığını aşağıdaki komutla doğrulayabilirsiniz:
sqlite3 --version
Eğer sürüm bilgisi gösteriliyorsa, SQLite 3 kuruludur.
SQLite 3 Veritabanı Oluşturma ve Bağlama
SQLite 3 veritabanları tek bir dosyada saklanır, varsayılan yol /Applications/ServBay/db/sqlite
'dir. Komut satırı aracı sqlite3
veya programlama dillerinin SQLite kütüphaneleri ile veritabanı oluşturabilir ve bağlanabilirsiniz.
Komut Satırı Aracını Kullanarak Bağlanma
Veritabanı oluşturma veya bağlanma:
bashsqlite3 /Applications/ServBay/db/sqlite/your_database.db
1SQLite 3'ten çıkış:
sql.exit
1
Programlama Dili ile Bağlanma
PHP Örneği
SQLite3
sınıfını kullanarak SQLite 3'e bağlanma:
<?php
// SQLite 3 veritabanına bağlanın
$db = new SQLite3('/Applications/ServBay/db/sqlite/your_database.db');
// Tablo oluştur
$db->exec("CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)");
// Veri ekle
$db->exec("INSERT INTO mytable (name) VALUES ('Alice')");
// Veri sorgula
$result = $db->query("SELECT * FROM mytable");
while ($row = $result->fetchArray()) {
echo "ID: " . $row['id'] . " Name: " . $row['name'] . "\n";
}
// Veritabanı bağlantısını kapat
$db->close();
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Node.js Örneği
sqlite3
kütüphanesini kullanarak SQLite 3'e bağlanma:
const sqlite3 = require('sqlite3').verbose();
// SQLite 3 veritabanına bağlan
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.');
});
// Tablo oluştur
db.run(`CREATE TABLE IF NOT EXISTS mytable (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT
)`);
// Veri ekle
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}`);
});
// Veri sorgula
db.all(`SELECT * FROM mytable`, [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.id, row.name);
});
});
// Veritabanı bağlantısını kapat
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
Veritabanı Yönetimi
Temel İşlemler
Tablo Oluşturma:
sqlCREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT);
1Veri Ekleme:
sqlINSERT INTO mytable (name) VALUES ('Alice');
1Veri Sorgulama:
sqlSELECT * FROM mytable;
1Veri Güncelleme:
sqlUPDATE mytable SET name = 'Bob' WHERE id = 1;
1Veri Silme:
sqlDELETE FROM mytable WHERE id = 1;
1
Yedekleme ve Geri Yükleme
Veritabanını Yedekleme
SQLite 3 veritabanı tek bir dosyada saklandığı için yedekleme, dosyanın kopyalanmasıyla yapılabilir. Yedekleme dosyasını aşağıdaki dizinde saklamanız önerilir:
/Applications/ServBay/backup/sqlite
Veritabanı dosyasını kopyalayarak komut satırı aracı ile yedekleyin:
cp /Applications/ServBay/db/sqlite/your_database.db /Applications/ServBay/backup/sqlite/your_database_backup.db
Veritabanını Geri Yükleme
Yedekleme dosyasını orijinal konumuna kopyalayarak geri yükleyin:
cp /Applications/ServBay/backup/sqlite/your_database_backup.db /Applications/ServBay/db/sqlite/your_database.db
Performans Optimizasyonu
SQLite 3, çeşitli performans optimizasyon seçenekleri sunar. İşte yaygın optimizasyon yöntemlerinden bazıları.
İndeks Optimizasyonu
Yaygın sorgulamalarda kullanılan sütunlar için indeks oluşturduğunuzdan emin olun. Örneğin:
CREATE INDEX idx_name ON mytable(name);
Sorgu Optimizasyonu
EXPLAIN
komutunu kullanarak sorgu performansını analiz edin ve buna göre optimize edin. Örneğin:
EXPLAIN QUERY PLAN SELECT * FROM mytable WHERE name = 'Alice';
Yapılandırma Optimizasyonu
Performansı artırmak için SQLite 3'ün PRAGMA parametrelerini ayarlayın. Örneğin, yazma performansını artırmak için senkronizasyon modunu etkinleştirin:
PRAGMA synchronous = OFF;
Güvenlik Yönetimi
Veritabanı güvenliğini sağlamak son derece önemlidir, işte bazı güvenlik yönetimi önerileri.
Dosya İzinleri
SQLite 3 veritabanı dosyalarının izin ayarlarını doğru yaparak yetkisiz erişimi önleyin. Örneğin:
chmod 600 /Applications/ServBay/db/sqlite/your_database.db
Veri Şifreleme
SQLite 3, veritabanı şifrelemeyi destekler. Veritabanını şifrelemek için SQLCipher gibi SQLite şifreleme eklentilerini kullanabilirsiniz.
Sık Karşılaşılan Sorunlar ve Çözümleri
SQLite 3 Veritabanına Bağlanamıyor
Veritabanı Dosya Yolunu Kontrol Edin: Veritabanı dosya yolunun doğru olduğundan ve dosyanın var olduğundan emin olun.
Dosya İzinlerini Kontrol Edin: Veritabanı dosyasının okuma ve yazma işlemlerine izin verdiğinden emin olun.
Veritabanı Kilitli
Eşzamanlı Erişimi Kontrol Edin: Veritabanına başka bir işlem tarafından erişilmediğinden emin olun, SQLite 3 yazma işlemleri sırasında veritabanını kilitler.
WAL Modunu Kullanın: Eşzamanlılık performansını artırmak için WAL (Write-Ahead Logging) modunu etkinleştirin:
sqlPRAGMA journal_mode = WAL;
1
Sonuç
SQLite 3, güçlü ve esnek bir gömülü veritabanı yönetim sistemidir. ServBay ile birlikte gelen SQLite 3, veritabanı yönetimini ve kullanımını daha da kolaylaştırır. Bu makalede anlatılanları takip ederek, SQLite 3'ün kurulumunu, yapılandırmasını, bağlantısını, yönetimini, yedekleme, geri yükleme ve performans optimizasyon işlemlerini kolayca gerçekleştirebilir, veritabanınızın verimli çalışmasını ve güvenliğini sağlayabilirsiniz.