A shared database is coupling you cannot see

Two services with their own repositories, deployments and teams still cannot change independently if they read the same tables. The dependency is real and invisible — nothing in either codebase references the other.

-- service A owns this and wants to rename a column
ALTER TABLE orders CHANGE total total_cents INT;

-- service B, in another repository, breaks on deploy
SELECT total FROM orders WHERE ...

The tell is a schema migration that requires coordinating a release with another team. Whatever the topology claims, that is one system. The usual first step is not splitting the database but making ownership explicit: one service writes a table, everyone else reads it through an API or a copy. That is slower and it makes the coupling visible, which is what allows it to be removed.