In short : database should enforce constraints.
Why :
- Easier. For ex. to have a constraint set on a particular data column there is only one place to set it : the column itself. The data might come from various sources but the check is put where the data is finally put to rest.
- Integrity. Database should be responsible for the data it hosts. An inconsistent database is as good as no database.
- Flexibility. New UI development environments come all too frequently. If database puts up its hand to say that it will take care of the constraints , the front end development and functional testing are easier.