SQLite: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(115 versioni intermedie di 48 utenti non mostrate)
Riga 1:
{{Infobox Software
|nomeNome = SQLite
|DimensioneLogo = 200px
|logo = [[File:SQLite370.svg|200px]]
|Screenshot =
|sviluppatore = [[Dr. Richard Hipp]]
|Didascalia =
|versione_ultimo_rilascio = 3.7.7
|UltimaVersione =
|data ultimo rilascio = [[24 giugno]] [[2011]]
|DataUltimaVersione =
|sistema_operativo = [[Multipiattaforma]]
|sviluppatoreSviluppatore = [[Dr.Dwayne Richard Hipp]]
|genere = [[RDBMS]]
|UltimaVersioneBeta =
|licenza = [[Public ___domain]] o [http://www.hwaci.com/ Licenza commerciale]
|DataUltimaVersioneBeta =
|sito web = [http://www.sqlite.org/ sqlite.org]
|sistema_operativoSistemaOperativo = [[Multipiattaforma]]
|genereGenere = [[RDBMS]]
|licenzaLicenza = [[Public ___domain]] o [http://www.hwaci.com/ Licenza commerciale]
|SoftwareLibero = sì
|Lingua = inglese
}}
 
'''SQLite''' è una [[libreria software]] scritta in linguaggio [[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''' permette di creare una base di dati (comprese tabelle, query, form, report) incorporata in un unico file, come nel caso dei moduli ''Access'' di [[Microsoft Office]] e ''Base'' di [[OpenOffice.org]] e analogamente a prodotti specifici come ''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]].
È inoltre stato integrato nella versione 5 di [[PHP]], consentendo a tale popolare linguaggio di disporre di un altro RDBMS indipendentemente dalla presenza di [[MySQL]]. Viene utilizzato in [[Mozilla Firefox]] e [[Seamonkey]] per memorizzare i ''[[bookmarkSegnalibro (World Wide Web)|segnalibri]]'', la cronologia di navigazione ed altre informazioni.
 
== 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 (databasebasi 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; attualmentefino ila limite è 2TB (1GB<mathref>2^{41{Cita web|url=https://sqlite.org/limits.html|titolo=Limits In SQLite}}</mathref> byte);
* 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 36 ⟶ 40:
* non offre le [[stored procedure]].
* non prevede la gestione dei permessi d'accesso, demandata al software con cui si interagisce con il database e/o al meccanismo dei permessi del ''[[file system]]'';<ref name="unsupported">{{cita web
|url=httphttps://www.sqlite.org/omitted.html
|titolo=SQL Features That SQLite Does Not Implement
|accesso=14 gennaio 2010
Riga 45 ⟶ 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 triggerla discrittura tipodiretta "FORnelle EACH STATEMENT"[[Vista (solobasi "FORdi EACHdati)|viste]] ROW",(occorre eventualmenteusare combinato contrigger "INSTEAD OF");<ref name="unsupported"/>
* non supporta le sottoquery variabili.
* non supporta latrigger scritturadi direttatipo nelle"FOR [[VistaEACH (database)|viste]]STATEMENT" (occorrema usaresolo trigger"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.
* non consente di modificare, cancellare o rinominare le colonne di una tabella:<ref name="unsupported"/> il comando [[Data Definition Language#Alter table|ALTER TABLE]] è infatti limitato alla modifica del nome della tabella e all'aggiunta di colonne in coda alla stessa. Molti frontend di terze parti aggirano comunque il limite rigenerando in modo trasparente la tabella (perdendo però trigger e indici ad essa correlati);
* non supporta trigger di tipo "FOR EACH STATEMENT" (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; tale comportamento, dovuto alla compatibilità con le versioni precedenti, sarà modificato a partire dalla versione 3.7.
 
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 ==
Pur gestibile da altre applicazioni, esistono delle interfacce grafiche appositamente sviluppate per SQLite:
* [[DaDaBIK]] [httphttps://www.dadabik.orgcom/ (sito)]- applicazionesoftware PHPproprietario Openscritto Sourcein PHP che permette di creare un Web front-end per SQLite senza scrivere codice. Anche per MySQL, Oracle,e PostgreSQL, MS SQL Server;
* [[SpatiaLite]] [http://www.gaia-gis.it/spatialite/ (sito)] {{Webarchive|url=https://web.archive.org/web/20110722033735/http://www.gaia-gis.it/spatialite/ |date=22 luglio 2011 }}- estensione per il supporto dei dati geografici all'interno di database SQLite, può essere utilizzato da console o tramite un'interfaccia grafica dedicata.
* [[SQLite Database Browser for SQLite]] [httphttps://sourceforgesqlitebrowser.net/projects/sqlitebrowserorg/ (sito)]— è un'applicazione multipiattaforma che consente di amministrare in modo semplificato, con una interfaccia grafica, database di SQLite; Licenza public ___domain
* [[TkSQLite]] [http://reddog.s35.xrea.com/wiki/TkSQLite.html (sito)]— applicazione multipiattaforma. Licenza BSD-style
* [[sqlite-manager]] [httphttps://code.google.com/p/sqlite-manager/ (sito)]— è una estensione per browser basati su [[Gecko]] (Firefox 3, Thunderbird 3, Seamonkey 2, Sunbird 1.0, Komodo 5.0, etc.) multipiattaforma, che consente di amministrare in modo semplificato, con l'interfaccia grafica del browser, database di SQLite;
* [[SQLiteManager]] [httphttps://sourceforge.net/projects/sqlitemanager/ (sito)]— è un'applicazione multipiattaforma, basata sul web, che consente di amministrare in modo semplificato, con una interfaccia grafica, database di SQLite; Lingua francese
* [[Sqliteman]] [https://web.archive.org/web/20140625111343/http://sqliteman.com/ (sito)]— applicazione realizzata con le librerie Qt4 - versione per [[GNU/Linux]], Mac, Windows, richiede SQLite versione 3.
* [[Database Master]] [httphttps://wwwweb.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> ==
== Diffusione ==
[[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">[httphttps://www.mail-archive.com/sqlite-users%40sqlite.org/msg27326.html Skype client using SQLite?]</ref> [[Adobe Systems(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">[httphttps://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 nelsu [[iOS]] (Apple)|sistemae operativo dell'iPhone[[MacOS]] Apple 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">[httphttps://www.sqlite.org/famous.html Well-known Users of SQLite]</ref>
 
== Note ==
{{<references|2}}/>
 
== Altri progetti ==
{{interprogetto|commons=Category:SQLite}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{en}} [http://www.sqlite.org/ Il sito ufficiale]
* {{en}}cita [httpweb|https://www.php.net/manual/en/book.pdo.php |Funzioni PHP raccomandate per l'utilizzo di SQLite 3.x con PHP5]PHP|lingua=en}}
<!-- * {{en}} [httphttps://videowww.googleyoutube.com/videoplaywatch?docidv=giAMt8Tj-5160435487953918649#84 Introduzione video a SQLite tenuta da D. Richard Hipp] -->
* {{cita web | 1 = http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/a2109.htm#almlindex11097 | 2 = SQLite su Appunti di Informatica Libera | accesso = 17 giugno 2014 | urlarchivio = https://web.archive.org/web/20160405071526/http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/a2109.htm#almlindex11097 | dataarchivio = 5 aprile 2016 | urlmorto = sì }}
 
{{Database management system}}
{{Portale|Software libero}}
{{Android}}
{{Controllo di autorità}}
{{Portale|Informatica|Software libero}}
 
[[Categoria:SoftwareDatabase liberomanagement per base datisystem]]
[[Categoria: Database Open Source]]
[[Categoria:Software per base dati]]
[[Categoria:Librerie software]]
 
[[ar:إس كيو لايت]]
[[bg:SQLite]]
[[ca:SQLite]]
[[cs:SQLite]]
[[de:SQLite]]
[[en:SQLite]]
[[es:SQLite]]
[[fa:اس‌کیوال لایت]]
[[fi:SQLite]]
[[fr:SQLite]]
[[hr:SQLite]]
[[hu:SQLite]]
[[id:SQLite]]
[[ja:SQLite]]
[[ko:SQLite]]
[[lt:SQLite]]
[[nl:SQLite]]
[[no:SQLite]]
[[pl:SQLite]]
[[pt:SQLite]]
[[ro:SQLite]]
[[ru:SQLite]]
[[sr:SQLite]]
[[tr:SQLite]]
[[uk:SQLite]]
[[vi:SQLite]]
[[zh:SQLite]]