Have you had a look at XBMC (
http://xbmc.org)? I've been using it as my primary audio-video-photo replay system now for a few months - it's catalogued over 1.5TB of music, films and TV shows, pulled off biographies and artwork for artists and has a number of effective search and categorisation tools.
I'm not sure how it operates its database but as an open source project I'm guessing MySQL is probably in there somewhere.
For tagging ripped CDs I tend to use TagTuner (
http://www.tagtuner.com) - it's not free but not expensive. Give it a folder with a CD in it and it'll quickly look it up, offering alternatives if necessary (usually multiple entries of the same disc with different genre categorisation, album artwork, or title capitalisation), and then apply tags. It's good at batch tagging and you can set up to apply a number of tags automatically from file names.
With these two and EAC you have a near-perfect set of tools for ripping, tagging and cataloguing/replay - or you can get XBMC to rip CDs for you and encode to FLAC (or whatever), though personally I prefer EAC.
XBMC nightly updates are available if you want to operate at the bleeding edge of development (
http://mirrors.xbmc.org/nightlies/) as are a load of skins - my favourite is Transparency (
http://xbmc.org/skins/transparency/) - and the potential for wasting hours and hours of enjoyable time tweaking and fine-tuning the program and your files and artwork is almost endless...
P.S. I've just checked on the database details (from
http://wiki.xbmc.org/?title=The_XBMC_Database):
XBMC uses SQLite, an open source light-weight SQL database-engine, to store all its library related data (Music, Video, and Program databases)...
The XBMC databases are automatically maintained whenever you use XBMC. You can activate the most powerful database functionality by setting the Content property on all of your media sources, and using XBMC Library Mode. This view mode allows you to browse your media based on the details available in the databases, rather than using simple folder and filenames for details. You can read more about Library Mode for Music and Video files on their respective pages.
Since XBMC maintains the databases on its own, the only time a developer really needs to access the databases is for display information. The following sections discuss how you can access the information contained in the XBMC databases, and give some brief examples of how to use it.
Building SQL Queries
SQLite queries can be incredibly powerful (and extraordinarily complicated). If you are not already familiar with SQL syntax, it would probably be a good idea to check out a general tutorial, such as this one (add link).
For most XBMC development projects, you're going to be doing select statements. "Select" is a SQL command used to gather data (in the form of "rows") out of a SQL database. Your select statement will include:
* A list of all the data fields (columns in the database table) you want for each row.
* A list of all the tables you need to get information from
* A list of comparisons used to narrow down your results. This last component is optional, but it makes sure your results are relevant and is often used to link database entries across multiple tables.
etc. etc. (There's quite a lot of detail which might be useful to you on the page linked to!)