How to store many smallish time-series in a relational DB?
Are your queries supposed to collect data for each month/year? 

You can use partitions to store your information in different physical files.  Partitions can increase the speed of SELECT statements when you only need information about a specific period. http://msdn.microsoft.com/en-us/library/ms345146%28v=sql.90%29.aspx 

When creating a partitioned table in Microsoft SQL Server you can also create different file groups on different physical locations and back those up separately. 

With regards to your question about the database design, you may want to read about normalization here: http://en.wikipedia.org/wiki/Database_normalization