I have seen proponents of isolating data management and storage into microservices in a way that each microservice has its own data store (at least in a logical sense). Hence, joins and aggregations are made in the application layer.
Why is this better than using, for example, a relational database where different microservices can connect to? By doing it this way, we leverage the capabilities of the database to do joins and the likes and we can also use views to separate concerns and roles, getting the best of both worlds. If the database system is deployed with high-availability in mind, it is not a probable point of failure.
What am I missing?