In most cases, an architecture should strive to minimize processing that is done on the database and should minimize the amount of logic deployed there as well. There are several reasons for this:
Performance and scaleability. Your database tends to be a performance bottleneck. Application servers have performance limits as well, but they can be scaled out and load-balanced. Scaling out an OLTP database is not really possible as most OLTP business logic involving persistence also requires ACID properties. If you scale out the database, you pretty much have to give that up-- the best you can do is eventual consistency.
Concurrency. Database logic tends to affect concurrency because database transactions can block other threads of execution. Putting the logic on the application servers forces you to write code that works well in parallel.
Deployment. Your database requires special handling when deploying a new version-- it may even require an outage in order to be able to support a comprehensive backup and rollback plan. Application servers can be spun up or shut down at will, allowing you to deploy multiple versions at once and support blue/green deployment. This can be a huge boost for your uptime and Gomez rankings. But it requires that the database have no changes (difficult to do if all your business logic is there), or that you take great care to make them backward-compatible (in which case you have doubled the QA effort).