InfernoShade 1
InfernoShade
Fethi Polat 1
Fethi Polat
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
shrpnl 1
shrpnl
YusufŞimşek14 1
YusufŞimşek14
berzahx 2
berzahx
xranzei 1
xranzei
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

SQLite'nin Ayırt Edici Özellikleri

  • Konuyu başlatan Konuyu başlatan ShineSun-Turkmmo
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 678

ShineSun-Turkmmo

Tesadüf
Telefon Numarası Onaylanmış Üye
TM Üye
Üye
Katılım
2 Eyl 2017
Konular
2,051
Mesajlar
7,142
Çözüm
236
Online süresi
6mo 29d
Reaksiyon Skoru
4,086
Altın Konu
74
TM Yaşı
8 Yıl 9 Ay 15 Gün
Başarım Puanı
392
Yaş
37
MmoLira
334
DevLira
0
Ticaret - 0%
0   0   0

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Bu sayfa, sıradışı olan ve SQLite'yi diğer birçok SQL veritabanı motorundan farklı kılan SQLite'nin bazı özelliklerini vurgulamaktadır.

Sıfır Yapılandırma


SQLite kullanılmadan önce "yüklü" olması gerekmez. "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 yapılandırma dosyası kullanmaz. Sisteme SQLite'nin çalıştığını söylemek için bir şey yapılması gerekmiyor. Bir sistem çökmesinden veya elektrik kesintisinden sonra iyileşmek için herhangi bir işlem yapılması gerekmez. Sorun giderecek bir şey yok.
SQLite sadece çalışıyor.
Diğer daha tanıdık veritabanı motorları kullanmaya başladığınızda harika çalışır. Ancak ilk kurulum ve konfigürasyonu yapmak korkutucu derecede karmaşık olabilir.
Serverless

(Ayrıca sunucusuz dokümantasyon sayfasına bakınız.)
Çoğu SQL veritabanı motoru, ayrı bir sunucu işlemi olarak uygulanır. Veritabanına erişmek isteyen programlar, sunucuya istek göndermek ve sonuçları geri almak için bir çeşit süreçler arası iletişim (tipik olarak TCP / IP) kullanarak sunucu ile iletişim kurar. SQLite bu şekilde çalışmıyor. SQLite ile veritabanına erişmek isteyen işlem doğrudan diskteki veritabanı dosyalarından okur ve yazar. Aracı bir sunucu işlemi yok.
Sunucusuz olmanın avantaj ve dezavantajları vardır. Ana avantaj, yüklemek, kurmak, yapılandırmak, başlatmak, yönetmek ve sorun gidermek için ayrı bir sunucu işlemi olmamasıdır. Bu, SQLite'nin "sıfır konfigürasyonlu" bir veritabanı motoru olmasının bir nedenidir. SQLite kullanan programlar, çalıştırılmadan önce veritabanı motorunu ayarlamak için yönetici desteği gerektirmez. Diske erişebilen herhangi bir program bir SQLite veritabanı kullanabilir.
Öte yandan, bir sunucu kullanan bir veritabanı motoru, istemci uygulamasındaki hatalardan daha iyi koruma sağlayabilir - bir istemcideki başıboş işaretçiler sunucudaki belleği bozamaz. Bir sunucu tek bir kalıcı işlem olduğundan, daha hassas tahıl kilitleme ve daha iyi eşzamanlılık sağlayarak veritabanı erişimini daha hassas bir şekilde kontrol edebilir.
Çoğu SQL veritabanı motoru istemci / sunucu tabanlıdır. Sunucusuz olanlardan SQLite, bu yazarın bildiği tek şey, aynı anda birden fazla uygulamanın aynı veritabanına erişmesine izin vermesidir.
Tek Veritabanı Dosyası

Bir SQLite veritabanı, dizin hiyerarşisinde herhangi bir yerde bulunabilen tek bir sıradan disk dosyasıdır. SQLite disk dosyasını okuyabilirse, veritabanındaki herhangi bir şeyi okuyabilir. Disk dosyası ve dizini yazılabilir ise, SQLite veritabanındaki her şeyi değiştirebilir. Veritabanı dosyaları kolayca bir USB bellek çubuğuna kopyalanabilir veya paylaşım için e-postayla gönderilebilir.
Diğer SQL veritabanı motorları verileri geniş bir dosya koleksiyonu olarak saklama eğilimindedir. Genellikle bu dosyalar yalnızca veritabanı motorunun kendisinin erişebileceği standart bir konumdadır. Bu, verileri daha güvenli hale getirir, ancak erişimi daha da zorlaştırır. Bazı SQL veritabanı motorları doğrudan diske yazma ve dosya sistemini hep birlikte atlama seçeneği sunar. Bu, ilave performans sağlar, ancak önemli kurulum ve bakım karmaşıklığı pahasına.
Kararlı Çapraz Platform Veritabanı Dosyası

