Codd的数据库论文精华

关系这个词在这里使用的是其被广泛认可的数学意义。给定集合S1,S2,……,Sn(这些集合没有必要一定是不同的),如果R是一个满足如下条件的n元组集合:其每个元素的第一个元素来自S1,第二个元素来自集合S2,以此类推,那么R就是这n个集合(S1,S2,……,Sn)上的一个关系。我们用Sj来表示R的第j个域。正如上面所定义,R被称作是n级的。1级的关系通常叫做一元关系,2级的被叫做二元关系,3级的被叫做三元关系,而n级的叫n元关系。(更简单地说,R是S1,S2,……,Sn这n个集合的笛卡尔乘积的一个子集)

Codd的数据库论文精华_第1张图片
投影。假设我们从一个关系中选出特定的某些列(剔除其它的列),然后从结果中删除数组中的任何行重复。最终的数组表示了一个叫做给定关系的投影的关系。
选择算子π被用来获取任何所需的排列、投影或两个操作的组合。因此,如果L是K个标记的列表L = i1, i2, …, ik,R是一个n元关系(n>=k),那么πL(R)一个k元关系,这个关系的第j列是R的第ij列(j=1, 2, …,k),同时结果的行中的冗余也将移除。考虑图1中的关系supply,图4展示了这个关系的置换投影。注意,在这个特殊的情况下,投影比产生该投影的关系的n元组要少。

Codd的数据库论文精华_第2张图片
连接。假设给定两个二元关系,它们有一部门共同域。在什么情况下我们可以结合这两个关系,以形成一个三元关系,其中保留了所给关系的所有信息?图5中的例子显示了两个可以进行无信息损失连接的两个关系R,S,图6显示了R和S的连接。如果存在一个三元关系U,满足 π12(U ) = R 且 π23 (U) = S.,则二元关系R和S则是可连接的。任意这样的三元关系都叫做R和S的连接。如果R,S是二元关系且π2(R)=π1(S),则R和S是可连接的。自然连接是肯定存在的一个连接,定义为
R*S = {(a, b, c):R(a, b) A S(b, c))
其中,如果(a,b)是R的一个成员且和S(b,c)相似,则R(a,b)的值是真。即
π12 (R*S) = R 且 π23 (R*S) = S.

你可能感兴趣的:(数据库)