最近在翻译一本数据库的教材,碰到Cardinality这个词,这个词在许多国内的数据库教材中不常见。查了一下英文资料以为颇有必要翻一下,
原文地址
内容以下:
Cardinality defines the numeric relationships between occurrences of the entities on either end of the relationship line.
基数是写在关系线两端 ,代表实体从一边经过关系能够获得另外一边实体的数量。
(翻译的太烂。。)
下面是一些实例:
LINK 这是0:0可选的关系,这样表达的意思就是:一个person
能够占用一个停车位(parking space),可是不必一个person有一个停车位,也不必一个停车位必须有一我的。虽然这个概念很简单,可是在数据库中实现却并不直接。你可能得令一个实体做为主表,使用触发器或者程序来限制在另外一张表里关联的记录数目。
SubType 这是1:0的关系;只有一方有选择性。意思就是说一我的多是一个程序员,那么一个程序员
必定是一我的。关系中强制方必须做为主表。跟前面同样,用触发器和程序来控制数据库。
Physical Segment 这是1:1的强制型关系。一我的必须有且仅有一个DNA序列,一个DNA序列也必须对应且仅对应一我的。
Possession 这是0:M(0对多)的可选型关系,意思就是一我的可能有0个电话,1个,或多个电话;某个电话可能没有主人,可是最多只能属于一我的。数据库里的实现方式:在phone表里设置一个能够为空的外键列,用这个列来关联person表。
Child 这是1:M的强制型关系,这是在数据库里最多见的一种关系类型,一我的多是或者不是一个会员,可是有可能对应好几个club的会员(假如member实体表述的是多个club里的全部会员记录),毫无疑问,一个会员必须是一我的。数据库里,会员表必须有一个强制不为空的外键。实现二实体间的关联。
这个例子不太好,假设全部人的名字不重复。
Characteristic 这是0:M的关联,在M的一端是强制性的。这意思是说,一我的必须有至少一个名字,能够有多个名字,一个名字可能属于某一我的(或没主人)。在数据库里,能够再name表里设置一个能够为空的外键指向person表,使用触发器或者程序来强制一个person必须至少有一个名字。
Paradox 这是1:M实体两边都是强制型的关系。
Association 这是M:M(多对多)的可选型关系。概念上是这样的:一我的能够选择为0个,1个或多个老板工做,一个老板能够有0个,1个或多个员工。通常对于M:M这种多对多关系在数据库里面拆分红两个0:M的关系。中间实体表名能够叫作employee,由于它是用来将person实体联系到老板实体的。