Hello,

In response to Bug 777893 (https://bugs.gnucash.org/show_bug.cgi?id=777893 
<https://bugs.gnucash.org/show_bug.cgi?id=777893>), I have written a more 
detailed description of the storage choices available to users for insertion 
into the Tutorial & Concepts Guide at section 2.5. Given the extent of the 
text, I am including it here so that the broader community can offer 
suggestions for improvement. Note that I will insert appropriate encoding once 
I finalize the content.

Thanks,
David T.

————————————————————
Proposed text for Tutorial & Concepts Guide section 2.5
————————————————————

2.5 Storing your financial data
2.5.1 Overview
GnuCash offers several formats for storing your financial data. The default 
file storage format is XML, while a number of flavors of SQL storage are 
available. Users can choose a file format from the File Save and File Save As 
dialogs.
The primary GnuCash storage format is an XML file. The file is by default 
compressed with gzip, which is a preference that is set at 
Edit→Preferences→General→Use file compression. 
GnuCash also supports SQL storage via the DBI back end. It supports PostgreSQL, 
MySQL and SQLite3 databases.

Storage Comparison
As noted, GnuCash allows storage in either XML or SQL formats. Each of these 
formats has benefits and shortcomings that the user should consider for their 
needs and abilities. 
The XML format is the most stable and established format, and for this reason, 
it is the recommended format for most users. SQL storage was added for the 2.4 
release and has become an increasingly popular choice for users.
Use of SQL formats for storage implies to many that GnuCash is database 
management software (DBMS). While that is a long term goal of the development 
team, GnuCash as currently designed is not DBMS. It is a financial application 
that can store its data in SQL files.
Many features that users of DBMS expect from a DBMS are not implemented in 
GnuCash. The GnuCash data schema is not normalized. Significant elements of the 
data logic is implemented in code, rather than data structure.
Gnucash uses the SQL back end to load the entire data store into memory in the 
same manner as the XML back end. Consequently, use of the SQL back end does not 
enable simultaneous multi-user access to a GnuCash file, although that is one 
long term goal.
One benefit of the SQL back end is that it saves changes incrementally, and 
every change is committed to the back end as it happens. This is in contrast to 
the XML back end, which only writes to the data file when the user invokes the 
Save command. 
The SQL back end does allow users with SQL experience to write queries against 
the data to create custom reports without using Gnucash’s internal report 
system. It is important to note that modification of GnuCash data using 
external access modes is strongly discouraged by the development team, and 
damages to a GnuCash data file that result from such modifications are strictly 
the responsibility of the user.

Storage Comparison Table

XML                                                     SQL
Default                                         Optional
Requires no additional software Requires additional software
Requires no additional expertise        Requires expertise with DBMS 
Compressed                                      Uncompressed
Save on command                         Save on commit
Uses log files                                  Does not use log files
Not multi-user                                  Not multi-user
Limited external processing             External processing through SQL queries

 
_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see 
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to