SQLite , bir C programlama kitaplığında bulunan ilişkisel bir veritabanı yönetim sistemidir. Diğer birçok veritabanı yönetim sisteminin aksine, SQLite bir istemci-sunucu veritabanı motoru değildir. Aksine, son programın içine yerleştirilmiştir.

SQLite, verileri bir cihazdaki bir metin dosyasına depolayan açık kaynaklı bir SQL veritabanıdır. Web tarayıcıları gibi uygulama yazılımlarında yerel / istemci depolaması için yerleşik bir veritabanı yazılımı olarak popüler bir seçimdir. Günümüzde birçok yaygın tarayıcı, işletim sistemi ve gömülü sistem (cep telefonları gibi) tarafından kullanıldığı için tartışmasız en yaygın kullanılan veritabanı motorudur.

SQLite

SQLite, kendi kendine yeten, sunucusuz, sıfır konfigürasyonlu, işlemsel bir SQL veritabanı motoru uygulayan bir süreç içi kitaplıktır. SQLite kodu kamu malıdır ve bu nedenle ticari veya özel herhangi bir amaç için kullanım için ücretsizdir. SQLite, tüm cep telefonlarında ve çoğu bilgisayarda yerleşiktir ve insanların her gün kullandığı sayısız başka uygulamanın içinde paket halinde gelir.

SQLite’ın Geliştiricisi Kimdir ve Nasıl Geliştirilmiştir?

SQLite, ilk olarak D. Richard Hipp tarafından 2000 yılında tasarlandı. O dönemde General Dynamics firmasında Amerikan Donanması için yapılan bir projede çalışan Hipp, bir veritabanı kurulumu ya da yönetim paneline ihtiyaç duymayan program yazmaya çalışırken SQLite’ı geliştirdi.

Ağustos 2000’de yayınlanan 1.0 sürümünü ilerleyen yıllarda 2.x ve 3.x ürün aileleri izledi.

SQLite Hangi Alanlarda Kullanılabilir?

SQLite veritabanını local üzerinde geliştirmekte olduğunuz uygulama ya da oyunlarda rahatlıkla kullanabilirsiniz. Peki nasıl uygulamalarda kullanılabilir diye soracak olursanız onu da söyleyeyim. Mesela bir günlük uygulaması hazırladığınızı düşünün. Bu uygulamanın üzerinde yazılacak yazılar ve girilecek bilgiler bir veritabanında tutulmak zorunda ki, kullanıcı istediği zaman onlara tekrar erişebilsin. İşte tamda bu durumlarda işimize yaramaktadır.

Bundan bir kaç sene öncesine kadar geliştiriciler SQLite Veritabanının varlığını bilmiyorlardı ve eskilerden beri bildikleri local veritabanı sistemi olan Microsoft Access veritabanını kullanıyorlardı. Microsoft Access veritabanı SQLite veritabanına göre çok daha yavaş tepkime hızına ve problemlere sahiptir.

Bunun yanında, Android ve iOS için geliştirilen ve veritabanı gereken uygulamalarda da geliştiricilerin öncelikli ve daimi tercihi SQLite veritabanından yanadır çünkü bu sistemler ile de %100 uyum içerisinde çalışabilme özelliğine sahiptir.

SQLite’nin Özellikleri?

  • Bağımsız: harici bağımlılık yok.
  • Sunucusuz
  • Sıfır Yapılandırmalı Veritabanı
  • İşlemsel
  • Tam Özellikli SQL
  • Tek dosyalı Çapraz platform Veritabanı
  • Uygulama dosyası biçimi olarak kullanım için harika
  • Terabayt büyüklüğünde veritabanlarını ve gigabayt boyutlu dizeleri ve blobları destekler
  • Küçük kod alanı: Tam yapılandırılmış 600KiB’den az veya isteğe bağlı özellikler çıkarıldığında çok daha az.
  • Basit, kullanımı kolay API.
  • Hızlı: Bazı durumlarda SQLite, doğrudan dosya sistemi G / Ç’sinden daha hızlıdır
  • ANSI-C’de yazılmıştır. TCL bağları dahildir. Düzinelerce başka dil için ciltleme ayrı olarak mevcuttur.
  • % 100 şube testi kapsamına sahip iyi yorumlanmış kaynak kodu.
  • Derlemesi ve dolayısıyla daha büyük bir projeye eklenmesi kolay olan tek bir ANSI-C kaynak kodu dosyası olarak mevcuttur.
  • Çapraz platform: Android, * BSD, iOS, Linux, Mac, Solaris, VxWorks ve Windows (Win32, WinCE, WinRT) kutudan çıkar çıkmaz desteklenir. Diğer sistemlere kolayca taşınabilir.
  • Kaynaklar kamu malıdır. Herhangi bir amaç için kullanın.
  • SQLite veritabanlarını yönetmek için kullanılabilen bağımsız bir komut satırı arabirimi (CLI) istemcisi ile birlikte gelir.

