Magento Database Diagram
It's not up to date. There was a huge step in magento-1.6 and many minor changes in the other 1.x updates.
Especially the sales and index tables are completely different now, I would not use this sheet as a reference anymore.
Unfortunately table definitions are not in one place but scattered around hundreds of install and upgrade scripts. You will find them in app/code/core/Mage/*/sql/*/*.php
You will notice that there is usually a install-1.6.0.0.php
script that sets up everything for the current module and Magento 1.6. Start there and ignore all scripts with lower versions. Changes are incrementally added with scripts like upgrade-1.6.0.0-1.6.1.0
and so on.
Update: Thanks to Anna Völkl, there is a new complete database diagram for Magento 1.9.2.2:
Source: http://anna.voelkl.at/magento-ce-1-9-2-2-database-diagram/
If you're going to be doing a lot of custom database queries and relying on searches in the database, you should consider enabling Flat Product Table
and Flat Category Table
which creates a single category table and a single product table with columns for all attributes that are enabled for use in product page. This will require an index refresh. Both the flat table and the eav tables will both continue to be populated with data.
I wouldn't too much stock in trying to learn the Magento database structure... there's a function for almost everything you need to do.