一、 关系的解释
数据模型中的规则即为关系,关系被表示成一条连接两个实体的线段,用来说明实体间的规则或导航路径。如果两个实体分别为“Employee”(员工)和“Department”(部门),则关系可以描述的规则有“每位员工必须服务于一个部门“”一个部门可以拥有一位或多位员工“。
二、关系的类型
规则可以是数据规则,也可以是行为规则。数据规则指示数据间如何关联,行为规则指示当属性包含有某特定值时,需要采取什么操作。
存在两种类型的数据规则,结构完整型(structuralintegrity,SI)和参照完整型(referential integrity,RI)。结构规则(又被称为基数规则)定义了参与某个关系的实体实例的数量。参照完整型规则专注于确保取值的有效性。
行为规则指示了当属性包含有某特定值时,需要采取什么操作。例如:新生一学期最多只能注册申请18学分;如果一个订单包含5件以上商品,就可以享受10%的优惠;
用数据模型可以进行数据描述并指定相应的数据规则,但不能在数据模型上强加行为规则。
概念关系是一种高级别的规则或被关联的一些关键概念间的导航路径。逻辑关系则强调更多细节的业务规则,或者是逻辑实体间的导航路径。物理关系是具体的,依赖于实现技术的规则或作为被关联的物理结构间的导航路径,这些物理关系将最终变为RDBMS中的数据库约束,或变为 MongoDB 这种基于文档的数据库中的参照。
三、基数的解释
对于两个实体间的关系,基数表示一个实体的多少实例与另一个实体的实例发生关联,基数由出现在关系域两端的符号表示,基数指定了一种可以被实施的数据规则。如果不存在基数,我们只能说关系是用于连接两个实体的规则。
在读关系时,对于开始的父实例一侧,我通常还会使用“每个”,因为词语“每个”更便于指定一个实体实例与另一实体的多少个实例相关联,对我而言“每个”是比“一个”更喜欢使用的词语。
建议使用的关系标签:包含、为....工作、拥有、分类、应用于
应避免使用的标签:有、关联、参与、联系、是
四、递归的解释
归关系是存在于来自同一实体的实例间的规则。一对多的递归关系描述的是一种层次结构,而多对多的则描述的是网状结构。在层次结构中,一个实体实例最多只能有一个父关系,而网状结构中,一个实体实例可以有不止一个父关系。
五、子类型的解释
【备注说明】关系 体现的是实体间的关联关系。通过关系我们可以了解实体间的业务规则,实体间的数据关系。