I second sqlite.

Why would you need to partition the data across multiple database files? If you really need to, just make a separate database for each class/type/year combination, and make use of the attach database statement.