Difference between "Verify & Repair Database", "Check File Integrity" and "Optimize Database"

Can someone briefly tell what’s the difference between “Verify & Repair Database”, “Check File Integrity” and “Optimize Database”?

And when I should use them and how?

From the DEVONthink 3.8 Documentation, page 137

Verify & Repair: Verifies all database
structures and repairs them if possible. By
default, DEVONthink automatically verifies
the database structure every time you open
a database. If it finds significant errors,
DEVONthink will advise you to run this
Use this command whenever you feel
it is necessary. If you’re a heavy user of
DEVONthink, running a Verify & Repair once a
week or more often is a good idea.

Check File Integrity: Verifies the stored
checksum for each file in the database. The
results are reported in the Log window or
popover. Note: If you are indexing files and
they have not been updated, they will report
a checksum error. See also p. 52ff

Optimize Database: Creates an internal
backup of the database and then optimizes
the database structure. Optimizing removes
unnecessary internal elements from the
database and rebuilds the internal structure
to optimize performance. DEVONthink
also creates internal backups on a regular
basis. Hold the ⌥ Option key to display the
Restore Backup option. This allows you to roll
back the metadata to a previous date. This
option would only be used in troubleshooting