I have to design a Data Access Layer with .NET that probably will use more than one database management system (Mysql and Sql Server) with the same relational design.
I recommend Patterns of Enterprise Application Architecture by Martin Fowler.
A list of the patterns is also on his website
The DataMapper pattern is also relevant.