Aşağıda ayrıntılı olarak açıklanan bazı özellikler,

  1. Bağımsız: harici bağımlılık yok.

SQLite, çok az bağımlılığa sahip olması anlamında “bağımsız” veya “kendi kendine yeten” dir. Herhangi bir işletim sisteminde, hatta basitleştirilmiş çıplak kemikleri gömülü işletim sistemlerinde bile çalışır. SQLite harici kitaplık veya arabirim kullanmaz (aşağıda açıklanan birkaç standart C kitaplığı çağrısı dışında). Tüm SQLite kitaplığı, oluşturmak için hiçbir özel tesis veya araç gerektirmeyen tek bir kaynak kodu dosyasında kapsüllenmiştir.

Normalde, MySQL, PostgreSQL vb. Gibi bir RDBMS’nin çalışması için ayrı bir sunucu işlemi gerekir. Veritabanı sunucusuna erişmek isteyen uygulamalar, istek göndermek ve almak için TCP / IP protokolünü kullanır. Buna istemci / sunucu mimarisi denir.

Aşağıdaki şema, RDBMS istemci / sunucu mimarisini göstermektedir:

SQLite veritabanı, veritabanına erişen uygulama ile entegredir. Uygulamalar, doğrudan diskte depolanan veritabanı dosyalarından okuma ve yazma SQLite veritabanıyla etkileşime girer.

Aşağıdaki şema SQLite sunucusuz mimarisini göstermektedir:

  1. SQLite Sıfır Yapılandırmalı Bir Veritabanıdır (kurulum veya yönetim gerekmez)

SQLite kullanılmadan önce “kurulmasına” gerek yoktur. “Kurulum” prosedürü yoktur. Başlatılması, durdurulması veya yapılandırılması gereken hiçbir sunucu işlemi yoktur. Bir yöneticinin yeni bir veritabanı örneği oluşturmasına veya kullanıcılara erişim izinleri atamasına gerek yoktur. SQLite hiçbir yapılandırma dosyası kullanmaz. Sisteme SQLite’ın çalıştığını söylemek için hiçbir şey yapılmasına gerek yoktur. Bir sistem çökmesinden veya elektrik kesintisinden sonra kurtarmak için herhangi bir işlem yapılması gerekmez. Giderilecek hiçbir şey yok.

Diğer veritabanı motorları SQLite ile karşılaştırılabilir, ancak bu motorlar için ilk kurulum ve konfigürasyonu uygulamak genellikle göz korkutucu olabilir.

  1. SQLite İşlemseldir

İşlemsel veritabanı, tüm değişikliklerin ve sorguların Atomik, Tutarlı, Yalıtılmış ve Dayanıklı (ACID) olduğu bir veritabanıdır. SQLite, işlem bir program çökmesi, bir işletim sistemi çökmesi veya bilgisayardaki bir elektrik kesintisi nedeniyle kesilse bile atomik, tutarlı, yalıtılmış ve dayanıklı olan serileştirilebilir işlemler uygular.

Vurgulamak için tekrarlamak isteriz: SQLite’deki tek bir işlemdeki tüm değişiklikler, değişikliği diske yazma eylemi kesintiye uğramış olsa bile, ya tamamen gerçekleşir ya da hiç olmaz

  • bir program çökmesi,
  • bir işletim sistemi çökmesi veya
  • elektrik kesintisi
  1. Tam Özellikli SQL

