(数)域 D1, D2, ... Dk 的笛卡儿乘积,标记 D1 × D2 × ... × Dk 就是所有 k元记录 v1, v2, ... vk 的集合,这里 v1 ∈ D1,v1 ∈ D1,... vk∈ Dk。
例如,假设我们有 k=2,D1={0,1} 和 D2={a,b,c} 那么 D1 × D2 是 {(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}。
一个关系就是一个或者多个(数)域的笛卡儿乘积的任意子集:R &sube D1 × D2 × ... × Dk。
例如 {(0,a),(0,b),(1,a)} 是一个关系;它实际上是上面提到的 D1 × D2 的子集。
关系的成员叫做记录。某个笛卡儿乘积 D1 × D2 × ... × Dk 的每个关系都有 k 元,因而我们有一个 k元记录的集合。
一个关系可以看作一个表(正如我们已经说过的,还记得 供应商和部件数据库 里,每条记录被一行代表而每列对应记录里的一个元素)。赋予列(叫字段/属性)以名称导致一个关系设计的定义。
一个关系设计 R 是一个有限属性 A1,A2,... Ak的集合。对每个属性 Ai,1 <= i <= k,存在一个(数)域 Di,该属性的值是从这个(数)域里面取出来的。我们经常把关系设计写成 R(A1, A2, ... Ak)。
注意:一个关系设计只是某种模板,而一个关系是一个关系设计的实例。关系由记录组成(因而可以看作是一个表);而关系设计可不能这样看。