SQLite: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(20 versioni intermedie di 12 utenti non mostrate)
Riga 4:
|Screenshot =
|Didascalia =
|UltimaVersione = 3.35.4 (2 aprile 2021)
|DataUltimaVersione =
|Sviluppatore = Dwayne Richard Hipp
Riga 16:
}}
 
'''SQLite''' è una [[libreria software]] scritta in [[C (linguaggio)|linguaggio C]] che implementa un [[DBMS]] [[SQL]] di tipo [[ACID]] incorporabile all'interno di applicazioni. Il suo creatore, [[D. Richard Hipp]], lo ha rilasciatopubblicato nel [[pubblico dominio]], rendendolo utilizzabile quindi senza alcuna restrizione. Permette di creare una [[base di dati]] (comprese [[Tabella (database)|tabelle]], [[query]], [[form]], [[Report informativo|report]]) incorporata in un unico file, come nel caso dei moduli ''Access'' di [[Microsoft Office]] e ''Base'' di [[OpenOffice.org]] e [[Libre Office]]; analogamente a prodotti specifici come [[Paradox (database)|Paradox]] o [[FileMaker Pro|Filemaker]].
 
SQLite non è un processo standalone utilizzabile di per sé, ma può essere incorporato all'interno di un altro programma. È utilizzabile con il [[C (linguaggio)|linguaggio C]]/[[C++]], ed esistono binding anche per altri linguaggi, in particolare [[Tcl]].
Riga 23:
== Caratteristiche e limitazioni ==
La libreria offre molte interessanti caratteristiche:
* è compatta (meno di 500KB750KB per l'intera libreria alla versione 3.639.140);
* è molto veloce; in molti casi più di [[MySQL]] e [[PostgreSQL]];
* il codice sorgente è liberamente disponibile, chiaro e ben commentato;
* è in grado di interpretare stringhe SQL; a differenza di altre librerie simili, supporta buona parte dello standard [[SQL]]92;
* ha la possibilità di interpretare campi in [[JavaScript_Object_Notation|JSON]];
* l'[[Application programming interface|API]] è semplice da utilizzare;
* ha [[Transazione (basi di dati)|transazioni]] atomiche, consistenti, isolate e durabili ([[ACID]]), anche in caso di crash di sistema o blackout;
* è [[multipiattaforma]];
* include un programma di utilità a [[riga di comando]] per accedere al database anche manualmente (come su MySQL, Postgresql e tanti altri DB) o tramite scripting;
* supporta database chenell'ordine possonodei essereterabyte, anchecon moltorighe grandi; attualmente il limite è 140TB (<math>2^{47}</math> byte) con una riga di dimensione massima parifino a 1GB<ref>{{Cita web|url=https://sqlite.org/limits.html|titolo=Limits In SQLite}}</ref>;
* un database consiste di un unico file, il cui formato interno è indipendente dalla piattaforma e dal relativo [[ordine dei byte]];
* non ha dipendenze esterne;
Riga 49:
* non offre alcuna cache per le query (e non ne ha la possibilità, non esistendo un processo server centrale);
* non ha protocolli di rete, non essendo utilizzabile come programma a sé; è possibile utilizzare un database remoto, ma solo tramite ''file system'' di rete del sistema operativo, con prestazioni difficilmente accettabili;
* non supportaha alcuniun importantisupporto costrutticompleto SQLper qualiil RIGHTcostrutto JOIN e FULLSQL OUTER"ALTER JOIN;TABLE".<ref name="unsupported"/>
* non supporta le sottoquery variabili.
* non supporta la scrittura diretta nelle [[Vista (basi di dati)|viste]] (occorre usare trigger "INSTEAD OF");<ref name="unsupported"/>
* non supporta trigger di tipo "FOR EACH STATEMENT" (ma solo "FOR EACH ROW", eventualmente combinato con "INSTEAD OF");<ref name="unsupported"/>
* il supporto ai trigger ricorsivi ed ai vincoli sulle [[Chiave esterna|chiavi esterne]], introdotto rispettivamente nelle versioni 3.6.18 e 3.6.19, deve essere attivato dal programmatore; taleoppure comportamento,definito dovutoin allafase compatibilitàdi concompilazione ledella versioni precedenti, sarà modificato a partire dalla versione 3.7libreria.
 
Una peculiarità di SQLite è la gestione flessibile dei tipi di dati: ogni campo può contenere qualsiasi tipo di dato (o quasi; gestito differentemente nella versione 2 e 3).
 
== Interfacce grafiche per SQLite ==
Riga 68 ⟶ 67:
* [[Database Master]] [https://web.archive.org/web/20200122085236/http://nucleonsoftware.com/ (sito)] per Windows, anche per [[MySQL]], PostgreSQL, FireBird, Oracle, DB2, Informix, ODBC, OleDB, SQL-Server, MongoDB.
* Sqlite-Workbench [http://www.sqlite-workbench.com/ (sito)] - applicazione online per la gestione grafica di database sql
* DataBase.Net [https://fishcodelib.com/database.htm (sito)] Applicazione sviluppata .Net / Gratuita (La versione commerciale non ha limiti in tante funzioni)
 
== Diffusione<ref>{{Cita web|url=https://sqlite.org/mostdeployed.html|titolo=Most Widely Deployed and Used Database Engine}}</ref> ==
[[Chromium]] (e quindi anche [[Google Chrome]]), [[Mozilla Firefox]] e [[Mozilla Thunderbird]] memorizzano varie informazioni di configurazione (segnalibri, cookie, contatti della rubrica, ecc) in database SQLite. [[Skype]] è un altro software molto diffuso che utilizza SQLite.<ref name="skype">[https://www.mail-archive.com/sqlite-users%40sqlite.org/msg27326.html Skype client using SQLite?]</ref> [[Adobe (azienda)|Adobe]] utilizza SQLite come formato file in [[Adobe Photoshop Lightroom]], come database di appoggio alle applicazioni in [[Adobe Integrated Runtime|Adobe AIR]] e internamente in [[Adobe Reader]].<ref name="adobe">[https://www.sqlite.org/famous.html Well-Known Users of SQLite]</ref>
 
Grazie alle ridotte dimensioni SQLite è particolarmente adatto ai [[Sistema embedded|sistemi embedded]]. SQLite viene inoltre utilizzato su [[iOS]] e [[MacOS]] per la gestione degli SMS e MMS, per il calendario, la cronologia delle chiamate e la memorizzazione dei contatti. La libreria è inoltre utilizzata in [[Symbian OS]] ed [[Android]], sul sistema operativo del [[BlackBerry]] e su [[webOS]] di Palm.
SQLite è inoltre integrato nei linguaggi [[PHP]] e [[Python]].<ref name="famous">[https://www.sqlite.org/famous.html Well-known Users of SQLite]</ref>
 
== Note ==
Riga 81 ⟶ 82:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|https://www.sqlite.org/|Il sito ufficiale|lingua=en}}
* {{cita web|https://www.php.net/manual/en/book.pdo.php|Funzioni PHP raccomandate per l'utilizzo di SQLite 3.x con PHP|lingua=en}}
<!-- * {{en}} [https://www.youtube.com/watch?v=giAMt8Tj-84 Introduzione video a SQLite tenuta da D. Richard Hipp] -->
Riga 87 ⟶ 88:
 
{{Database management system}}
{{Android}}
 
{{Controllo di autorità}}
{{Portale|Informatica|Software libero}}
 
[[Categoria:SoftwareDatabase liberimanagement per basi di datisystem]]
[[Categoria:Basi di dati open source]]
[[Categoria:Software per basi di dati]]
[[Categoria:Librerie software]]