SQLite’ı genişletmek: uzantılar ve sanal tablolar
C ve Python ile özel fonksiyonlar, toplama fonksiyonları, sanal tablolar ve yüklenebilir uzantılar yazar; R*Tree, oturum uzantısı ve gömülü kullanım ayarlarını uygularsın.
Seviye 501 · 14 ders · 12 pratik lab
Dersler
Fonksiyonlar
- Uygulamada tanımlanan fonksiyonlar
- Özel toplama ve pencere fonksiyonları
- C ile yüklenebilir uzantı
- Uzantı yüklemenin güvenliği
- Kısa görev: mesafe hesaplayan fonksiyon
Sanal tablolar
- Sanal tablo kavramı
- CSV dosyasını tablo gibi sorgulamak
- R*Tree ile konum sorguları
- generate_series ve json_each ile tablo döndüren fonksiyonlar
- Kısa görev: günlük dosyası için sanal tablo
Gömülü kullanım
- Oturum uzantısı ve değişiklik kümeleri
- Derleme seçenekleri ve özel derleme
- Bellek ve G/Ç ayarları
- Bitirme görevi: çevrimdışı eşitlenen saha uygulaması veritabanı
Pratik lablar
- Python'dan SQL'e fonksiyon ekle: Türkçe karakterleri sadeleştiren bir fonksiyonu create_function ile kaydet ve aramada kullan.
- Özel toplama fonksiyonu yaz: Teslim sürelerinin medyanını veren bir toplama fonksiyonu yaz ve şehir bazında rapor çıkar.
- İki koordinat arası mesafeyi C uzantısıyla hesapla: Haversine mesafesini hesaplayan yüklenebilir bir C uzantısı derle, yükle ve en yakın depoyu bulan sorguda kullan.
- Uzantı yüklemenin açık olup olmadığını denetle: Bir uygulamanın SQLite bağlantısında load_extension'ın kapalı olduğunu test eden kısa bir betik yaz.
- Kullanıcı girdisiyle uzantı yükleme riskini göster: Laboratuvardaki kasıtlı açık uygulamada load_extension çağrısının nasıl kötüye kullanılabileceğini göster ve kapat.
- Derleme seçenekleriyle sertleştirilmiş SQLite derle: Gereksiz özellikleri kapatan derleme seçenekleriyle sqlite3 derle ve önceki sürümle farkı pragma compile_options ile kanıtla.
- Sayı dizisi üretip boş günleri bul: generate_series ile ayın tüm günlerini üret ve satış olmayan günleri listele.
- CSV dosyasını tablo gibi sorgula: İçe aktarmadan, bir CSV sanal tablosu tanımlayıp dış kaynaklı fiyat listesini ürün tablosuyla birleştir.
- R*Tree ile bir bölgedeki noktaları bul: Binlerce kargo noktasını R*Tree'ye yükle, verilen dikdörtgendeki noktaları bul ve normal tabloyla hızını karşılaştır.
- İki veritabanı arasındaki farkı listele: sqldiff ile sahadaki kopya ile merkezdeki kopya arasındaki değişen satırları çıkar.
- Değişiklik kümesini başka kopyaya uygula: Session uzantısıyla çevrimdışı tabletteki değişiklikleri changeset olarak kaydet ve merkez veritabanına uygula.
- Çakışan değişiklikleri kurala göre birleştir: İki sahadan gelen ve aynı kaydı değiştiren changeset'ler için çakışma işleyici yaz ve sonucu doğrula.
Kurs hakkında
C ve Python ile özel fonksiyonlar, toplama fonksiyonları, sanal tablolar ve yüklenebilir uzantılar yazar; R*Tree, oturum uzantısı ve gömülü kullanım ayarlarını uygularsın.
Ne öğreneceksin
- Fonksiyonlar
- Sanal tablolar
- Gömülü kullanım
Ön koşullar
Aynı yolun 401 düzeyine kadar olan konularında deneyimli 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 501 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.