Documentation Source Text

Hex Artifact Content
Login

Artifact e10af018ad82cdfc9833be90a08520c362ee7da5e14f6acc95d82cc30f29a112:


0000: 3c 74 63 6c 3e 68 64 5f 6b 65 79 77 6f 72 64 73  <tcl>hd_keywords
0010: 20 2a 61 66 66 73 68 6f 72 74 20 7b 66 69 6c 65   *affshort {file
0020: 2d 66 6f 72 6d 61 74 20 62 65 6e 65 66 69 74 73  -format benefits
0030: 7d 3c 2f 74 63 6c 3e 0a 3c 74 69 74 6c 65 3e 42  }</tcl>.<title>B
0040: 65 6e 65 66 69 74 73 20 6f 66 20 53 51 4c 69 74  enefits of SQLit
0050: 65 20 41 73 20 41 20 46 69 6c 65 20 46 6f 72 6d  e As A File Form
0060: 61 74 3c 2f 74 69 74 6c 65 3e 0a 0a 3c 68 31 20  at</title>..<h1 
0070: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a  align="center">.
0080: 53 51 4c 69 74 65 20 41 73 20 41 6e 20 41 70 70  SQLite As An App
0090: 6c 69 63 61 74 69 6f 6e 20 46 69 6c 65 20 46 6f  lication File Fo
00a0: 72 6d 61 74 0a 3c 2f 68 31 3e 0a 0a 3c 70 3e 3c  rmat.</h1>..<p><
00b0: 69 3e 28 4e 6f 74 65 3a 20 20 54 68 65 20 63 75  i>(Note:  The cu
00c0: 72 72 65 6e 74 20 70 61 67 65 20 69 73 20 61 20  rrent page is a 
00d0: 62 72 69 65 66 20 73 75 6d 6d 61 72 79 20 6f 66  brief summary of
00e0: 20 77 68 79 20 53 51 4c 69 74 65 20 6d 61 6b 65   why SQLite make
00f0: 73 0a 61 20 67 6f 6f 64 20 61 70 70 6c 69 63 61  s.a good applica
0100: 74 69 6f 6e 20 66 69 6c 65 20 66 6f 72 6d 61 74  tion file format
0110: 2e 20 20 54 68 65 20 74 6f 70 69 63 20 69 73 20  .  The topic is 
0120: 63 6f 6e 73 69 64 65 72 65 64 20 61 74 20 67 72  considered at gr
0130: 65 61 74 65 72 0a 64 65 74 61 69 6c 20 69 6e 20  eater.detail in 
0140: 61 20 5b 61 70 70 6c 69 63 61 74 69 6f 6e 20 66  a [application f
0150: 69 6c 65 2d 66 6f 72 6d 61 74 20 7c 20 73 65 70  ile-format | sep
0160: 61 72 61 74 65 20 74 65 63 68 6e 69 63 61 6c 20  arate technical 
0170: 6e 6f 74 65 5d 2e 29 3c 2f 69 3e 3c 2f 70 3e 0a  note].)</i></p>.
0180: 0a 3c 70 3e 0a 53 51 4c 69 74 65 20 68 61 73 20  .<p>.SQLite has 
0190: 62 65 65 6e 20 75 73 65 64 20 77 69 74 68 20 67  been used with g
01a0: 72 65 61 74 20 73 75 63 63 65 73 73 20 61 73 20  reat success as 
01b0: 74 68 65 20 6f 6e 2d 64 69 73 6b 20 66 69 6c 65  the on-disk file
01c0: 20 66 6f 72 6d 61 74 0a 66 6f 72 20 64 65 73 6b   format.for desk
01d0: 74 6f 70 20 61 70 70 6c 69 63 61 74 69 6f 6e 73  top applications
01e0: 20 73 75 63 68 20 61 73 20 76 65 72 73 69 6f 6e   such as version
01f0: 20 63 6f 6e 74 72 6f 6c 20 73 79 73 74 65 6d 73   control systems
0200: 2c 0a 66 69 6e 61 6e 63 69 61 6c 20 61 6e 61 6c  ,.financial anal
0210: 79 73 69 73 20 74 6f 6f 6c 73 2c 20 6d 65 64 69  ysis tools, medi
0220: 61 20 63 61 74 61 6c 6f 67 69 6e 67 20 61 6e 64  a cataloging and
0230: 20 65 64 69 74 69 6e 67 20 73 75 69 74 65 73 2c   editing suites,
0240: 20 43 41 44 0a 70 61 63 6b 61 67 65 73 2c 20 72   CAD.packages, r
0250: 65 63 6f 72 64 20 6b 65 65 70 69 6e 67 20 70 72  ecord keeping pr
0260: 6f 67 72 61 6d 73 2c 20 61 6e 64 20 73 6f 20 66  ograms, and so f
0270: 6f 72 74 68 2e 20 20 54 68 65 20 74 72 61 64 69  orth.  The tradi
0280: 74 69 6f 6e 61 6c 0a 46 69 6c 65 2f 4f 70 65 6e  tional.File/Open
0290: 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 6c 6c 73   operation calls
02a0: 20 73 71 6c 69 74 65 33 5f 6f 70 65 6e 28 29 20   sqlite3_open() 
02b0: 74 6f 20 61 74 74 61 63 68 20 74 6f 20 74 68 65  to attach to the
02c0: 20 64 61 74 61 62 61 73 65 0a 66 69 6c 65 2e 20   database.file. 
02d0: 20 55 70 64 61 74 65 73 20 68 61 70 70 65 6e 20   Updates happen 
02e0: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 73  automatically as
02f0: 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 63 6f 6e   application con
0300: 74 65 6e 74 20 69 73 20 72 65 76 69 73 65 64 0a  tent is revised.
0310: 73 6f 20 74 68 65 20 46 69 6c 65 2f 53 61 76 65  so the File/Save
0320: 20 6d 65 6e 75 20 6f 70 74 69 6f 6e 20 62 65 63   menu option bec
0330: 6f 6d 65 73 20 73 75 70 65 72 66 6c 75 6f 75 73  omes superfluous
0340: 2e 20 20 54 68 65 20 46 69 6c 65 2f 53 61 76 65  .  The File/Save
0350: 5f 41 73 0a 6d 65 6e 75 20 6f 70 74 69 6f 6e 20  _As.menu option 
0360: 63 61 6e 20 62 65 20 69 6d 70 6c 65 6d 65 6e 74  can be implement
0370: 65 64 20 75 73 69 6e 67 20 74 68 65 20 5b 62 61  ed using the [ba
0380: 63 6b 75 70 20 41 50 49 5d 2e 0a 3c 2f 70 3e 0a  ckup API]..</p>.
0390: 0a 3c 70 3e 0a 54 68 65 72 65 20 61 72 65 20 6d  .<p>.There are m
03a0: 61 6e 79 20 61 64 76 61 6e 74 61 67 65 73 20 74  any advantages t
03b0: 6f 20 75 73 69 6e 67 20 53 51 4c 69 74 65 20 61  o using SQLite a
03c0: 73 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e  s an application
03d0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 2c 0a 69 6e   file format,.in
03e0: 63 6c 75 64 69 6e 67 3a 0a 3c 2f 70 3e 0a 0a 3c  cluding:.</p>..<
03f0: 6f 6c 20 74 79 70 65 3d 22 31 22 3e 0a 3c 6c 69  ol type="1">.<li
0400: 3e 3c 62 3e 42 65 74 74 65 72 20 70 65 72 66 6f  ><b>Better perfo
0410: 72 6d 61 6e 63 65 3c 2f 62 3e 0a 3c 75 6c 3e 0a  rmance</b>.<ul>.
0420: 3c 6c 69 3e 20 52 65 61 64 69 6e 67 20 61 6e 64  <li> Reading and
0430: 20 77 72 69 74 69 6e 67 20 66 72 6f 6d 20 61 6e   writing from an
0440: 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65   SQLite database
0450: 0a 20 20 20 20 20 69 73 20 6f 66 74 65 6e 20 66  .     is often f
0460: 61 73 74 65 72 20 74 68 61 6e 20 72 65 61 64 69  aster than readi
0470: 6e 67 20 61 6e 64 20 77 72 69 74 69 6e 67 20 69  ng and writing i
0480: 6e 64 69 76 69 64 75 61 6c 20 66 69 6c 65 73 20  ndividual files 
0490: 66 72 6f 6d 20 64 69 73 6b 2e 0a 20 20 20 20 20  from disk..     
04a0: 53 65 65 20 5b 66 61 73 74 65 72 20 74 68 61 6e  See [faster than
04b0: 20 74 68 65 20 66 69 6c 65 73 79 73 74 65 6d 7c   the filesystem|
04c0: 33 35 25 20 46 61 73 74 65 72 20 54 68 61 6e 20  35% Faster Than 
04d0: 54 68 65 20 46 69 6c 65 73 79 73 74 65 6d 5d 0a  The Filesystem].
04e0: 20 20 20 20 20 61 6e 64 20 5b 49 6e 74 65 72 6e       and [Intern
04f0: 61 6c 20 56 65 72 73 75 73 20 45 78 74 65 72 6e  al Versus Extern
0500: 61 6c 20 42 4c 4f 42 73 5d 2e 0a 3c 6c 69 3e 20  al BLOBs]..<li> 
0510: 54 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20  The application 
0520: 6f 6e 6c 79 20 68 61 73 20 74 6f 20 6c 6f 61 64  only has to load
0530: 20 74 68 65 20 64 61 74 61 20 69 74 20 6e 65 65   the data it nee
0540: 64 73 2c 20 72 61 74 68 65 72 0a 20 20 20 20 20  ds, rather.     
0550: 74 68 61 6e 20 72 65 61 64 69 6e 67 20 74 68 65  than reading the
0560: 20 65 6e 74 69 72 65 20 66 69 6c 65 20 61 6e 64   entire file and
0570: 20 68 6f 6c 64 69 6e 67 20 61 20 63 6f 6d 70 6c   holding a compl
0580: 65 74 65 20 70 61 72 73 65 0a 20 20 20 20 20 69  ete parse.     i
0590: 6e 20 6d 65 6d 6f 72 79 2e 0a 3c 6c 69 3e 20 53  n memory..<li> S
05a0: 6d 61 6c 6c 20 65 64 69 74 73 20 6f 6e 6c 79 20  mall edits only 
05b0: 6f 76 65 72 77 72 69 74 65 20 74 68 65 20 70 61  overwrite the pa
05c0: 72 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 20  rts of the file 
05d0: 74 68 61 74 20 63 68 61 6e 67 65 2c 0a 20 20 20  that change,.   
05e0: 20 20 72 65 64 75 63 69 6e 67 20 77 72 69 74 65    reducing write
05f0: 20 74 69 6d 65 20 61 6e 64 20 77 65 61 72 20 6f   time and wear o
0600: 6e 20 53 53 44 20 64 72 69 76 65 73 2e 0a 3c 2f  n SSD drives..</
0610: 75 6c 3e 0a 3c 6c 69 3e 3c 62 3e 52 65 64 75 63  ul>.<li><b>Reduc
0620: 65 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 63  ed application c
0630: 6f 73 74 20 61 6e 64 20 63 6f 6d 70 6c 65 78 69  ost and complexi
0640: 74 79 3c 2f 62 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e  ty</b>.<ul>.<li>
0650: 20 4e 6f 20 61 70 70 6c 69 63 61 74 69 6f 6e 20   No application 
0660: 66 69 6c 65 20 49 2f 4f 20 63 6f 64 65 20 74 6f  file I/O code to
0670: 20 77 72 69 74 65 20 61 6e 64 20 64 65 62 75 67   write and debug
0680: 2e 0a 3c 6c 69 3e 20 43 6f 6e 74 65 6e 74 20 63  ..<li> Content c
0690: 61 6e 20 62 65 20 61 63 63 65 73 73 65 64 20 61  an be accessed a
06a0: 6e 64 20 75 70 64 61 74 65 64 20 75 73 69 6e 67  nd updated using
06b0: 20 63 6f 6e 63 69 73 65 20 53 51 4c 20 71 75 65   concise SQL que
06c0: 72 69 65 73 20 69 6e 73 74 65 61 64 0a 20 20 20  ries instead.   
06d0: 20 20 6f 66 20 6c 65 6e 67 74 68 79 20 61 6e 64    of lengthy and
06e0: 20 65 72 72 6f 72 2d 70 72 6f 6e 65 20 70 72 6f   error-prone pro
06f0: 63 65 64 75 72 61 6c 20 72 6f 75 74 69 6e 65 73  cedural routines
0700: 2e 0a 3c 6c 69 3e 20 54 68 65 20 66 69 6c 65 20  ..<li> The file 
0710: 66 6f 72 6d 61 74 20 63 61 6e 20 62 65 20 65 78  format can be ex
0720: 74 65 6e 64 65 64 20 69 6e 20 66 75 74 75 72 65  tended in future
0730: 20 72 65 6c 65 61 73 65 73 20 73 69 6d 70 6c 79   releases simply
0740: 0a 20 20 20 20 20 62 79 20 61 64 64 69 6e 67 20  .     by adding 
0750: 6e 65 77 20 74 61 62 6c 65 73 20 61 6e 64 2f 6f  new tables and/o
0760: 72 20 63 6f 6c 75 6d 6e 2c 20 70 72 65 73 65 72  r column, preser
0770: 76 69 6e 67 20 62 61 63 6b 77 61 72 64 73 20 63  ving backwards c
0780: 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 3c 6c  ompatibility..<l
0790: 69 3e 20 41 70 70 6c 69 63 61 74 69 6f 6e 73 20  i> Applications 
07a0: 63 61 6e 20 6c 65 76 65 72 61 67 65 20 74 68 65  can leverage the
07b0: 0a 20 20 20 20 20 5b 66 75 6c 6c 2d 74 65 78 74  .     [full-text
07c0: 20 73 65 61 72 63 68 5d 20 61 6e 64 20 5b 52 54   search] and [RT
07d0: 52 45 45 5d 20 69 6e 64 65 78 65 73 20 61 6e 64  REE] indexes and
07e0: 20 75 73 65 20 74 72 69 67 67 65 72 73 20 74 6f   use triggers to
07f0: 20 69 6d 70 6c 65 6d 65 6e 74 0a 20 20 20 20 20   implement.     
0800: 61 6e 20 5b 61 75 74 6f 6d 61 74 65 64 20 75 6e  an [automated un
0810: 64 6f 2f 72 65 64 6f 20 73 74 61 63 6b 5d 2e 0a  do/redo stack]..
0820: 3c 6c 69 3e 20 50 65 72 66 6f 72 6d 61 6e 63 65  <li> Performance
0830: 20 70 72 6f 62 6c 65 6d 73 20 63 61 6e 20 6f 66   problems can of
0840: 74 65 6e 20 62 65 20 72 65 73 6f 6c 76 65 64 2c  ten be resolved,
0850: 20 65 76 65 6e 20 6c 61 74 65 20 69 6e 20 74 68   even late in th
0860: 65 0a 20 20 20 20 20 64 65 76 65 6c 6f 70 6d 65  e.     developme
0870: 6e 74 20 63 79 63 6c 65 2c 20 75 73 69 6e 67 20  nt cycle, using 
0880: 5b 43 52 45 41 54 45 20 49 4e 44 45 58 5d 2c 20  [CREATE INDEX], 
0890: 61 76 6f 69 64 69 6e 67 20 63 6f 73 74 6c 79 0a  avoiding costly.
08a0: 20 20 20 20 20 72 65 64 65 73 69 67 6e 2c 20 72       redesign, r
08b0: 65 77 72 69 74 65 2c 20 61 6e 64 20 72 65 74 65  ewrite, and rete
08c0: 73 74 20 65 66 66 6f 72 74 73 2e 0a 3c 2f 75 6c  st efforts..</ul
08d0: 3e 0a 3c 6c 69 3e 3c 62 3e 50 6f 72 74 61 62 69  >.<li><b>Portabi
08e0: 6c 69 74 79 3c 2f 62 3e 0a 3c 75 6c 3e 0a 3c 6c  lity</b>.<ul>.<l
08f0: 69 3e 20 54 68 65 20 61 70 70 6c 69 63 61 74 69  i> The applicati
0900: 6f 6e 20 66 69 6c 65 20 69 73 20 70 6f 72 74 61  on file is porta
0910: 62 6c 65 20 61 63 72 6f 73 73 20 61 6c 6c 20 6f  ble across all o
0920: 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 73  perating systems
0930: 2c 0a 20 20 20 20 20 33 32 2d 62 69 74 20 61 6e  ,.     32-bit an
0940: 64 20 36 34 2d 62 69 74 20 61 6e 64 20 62 69 67  d 64-bit and big
0950: 2d 20 61 6e 64 20 6c 69 74 74 6c 65 2d 65 6e 64  - and little-end
0960: 69 61 6e 20 61 72 63 68 69 74 65 63 74 75 72 65  ian architecture
0970: 73 2e 0a 3c 6c 69 3e 20 41 20 66 65 64 65 72 61  s..<li> A federa
0980: 74 69 6f 6e 20 6f 66 20 70 72 6f 67 72 61 6d 73  tion of programs
0990: 2c 20 70 65 72 68 61 70 73 20 61 6c 6c 20 77 72  , perhaps all wr
09a0: 69 74 74 65 6e 20 69 6e 20 64 69 66 66 65 72 65  itten in differe
09b0: 6e 74 20 70 72 6f 67 72 61 6d 6d 69 6e 67 0a 20  nt programming. 
09c0: 20 20 20 20 6c 61 6e 67 75 61 67 65 73 2c 20 63      languages, c
09d0: 61 6e 20 61 63 63 65 73 73 20 74 68 65 20 73 61  an access the sa
09e0: 6d 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 66  me application f
09f0: 69 6c 65 20 77 69 74 68 20 6e 6f 0a 20 20 20 20  ile with no.    
0a00: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 63   compatibility c
0a10: 6f 6e 63 65 72 6e 73 2e 0a 3c 6c 69 3e 20 4d 75  oncerns..<li> Mu
0a20: 6c 74 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73  ltiple processes
0a30: 20 63 61 6e 20 61 74 74 61 63 68 20 74 6f 20 74   can attach to t
0a40: 68 65 20 73 61 6d 65 20 61 70 70 6c 69 63 61 74  he same applicat
0a50: 69 6f 6e 0a 20 20 20 20 20 66 69 6c 65 20 61 6e  ion.     file an
0a60: 64 20 63 61 6e 20 72 65 61 64 20 61 6e 64 20 77  d can read and w
0a70: 72 69 74 65 20 77 69 74 68 6f 75 74 20 69 6e 74  rite without int
0a80: 65 72 66 65 72 69 6e 67 20 77 69 74 68 20 65 61  erfering with ea
0a90: 63 68 20 61 6e 6f 74 68 65 72 2e 0a 3c 6c 69 3e  ch another..<li>
0aa0: 20 44 69 76 65 72 73 65 20 63 6f 6e 74 65 6e 74   Diverse content
0ab0: 20 77 68 69 63 68 20 6d 69 67 68 74 20 6f 74 68   which might oth
0ac0: 65 72 77 69 73 65 20 62 65 20 73 74 6f 72 65 64  erwise be stored
0ad0: 20 61 73 20 61 20 22 70 69 6c 65 2d 6f 66 2d 66   as a "pile-of-f
0ae0: 69 6c 65 73 22 0a 20 20 20 20 20 69 73 20 65 6e  iles".     is en
0af0: 63 61 70 73 75 6c 61 74 65 64 20 69 6e 74 6f 20  capsulated into 
0b00: 61 20 73 69 6e 67 6c 65 20 64 69 73 6b 20 66 69  a single disk fi
0b10: 6c 65 20 66 6f 72 20 73 69 6d 70 6c 65 72 20 74  le for simpler t
0b20: 72 61 6e 73 70 6f 72 74 0a 20 20 20 20 20 76 69  ransport.     vi
0b30: 61 20 73 63 70 2f 66 74 70 2c 20 55 53 42 20 73  a scp/ftp, USB s
0b40: 74 69 63 6b 2c 20 61 6e 64 2f 6f 72 20 65 6d 61  tick, and/or ema
0b50: 69 6c 20 61 74 74 61 63 68 6d 65 6e 74 2e 0a 3c  il attachment..<
0b60: 2f 75 6c 3e 0a 3c 6c 69 3e 3c 62 3e 52 65 6c 69  /ul>.<li><b>Reli
0b70: 61 62 69 6c 69 74 79 3c 2f 62 3e 0a 3c 75 6c 3e  ability</b>.<ul>
0b80: 0a 3c 6c 69 3e 20 43 6f 6e 74 65 6e 74 20 63 61  .<li> Content ca
0b90: 6e 20 62 65 20 75 70 64 61 74 65 64 20 63 6f 6e  n be updated con
0ba0: 74 69 6e 75 6f 75 73 6c 79 20 61 6e 64 20 61 74  tinuously and at
0bb0: 6f 6d 69 63 61 6c 6c 79 20 73 6f 20 0a 20 20 20  omically so .   
0bc0: 20 20 74 68 61 74 20 6c 69 74 74 6c 65 20 6f 72    that little or
0bd0: 20 6e 6f 20 77 6f 72 6b 20 69 73 20 6c 6f 73 74   no work is lost
0be0: 20 69 6e 20 61 20 70 6f 77 65 72 20 66 61 69 6c   in a power fail
0bf0: 75 72 65 20 6f 72 20 63 72 61 73 68 2e 0a 3c 6c  ure or crash..<l
0c00: 69 3e 20 42 75 67 73 20 61 72 65 20 66 61 72 20  i> Bugs are far 
0c10: 6c 65 73 73 20 6c 69 6b 65 6c 79 20 69 6e 20 53  less likely in S
0c20: 51 4c 69 74 65 20 74 68 61 6e 20 69 6e 20 63 75  QLite than in cu
0c30: 73 74 6f 6d 2d 77 72 69 74 74 65 6e 20 66 69 6c  stom-written fil
0c40: 65 20 49 2f 4f 20 63 6f 64 65 2e 0a 3c 6c 69 3e  e I/O code..<li>
0c50: 20 53 51 4c 20 71 75 65 72 69 65 73 20 61 72 65   SQL queries are
0c60: 20 6d 61 6e 79 20 74 69 6d 65 73 20 73 6d 61 6c   many times smal
0c70: 6c 65 72 20 74 68 61 6e 20 74 68 65 20 65 71 75  ler than the equ
0c80: 69 76 61 6c 65 6e 74 20 70 72 6f 63 65 64 75 72  ivalent procedur
0c90: 61 6c 0a 20 20 20 20 20 63 6f 64 65 2c 20 61 6e  al.     code, an
0ca0: 64 20 73 69 6e 63 65 20 74 68 65 20 6e 75 6d 62  d since the numb
0cb0: 65 72 20 6f 66 20 62 75 67 73 20 70 65 72 20 6c  er of bugs per l
0cc0: 69 6e 65 20 6f 66 20 63 6f 64 65 20 69 73 20 72  ine of code is r
0cd0: 6f 75 67 68 6c 79 0a 20 20 20 20 20 63 6f 6e 73  oughly.     cons
0ce0: 74 61 6e 74 2c 20 74 68 69 73 20 6d 65 61 6e 73  tant, this means
0cf0: 20 66 65 77 65 72 20 62 75 67 73 20 6f 76 65 72   fewer bugs over
0d00: 61 6c 6c 2e 0a 3c 2f 75 6c 3e 0a 3c 6c 69 3e 3c  all..</ul>.<li><
0d10: 62 3e 41 63 63 65 73 73 69 62 69 6c 69 74 79 3c  b>Accessibility<
0d20: 2f 62 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 20 53 51  /b>.<ul>.<li> SQ
0d30: 4c 69 74 65 20 64 61 74 61 62 61 73 65 20 63 6f  Lite database co
0d40: 6e 74 65 6e 74 20 63 61 6e 20 62 65 20 76 69 65  ntent can be vie
0d50: 77 65 64 20 75 73 69 6e 67 20 61 20 77 69 64 65  wed using a wide
0d60: 20 76 61 72 69 65 74 79 0a 20 20 20 20 20 74 68   variety.     th
0d70: 69 72 64 2d 70 61 72 74 79 20 74 6f 6f 6c 73 2e  ird-party tools.
0d80: 0a 3c 6c 69 3e 20 43 6f 6e 74 65 6e 74 20 73 74  .<li> Content st
0d90: 6f 72 65 64 20 69 6e 20 61 6e 20 53 51 4c 69 74  ored in an SQLit
0da0: 65 20 64 61 74 61 62 61 73 65 20 69 73 20 6d 6f  e database is mo
0db0: 72 65 20 6c 69 6b 65 6c 79 20 74 6f 20 62 65 20  re likely to be 
0dc0: 0a 20 20 20 20 20 72 65 63 6f 76 65 72 61 62 6c  .     recoverabl
0dd0: 65 20 64 65 63 61 64 65 73 20 69 6e 20 74 68 65  e decades in the
0de0: 20 66 75 74 75 72 65 2c 20 6c 6f 6e 67 20 61 66   future, long af
0df0: 74 65 72 20 61 6c 6c 20 74 72 61 63 65 73 20 6f  ter all traces o
0e00: 66 0a 20 20 20 20 20 74 68 65 20 6f 72 69 67 69  f.     the origi
0e10: 6e 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20  nal application 
0e20: 68 61 76 65 20 62 65 65 6e 20 6c 6f 73 74 2e 20  have been lost. 
0e30: 44 61 74 61 20 6c 69 76 65 73 20 6c 6f 6e 67 65  Data lives longe
0e40: 72 20 74 68 61 6e 20 63 6f 64 65 2e 0a 3c 6c 69  r than code..<li
0e50: 3e 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73  > SQLite databas
0e60: 65 20 66 69 6c 65 73 20 61 72 65 20 5b 72 65 63  e files are [rec
0e70: 6f 6d 6d 65 6e 64 65 64 20 62 79 20 74 68 65 20  ommended by the 
0e80: 55 53 20 4c 69 62 72 61 72 79 20 6f 66 20 43 6f  US Library of Co
0e90: 6e 67 72 65 73 73 5d 0a 20 20 20 20 20 61 73 20  ngress].     as 
0ea0: 61 20 73 74 6f 72 61 67 65 20 66 6f 72 6d 61 74  a storage format
0eb0: 20 66 6f 72 20 6c 6f 6e 67 2d 74 65 72 6d 20 70   for long-term p
0ec0: 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 64  reservation of d
0ed0: 69 67 69 74 61 6c 20 63 6f 6e 74 65 6e 74 2e 0a  igital content..
0ee0: 3c 2f 75 6c 3e 0a 3c 2f 6f 6c 3e 0a 0a 3c 70 3e  </ul>.</ol>..<p>
0ef0: 0a 53 51 4c 69 74 65 20 61 6c 6c 6f 77 73 20 64  .SQLite allows d
0f00: 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f  atabase files to
0f10: 20 68 61 76 65 20 61 6e 79 20 64 65 73 69 72 65   have any desire
0f20: 64 20 66 69 6c 65 6e 61 6d 65 20 65 78 74 65 6e  d filename exten
0f30: 73 69 6f 6e 2c 20 73 6f 0a 61 6e 20 61 70 70 6c  sion, so.an appl
0f40: 69 63 61 74 69 6f 6e 20 63 61 6e 20 63 68 6f 6f  ication can choo
0f50: 73 65 20 61 20 63 75 73 74 6f 6d 20 66 69 6c 65  se a custom file
0f60: 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 20 66  name extension f
0f70: 6f 72 20 69 74 73 20 6f 77 6e 20 75 73 65 2c 20  or its own use, 
0f80: 69 66 0a 64 65 73 69 72 65 64 2e 20 20 54 68 65  if.desired.  The
0f90: 20 5b 61 70 70 6c 69 63 61 74 69 6f 6e 5f 69 64   [application_id
0fa0: 20 70 72 61 67 6d 61 5d 20 63 61 6e 20 62 65 20   pragma] can be 
0fb0: 75 73 65 64 20 74 6f 20 73 65 74 20 61 6e 20 22  used to set an "
0fc0: 41 70 70 6c 69 63 61 74 69 6f 6e 20 49 44 22 0a  Application ID".
0fd0: 69 6e 74 65 67 65 72 20 69 6e 20 74 68 65 20 64  integer in the d
0fe0: 61 74 61 62 61 73 65 20 66 69 6c 65 20 73 6f 20  atabase file so 
0ff0: 74 68 61 74 20 74 6f 6f 6c 73 20 6c 69 6b 65 0a  that tools like.
1000: 5b 68 74 74 70 3a 2f 2f 77 77 77 2e 64 61 72 77  [http://www.darw
1010: 69 6e 73 79 73 2e 63 6f 6d 2f 66 69 6c 65 2f 20  insys.com/file/ 
1020: 7c 20 66 69 6c 65 28 31 29 5d 20 63 61 6e 20 64  | file(1)] can d
1030: 65 74 65 72 6d 69 6e 65 20 74 68 61 74 20 74 68  etermine that th
1040: 65 20 66 69 6c 65 0a 69 73 20 61 73 73 6f 63 69  e file.is associ
1050: 61 74 65 64 20 77 69 74 68 20 79 6f 75 72 20 61  ated with your a
1060: 70 70 6c 69 63 61 74 69 6f 6e 20 61 6e 64 20 69  pplication and i
1070: 73 20 6e 6f 74 20 6a 75 73 74 20 61 20 67 65 6e  s not just a gen
1080: 65 72 69 63 0a 53 51 4c 20 64 61 74 61 62 61 73  eric.SQL databas
1090: 65 2e 3c 2f 70 3e 0a                             e.</p>.