SQLite küçük boyutta olabilir ve adında “Lite” olabilir, ancak yetenek açısından eksik değildir. SQLite, aşağıdakileri içeren tam özellikli bir SQL uygulamasına sahiptir:

  • Sınırsız miktarda tablolar, dizinler, tetikleyiciler ve görünümler
  • Bir tabloda 32.000’e kadar sütun ve sınırsız satır
  • Çok sütunlu dizinler
  • Dizinler DESC ve COLLATE kullanabilir
  • Kısmi dizinler
  • İfadelerle İlgili Dizinler
  • Kümelenmiş dizinler
  • Endeksleri kapsayan
  • CHECK, UNIQUE, NOT NULL ve FOREIGN KEY kısıtlamaları.
  • BEGIN, COMMIT ve ROLLBACK kullanarak ACID işlemleri
  • SAVEPOINT, RELEASE ve ROLLBACK TO kullanarak iç içe geçmiş işlemler
  • İlişkili alt sorgular dahil alt sorgular
  • 64-yollu birleşimlere kadar
  • SOL YÖNDEN KATILIM
  • DISTINCT, SİPARİŞE GÖRE, GRUPLAMAYA GÖRE, ALMA, SINIR ve OFSET
  • UNION, UNION ALL, INTERSECT ve EXCEPT
  • Zengin bir standart SQL işlevleri kitaplığı
  • DISTINCT kümeleri dahil toplama işlevleri
  • Pencere fonksiyonları
  • GÜNCELLEME, SİLME ve EKLEME (elbette)
  • Özyinelemeli ortak tablo ifadeleri dahil olmak üzere yaygın tablo ifadeleri
  • Satır değerleri
  • UPSERT
  • Gelişmiş bir sorgu planlayıcı
  • Tam metin araması
  • R-ağaç indeksleri
  • JSON desteği
  • IS operatörü
  • Tablo değerli işlevler
  • ŞUNUNA DEĞİŞTİRİN
  • VAKUM
  • REINDEX
  • GLOB operatörü
  • Onaltılık tamsayı değişmez değerleri
  • ON CONFLICT maddesi
  • INDEXED BY yan tümcesi
  • Sanal tablolar
  • ATTACH DATABASE kullanarak aynı veritabanı bağlantısı üzerinde birden çok veritabanı
  • Toplama ve tablo değerli işlevler dahil olmak üzere uygulama tanımlı SQL işlevleri ekleme yeteneği.
  • Uygulama tanımlı harmanlama fonksiyonları
  1. Tek dosyalı Çapraz platform Veritabanı

SQLite’deki bir veritabanı tek bir disk dosyasıdır. Ayrıca, dosya formatı çapraz platformdur. Bir makinede oluşturulan bir veritabanı kopyalanabilir ve farklı bir mimariye sahip farklı bir makinede kullanılabilir. SQLite veritabanları, 32 bit ve 64 bit makinelerde ve büyük endian ile küçük endian mimarileri arasında taşınabilir.

  1. Uygulama Dosyası Biçimi Olarak SQLite

“Uygulama dosyası formatı”, uygulama durumunu diske devam ettirmek veya programlar arasında bilgi alışverişi yapmak için kullanılan dosya formatıdır.

Çoğu uygulama biçimi şu üç kategoriden birine uyar:

  1. Tamamen Özel Biçimler

Özel formatlar, tek bir uygulama için özel olarak tasarlanmıştır. DOC, DWG, PDF, XLS ve PPT, özel format örnekleridir. Özel biçimler genellikle taşıma kolaylığı için tek bir dosyada bulunur.

  1. Dosya Yığını Biçimleri

Bazen uygulama durumu bir dosya hiyerarşisi olarak saklanır. Git, tek seferlik ve ısmarlama uygulamalarda sık sık görülse de, bunun en iyi örneğidir. Bir yığın dosya formatı, temelde dosya sistemini bir anahtar / değer veritabanı olarak kullanır ve küçük bilgi yığınlarını ayrı dosyalar halinde depolar.

  1. Sarmalanmış Dosya Yığını Biçimleri

