Here is an example of a table representing bank account information. It seems logical at first: for every bank account we have an owner, the account number and the balance. However, we see that Smith and Jones are joint owners of account A-215. Luckily for us the balance is listed as 540 twice, otherwise there would have been an error.
But of course the fact that the balance is stored twice and that there is thus a risk of having incorrect information is a sign that this is a bad database design. And even if the database is implemented correctly and always keeps the two balances of A-215 the same, the database has to do twice the amount of work.
We are going to study constraints because we want to design databases that are better than this. We want to avoid redundancy whenever we can.