Restrição assertiva em banco vs Regra de negócio no código

Olá a todos.

Relendo sore banco de dados me deparei com a seguinte citação do livro Sistema de Banco de Dados, do Abraham Silbberschatz, Henry F. Korth e S. Sudarshan:

“Assertivas: Uma assertiva é qualquer condição que o banco de dados sempre precisa satisfazer. As restrições de domínio e as restrições de integridade referencial são formas especiais de assertivas. Todavia, existem muitas restrições que não podemos expressar usando apenas essas formas especiais. Por exemplo, “Cada departamento deve ter pelo menos cinco cursos oferecidos a cada semestre” precisa ser expresso como assertiva. Quando uma assertiva é criada, o sistema testa sua validade. Se a assertiva for válida, qualquer futura modificação no banco de dados só será permitida se ela não fizer com que essa assertiva seja violada.” (p.7)

Bom tenho um certo tempo na área de programação e esse tipo de restrição sempre vi inserida no código, mas no livro estou vendo que, ao meu ver, é preferencialmente bom colocar as restrições no banco. O que não deixa de ser uma grande parte da regra de negócios do sistema de uma empresa.

O que vcs acham com esta citação do banco? De colocar as restrições no banco. Ou preferem colocar no código?

[]'s