Не нужно. Храни все данные на голубях, которые летают во дворе дома. Распределенное децентрализованное хранилище получится. А там вместо SQL - сачок или сеть.
Разумеется, нужно: в любой приличной современной СУБД есть хранимые процедуры, хранимые функции, триггеры... И встроенный язык программирования (бывает, что не один), на котором всё это пишут. В современном мире знания только языка запросов совершенно недостаточно, чтобы называться "SQL программистом". При желании, всю бизнес логику можно реализовать хранимыми подпрограммами в базе данных. Но обычно сохраняют чувство меры и в БД реализуют то, что относится к контролю допустимости и целостности данных, логированию изменений в данных, агрегации данных и т. п...
ну куда же без процедур-то? Не писать же скрипты обслуживания базы с помощью внешнего привода. А так набросал процедурку, воткнул в планировщик и радуешься