Bazı uygulamalar, daha sonra genellikle bir ZIP arşivi olmak üzere bir tür tek dosyalı kapsayıcıya kapsüllenen bir Dosya Yığını kullanır. EPUB, ODT ve ODP bu yaklaşımın örnekleridir. Bir EPUB kitabı, kitap bölümlerinin metni için çeşitli XHTML dosyalarını, sanat eseri için GIF ve JPEG resimlerini ve e-Kitap okuyucusuna tüm XML ve görüntü dosyalarının nasıl birbirine uyduğunu söyleyen özel bir katalog dosyası içeren bir ZIP arşividir. Bazı uygulamalar, daha sonra genellikle bir ZIP arşivi olmak üzere bir tür tek dosyalı kapsayıcıya kapsüllenen bir Dosya Yığını kullanır. EPUB, ODT ve ODP bu yaklaşımın örnekleridir.

Tanımlı bir şemaya sahip bir SQLite veritabanı dosyası genellikle mükemmel bir uygulama dosyası formatı oluşturur. İşte bu avantajlardan birkaçı:

  1. Basitleştirilmiş Uygulama Geliştirme
  2. Tek Dosyalı Belgeler
  3. Üst Düzey Sorgu Dili
  4. Erişilebilir İçerik
  5. Çapraz Platform
  6. Atomik İşlemler
  7. Artımlı ve Sürekli Güncellemeler
  8. Kolayca Genişletilebilir
  9. Verim
  10. Birden Çok İşlemle Eş Zamanlı Kullanım
  11. Çoklu Programlama Dilleri
  12. Daha İyi Uygulamalar

SQLite için Uygun Kullanımlar?

  • Nesnelerin İnterneti Veritabanı. SQLite, cep telefonlarında, PDA’larda, MP3 oynatıcılarda, set üstü kutularda ve diğer elektronik cihazlarda veritabanı motoru için popüler bir seçimdir. SQLite küçük bir kod ayak izine sahiptir, belleği, disk alanını ve disk bant genişliğini verimli kullanır, oldukça güvenilirdir ve Veritabanı Yöneticisinden bakım gerektirmez.
  • Uygulama Dosyası Biçimi. Uygulamanız tarafından kullanılan disk dosyalarına XML, JSON, CSV veya bazı özel formatlar yazmak için fopen () kullanmak yerine, bir SQLite veritabanı kullanın. Bir ayrıştırıcı yazmak ve sorunlarını gidermek zorunda kalmayacaksınız, verileriniz daha kolay erişilebilir ve çapraz platformlu olacak ve güncellemeleriniz işlemsel olacaktır.
  • Web Sitesi Veritabanı. Yapılandırma gerektirmediğinden ve bilgileri sıradan disk dosyalarında sakladığından, SQLite, küçük ve orta ölçekli web sitelerini destekleyen veritabanı olarak popüler bir seçimdir.
  • Kurumsal RDBMS için Stand-in. SQLite, genellikle gösteri amaçlı veya test amaçlı bir kurumsal RDBMS için bir vekil olarak kullanılır. SQLite hızlıdır ve kurulum gerektirmez, bu da test için çok fazla güçlük çeker ve bu da demoları canlı ve başlatması kolay hale getirir.

Geliştirme ve dağıtım?

SQLite’nin kodu, kendisi bir SQLite veritabanı üzerine inşa edilmiş olan dağıtılmış bir sürüm kontrol sistemi olan Fossil’de barındırılmaktadır.

SQLite dağıtımında bağımsız bir komut satırı programı sağlanmıştır. Bir veritabanı oluşturmak, tabloları tanımlamak, satır eklemek ve değiştirmek, sorguları çalıştırmak ve bir SQLite veritabanı dosyasını yönetmek için kullanılabilir. Ayrıca SQLite kitaplığını kullanan uygulamalar yazmak için bir örnek olarak hizmet eder.

SQLite, her sürümden önce otomatik regresyon testi kullanır.

SQLite, her durum için mükemmel bir uygulama dosyası formatı değildir. Ancak çoğu durumda SQLite, özel bir dosya biçiminden, bir yığın dosyadan veya bir yığın dosyadan çok daha iyi bir seçimdir. SQLite, yüksek seviyeli, kararlı, güvenilir, platformlar arası, yaygın olarak kullanılan, genişletilebilir, performanslı, erişilebilir, eşzamanlı bir dosya formatıdır. Bir sonraki uygulama tasarımınızda standart dosya formatı olarak değerlendirilmenizi hak ediyor.