In this course we will learn how to decide that the two tables we see here represent the same information as the single account table, but without any redundant information. In this new scheme we have a table with names and account numbers, representing the owners and their accounts. People can have several accounts, although in this example table nobody has two accounts. The second table gives for each account the balance. Every account has only one balance and hence every account number is allowed to occur only once in this table. The account number is a key for this table.

This example also illustrates another very important aspect of our study of databases: You cannot see everything in an example table or instance as we call it.
You need to know what the properties of the database are by studying the description of the database. Constraints defined for a database are properties that must always hold, in every instance. We have an instance here in which every person has exactly one account, but this does not mean that in the database every person can have only one account. A constraint is always specified at the schema level, not the instance level. If a constraint holds in a database it is a property of every instance. And if there is one instance that we consider to be a valid instance, and in which the constraint does not hold then the constraint does not hold for the database.