SQLite dosya formatı platformlar arasıdır. Bir makineye yazılmış bir veritabanı dosyası, farklı bir mimariye sahip farklı bir makineye kopyalanabilir ve kullanılabilir. Büyük endian veya küçük endian, 32 bit veya 64 bit önemli değil. Tüm makineler aynı dosya biçimini kullanır. Ayrıca, geliştiriciler dosya formatını sabit ve geriye dönük olarak uyumlu tutma sözü verdiler, böylece daha yeni SQLite sürümleri daha eski veritabanı dosyalarını okuyabilir ve yazabilir.
Diğer birçok SQL veritabanı motoru, bir platformdan diğerine geçerken ve genellikle yazılımın daha yeni bir sürümüne yükseltme yaparken, veritabanını terk etmenizi ve geri yüklemenizi gerektirir.
Kompakt

Boyut için optimize edildiğinde, her şeyin etkinleştirildiği tüm SQLite kütüphanesi , boyut olarak 500 KB'den küçüktür (GNU derleyici paketindeki "boyut" yardımcı programını kullanarak bir ix86'daölçüldüğü gibi.) Gereksiz özellikler, derlemeyi daha da azaltmak için derleme zamanında devre dışı bırakılabilir. istenirse kütüphanenin boyutu 300 KB'nin altındadır.
Diğer birçok SQL veritabanı motoru bundan daha büyüktür. IBM, kısa bir süre önce yayınlanan CloudScape veritabanı motorunun "yalnızca" 2MiB'lik bir jar dosyası olduğunu - sıkıştırılmasından sonra bile SQLite'den daha büyük bir sıraya sahip! Firebird, müşteri tarafı kütüphanesinin sadece 350KiB olduğunu vurguluyor. Bu SQLite kadar büyük ve hatta veritabanı motorunu içermiyor. Oracle'ın Berkeley DB kütüphanesi 450KiB'dir ve programlayıcıya sadece basit anahtar / değer çiftleri sağlayan SQL desteğini çıkarır.
Manifest yazarak

Çoğu SQL veritabanı motoru statik yazmayı kullanır. Bir veri türü bir tablodaki her sütunla ilişkilendirilir ve yalnızca bu belirli veri türünün değerlerinin o sütunda depolanmasına izin verilir. SQLite, manifesto yazarak bu kısıtlamayı gevşetir. Açık yazımda, veri türü, değerin depolandığı sütunun değil değerin kendisinin bir özelliğidir. Böylece SQLite, kullanıcının, belirtilen sütunun türüne bakılmaksızın herhangi bir sütuna herhangi bir veri türünün herhangi bir değerini kaydetmesini sağlar. (Bu kuralın bazı istisnaları vardır: INTEGER PRIMARY KEY sütunu yalnızca tamsayıları depolayabilir. SQLite, değerleri olabildiğinde sütunun belirtilen veri türüne zorlamaya çalışır.)
Söyleyebildiğimiz kadarıyla, SQL dili belirtimi tezahür yazmanın kullanılmasına izin verir. Bununla birlikte, çoğu diğer SQL veritabanı motorları statik olarak yazılmıştır ve bu nedenle bazı insanlar manifest yazmanın kullanımının SQLite'da bir hata olduğunu düşünür. Ancak SQLite yazarları bunun bir özellik olduğunu çok güçlü hissediyorlar. SQLite'ta tezahür yazmanın kullanılması, özellikle Tcl ve Python gibi dinamik olarak yazılmış programlama dilleriyle birlikte kullanıldığında, SQLite'ı daha güvenilir ve kullanımı kolay kılan pratik bir tasarım kararıdır.
Değişken uzunluklu kayıtlar

Diğer birçok SQL veritabanı motoru, çoğu tablodaki her satır için sabit miktarda disk alanı ayırdı. Çılgınca değişen uzunluklarda olabilen BLOB'ları ve CLOB'ları kullanmak için özel numaralar oynuyorlar. Ancak çoğu tablo için, bir sütunu VARCHAR (100) olarak bildirirseniz, veritabanı motoru o sütunda ne kadar bilgi depoladığınızdan bağımsız olarak 100 bayt disk alanı tahsis eder.
SQLite, aksine, bilgileri bir satırda depolamak için yalnızca gerçekten gereken disk alanını kullanın. Bir VARCHAR (100) sütununda tek bir karakter saklarsanız, sadece bir baytlık disk alanı tüketilir. (Aslında iki bayt - veri tipini ve uzunluğunu kaydetmek için her sütunun başında bir miktar ek yük vardır.)
Değişken uzunluklu kayıtların SQLite tarafından kullanılması bir takım avantajlara sahiptir. Açıkçası, daha küçük veritabanı dosyaları ile sonuçlanır. Ayrıca, veritabanına daha hızlı çalışmasını sağlar, çünkü diske ve diske taşınacak daha az bilgi vardır. Değişken uzunluklu kayıtların kullanılması, SQLite'ın statik yazma yerine açık yazma kullanmasını mümkün kılar.
Okunabilir kaynak kodu

