Това, което трябва да разгледате, е или да използвате ORM инструмент, който абстрахира базата данни вместо вас (nHibernate), или да дефинирате набор от интерфейси, които представляват вашия DAL и след това да използвате внедряване на IoC (Ninject, Castle и т.н.), за да размените базовия изпълнение по желание, стига да реализира интерфейса.
Въпреки това, проектирането на интерфейс, който е готов за бъдещето (т.е. може да се справи с фините странности на работата с други бази данни) не е лесно, така че може да се наложи да правите промени така или иначе.
Бих направил едно от двете неща в този ред:
- Прегледайте, ако наистина необходимост от размяна на бази данни.
- Тръгнете по пътя на инструмента ORM, тъй като много работа за краката е свършена вместо вас.
Добър пример за абстрахиране на база данни, не непременно DAL сама по себе си, е блокът за приложение за достъп до данни на корпоративната библиотека от Microsoft.