title: Shelve: choice of database
body: <p><code>shelve</code> <a href="http://docs.python.org/2/library/shelve.html#restrictions" rel="noreferrer">documentation</a> says:</p>
  
  <blockquote>
    <p>The choice of which database package will be used (such as dbm, gdbm
    or bsddb) depends on which interface is available.</p>
  </blockquote>
  
  <p>What is that mean? How to determine which package choosen? How to strictly define which one must be choosed? What database implementation best to use?</p>