Constraints have two primary advantages. First, they are declarative in nature. With the exception of the Boolean expressions that you use to specify record-level constraints, they require no programming. Compared to client-side validation and triggers, constraints are simple to create and document.
The second major advantage of constraints is that they reside in the data dictionary. As a result, ADS enforces the constraints regardless of how the data is accessed. No matter how many client applications you have that use the database, the constraints within the data dictionary are enforced.
That constraints reside on the server has another benefit. Specifically, if you need to change one or more constraints after deployment, you only need to update the data dictionary. No changes to client applications are necessary.