Очень от типа проекта, денег + от фреймворка в котором вы работаете…
1. взгляд на БД: хранилище данных, больше ничего другого (мускул, сквлайт (мелкое хранилище данных, для >>локальных<< целей))
2. взгляд на БД: один из модулей (не ли сердце) вашей системы, всё что вы программируете находится внутри базы данных, логика действий и поведения системы. Здесь скорее под руку попадают Оракл, (с небольшой чясти постгрес).
Приведу пример:
Всем знамая мускул: в ней находятся реально 3 вида базы данных: ИнноДБ => трансакции, МайИССАМ => без трансакций и большая скорость + Меморы = огромная скорость работы с данными, но жрёт рам.
Всё это хорошо, но майиссам и меморы работают без трансакций, хоть и быстрые но не надёжные. ИнноДБ ок для трансакций, но немного медленее. к сожалению на мускуле непоставите ядро своей программы в базе данных.
Постгрес:
Трансакционная дб, теоретически всё ок, надёжно работает, всё можно наладить, есть хорошие триггеры, итд итп. но опять-же, ядро программы на её особо не поставишь, неразрешает того много, просторы имён плохо решены. (пг/сквл)
Оракл:
Это, она хоть и не быстрая, но надёжная ДБ. Надёжная в смысле есть трансакции и немного по другому работает с данными. И конечно-же не с бесплатным саппортом. Здесь можно поставить ядро чего-угодно прямо в БД (пл/сквл).