Uygulamalarda SQLite
Python ve Node.js uygulamalarında SQLite’ı doğru bağlantı, işlem, şema geçişi, eşzamanlılık ve test düzeniyle kullanır, üretimde güvenle çalıştırırsın.
Seviye 301 · 16 ders · 15 pratik lab
Dersler
Bağlanmak
- Bağlantı yaşam döngüsü ve ayarlar
- Python sqlite3: satır fabrikası ve dönüştürücüler
- Node.js’te SQLite
- Kodda işlemler ve bağlam yöneticisi
- Kısa görev: SQLite kullanan not aracı
Şemanın evrimi
- user_version ile şema geçişleri
- ALTER TABLE sınırları ve tabloyu yeniden kurmak
- Başlangıç verisi ve test verisi
- Kısa görev: uygulamayı şemanın ikinci sürümüne taşı
Üretimde
- WAL kipinde çok okuyucu, tek yazıcı
- Meşgul hatası ve yeniden deneme
- Uygulamanın içinden yedek almak
- Akışlı çoğaltmayla uzak kopya
- Bellekteki veritabanıyla test
- SQLite ne zaman yetmez
- Bitirme görevi: SQLite kullanan küçük bir web servisi
Pratik lablar
- Satırları sözlük olarak al: Python sqlite3 bağlantısında row_factory ayarlayıp sorgu sonuçlarını sütun adıyla kullan.
- Tarih ve ondalık türlerini doğru sakla: Adaptör ve dönüştürücü yazarak tarih ve para değerlerinin veritabanına gidip aynen geri geldiğini sağla.
- Node.js ile işlem içinde toplu kayıt yaz: Node.js betiğinde 50.000 kaydı işlem içinde hazırlanmış ifadeyle yaz ve tek tek yazmayla süreyi karşılaştır.
- Şema sürümünü user_version ile oku: Üç farklı müşteride çalışan uygulama kopyalarının hangi şema sürümünde olduğunu user_version ile tespit et.
- Sütun tipini tabloyu yeniden kurarak değiştir: ALTER TABLE'ın desteklemediği tür değişikliğini yeni tablo, kopyalama ve yeniden adlandırma ile güvenle yap.
- Yarıda kalmış geçişi kurtar: Elektrik kesintisinde yarıda kalan bir geçişten sonra veritabanının durumunu çıkar ve geçişi işlem içinde baştan uygula.
- Kilit hatasını yeniden üret: Biri yazarken diğeri yazmaya çalışan iki betikle "database is locked" hatasını bilerek oluştur ve nedenini açıkla.
- Meşgul hatasına yeniden deneme ekle: Sipariş kaydeden servise artan beklemeli yeniden deneme ekle ve yük altında hiç kayıt kaybolmadığını göster.
- Uzun okuma yüzünden büyüyen WAL dosyasını çöz: Açık kalan bir okuma işlemi yüzünden durmadan büyüyen WAL dosyasının nedenini bul ve checkpoint'in yeniden çalışmasını sağla.
- Uygulama içinden çevrimiçi yedek al: Python'un backup() yöntemiyle uygulama çalışırken veritabanının tutarlı bir kopyasını al.
- Dosya kopyasıyla alınan bozuk yedeği açıkla: Yazma sırasında cp ile alınmış yedeğin neden tutarsız olduğunu göster ve doğru yöntemle yeniden al.
- Saatlik yedek ve saklama döngüsü kur: Saha uygulaması için saatlik yedek alan, son 24 kopyayı tutan ve her kopyayı integrity_check ile doğrulayan bir betik yaz.
- Testlerde bellek içi veritabanı kullan: Birim testlerini :memory: veritabanıyla çalıştır ve her testin temiz bir şemayla başladığını sağla.
- Tekrarlanabilir test verisi hazırla: Kargo takip uygulaması için tohum verisi betiği yaz; her çalıştırmada aynı kayıtları üretsin.
- SQLite'ın yetmediği noktayı ölç: Artan eşzamanlı yazar sayısıyla gecikmeyi ölç ve veritabanını sunucu motoruna taşıma kararını sayılarla gerekçelendir.
Kurs hakkında
Python ve Node.js uygulamalarında SQLite’ı doğru bağlantı, işlem, şema geçişi, eşzamanlılık ve test düzeniyle kullanır, üretimde güvenle çalıştırırsın.
Ne öğreneceksin
- Bağlanmak
- Şemanın evrimi
- Üretimde
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.