"Foreign keys" are integrity constraints enforcing that the value of the attribute set is drawn from a "candidate key" in another relation. For example, in the Order relation the attribute Customer ID is a foreign key. A "join" is the operation that draws on information from several relations at once. By joining relvars from the example above we could "query" the database for all of the Customers, Orders, and Invoices. If we only wanted the tuples for a specific customer, we would specify this using a restriction condition.