57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
-
+
+
+
+
-
+
|
<ul>
<tcl>hd_fragment appfileformat {application file-format}</tcl>
<li><p><b>Application File Format</b></p>
<p>
SQLite has been used with great success as the on-disk file format
for desktop applications such as financial analysis tools, CAD
for desktop applications such as version control systems,
financial analysis tools, media cataloging and editing suites, CAD
packages, record keeping programs, and so forth. The traditional
File/Open operation calls sqlite3_open() to attach to the database
file. Updates to the file happen atomically as the file is edited,
so the File/Save menu option become superfluous. The File/Save_As
menu option can be implemented using the [backup API].
</p>
<p>
There are many advantages to using SQLite as an application file format,
including:
</p>
<ol type="1">
<li> There is no file parsing and generating code to write and debug.
<li> Content can be accessed and updated using powerful SQL queries,
greatly reducing the complexity of the application code.
<li> Extending the file format for new capabilities in later releases
is a simple as adding new tables or new columns to existing tables.
<li> Diverse content which might otherwise be stored as a "pile-of-files"
can be encapsulated into a single easily managed disk file.
<li> The content can be viewed using third-party tools.
<li> The application file is portable across all operating systems,
32-bit and 64-bit and big- and little-endian architectures.
<li> The application only has to load as much data as it needs, rather
than reading the entire application file and holding a complete parse
in memory. Startup time and memory consumption are reduced.
<li> Small content edits only overwrite the parts of the file that change,
<li> Small edits only overwrite the parts of the file that change,
not the entire file, thus improving performance
and reducing wear on SSD drives.
<li> Content is updated continously and atomically so
that there is no work lost in the event of a power failure or crash.
<li> Applications can leverage the
[full-text search] and [RTREE] capablities that are build into SQLite.
<li> Performance problems can often be resolved using [CREATE INDEX]
|