SQLite'a kaynak kodu, ortalama bir programlayıcı tarafından okunabilecek ve erişilebilir olacak şekilde tasarlanmıştır. Tüm prosedürler ve veri yapıları ve birçok otomatik değişken, yaptıkları hakkında faydalı bilgilerle dikkatlice yorumlanmaktadır. Kazan plakası yorumlaması atlandı.
SQL ifadeleri sanal makine kodunda derlenir

Her SQL veritabanı motoru, her SQL ifadesini, daha sonra ifadenin çalışmasını gerçekleştirmek için kullanılan bir tür iç veri yapısına derler. Ancak çoğu SQL motorunda bu iç veri yapısı birbirine bağlı yapılar ve nesnelerden oluşan karmaşık bir ağdır. SQLite'da, derlenmiş deyimler formu, makine dilindeki temsil gibi kısa bir programdır. Veritabanının kullanıcıları, bu sanal makine dilini EXPLAINanahtar sözcüğünü bir sorguya hazırlayarak görüntüleyebilir .
SQLite'da sanal bir makinenin kullanılması, kütüphanenin geliştirilmesinde büyük yarar sağladı. Sanal makine, SQLite'ın ön ucu (SQL deyimlerini ayrıştıran ve sanal makine kodunu üreten bölüm) ile arka uç (sanal makine kodunu yürüten ve bir sonucu hesaplayan bölüm) arasında net ve iyi tanımlanmış bir bağlantı sağlar. ) Sanal makine, geliştiricilerin derlediği her ifadeyle SQLite'nin yapmaya çalıştığı şeyleri açıkça ve kolayca okunabilir bir biçimde görmelerini sağlar; Nasıl derlendiğine bağlı olarak, SQLite aynı zamanda sanal makinenin çalışmasını izleme yeteneğine de sahiptir - her sanal makine talimatını ve çalıştırdığı sonucu yazdırabilir.
Genel alan

SQLite için kaynak kod kamu malıdır. Çekirdek kaynak kodunun hiçbir bölümünde telif hakkı iddiası bulunmuyor. (Dokümantasyon ve test kodu farklı bir konudur - dokümantasyon ve test mantığının bazı bölümleri açık kaynaklı lisanslar tarafından yönetilir.) SQLite çekirdek yazılımına katkıda bulunanların tümü, kodla ilgili herhangi bir telif hakkı ilgisini özellikle reddeden onaylar imzaladı. Bu, herhangi birisinin yasal olarak SQLite kaynak koduyla istediklerini yapabileceği anlamına gelir.
Kodun geniş ve serbest bir şekilde kullanılmasını sağlayan liberal lisanslara sahip başka SQL veritabanı motorları vardır. Ancak bu diğer motorlar hala telif hakkı yasasına tabidir. SQLite, bu telif hakkı yasasında basitçe geçerli değildir farklıdır.
Diğer SQL veritabanı motorları için kaynak kod dosyaları genellikle bu dosyayı görüntülemek ve kopyalamak için yasal haklarınızı açıklayan bir yorumla başlar. SQLite kaynak kodu, telif hakkı tarafından yönetilmediğinden lisans içermez. Bir lisans yerine, SQLite kaynak kodu bir lütuf sunar:

İyi ve kötülük etmeyin
, kendiniz için affedici bulursunuz ve başkalarını affedersiniz.
Özgürce paylaşabilirsiniz.
SQL dil uzantıları

SQLite, diğer veritabanı motorlarında normalde bulunmayan SQL dilinde bir dizi geliştirme sağlar. EXPLAIN anahtar sözcüğü ve bildirim yazımı daha önce yukarıda belirtilmiştir. SQLite ayrıca REPLACE ve ON CONFLICT deyimi gibi kısıtlama çatışmalarının çözümü üzerinde daha fazla kontrol yapılmasını sağlayan ifadeler de sunar . SQLite , aynı sorguda birden fazla bağımsız veritabanının birlikte kullanılmasına izin veren ATTACH ve DETACH komutlarını destekler . SQLite, kullanıcının yeni SQL fonksiyonları eklemesini ve harmanlama dizileri oluşturmasını sağlayan API'leri tanımlar .
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst