一、关联association:
但有的时候,把若干个实体型之间的联系抽象为一个实体型可能不太合适,这个时候你可以选择为这些实体型建立一个association,那么在生成PDM的时候,所有这些相关实体型的identifier都会被加入到association对应生成的表模型中。所以,说白了,其实association就是实体型的一种特例,用来在建模的时候更确切的表达实体间的关联信息。依赖dependent:
每一个Entity型都有自己的Identifier,如果两个Entity型之间发生关联时,其中一个Entity型的Identifier进入另一个Entity型并与该 Entity型中的Identifier共同组成其Identifier时,这种关联称为标定关联,也叫依赖性关联(dependent relationship)。一个Entity型的Identifier进入另一个Entity型后充当其非Identifier时,这种关联称为非标定关联,也叫非依赖关联。
二、约束的建模:
(一)、约束的分类大致可以分为:
1、键(key) 是实体集中唯一标识一个实体的属性或属性集。不存在两个实体其构成键的所有属性值都相同,但部分相同时允许的。2、单值约束(single-value-constraint)是指只在某种情况下有唯一性的要求。键是单值约束的主要来源,因为它要求一个实体集中的每个实体在键属性上都有唯一值。也有其他单值约束来源,如多对一联系。
eg:alter table userinfo
add unique index Index_unique using hash(name);
//执行如上语句就给userinfo表的name列加上了名为index_unique的唯一性约束,数据库在检查这个约束时使用hash算法
3、引用完整性约束(referential integrity constraint)是指要求某个对象所引用的值必须在数据库中实际存在。引用完整性与禁止悬挂指针或传统编程中的悬挂引用很相似(啥是禁止悬挂指针?自己查吧)
4、域约束(domain constraint)要求属性的值必须在一个具体的值集或范围里
5、一般约束(general constraint)是需要在数据库中得到满足的任意要求。
键是让用户无混淆的标识实体。另外,因为存储单值必存储集合容易,及时那个集合中只有一个成员也如此。所以,知道惟一值会节省空间和时间。引用完整性约束和键还支持可使数据访问更快的存储结构。
键约束和一般约束都是数据库模式的一部分。他们是数据库设计者连同结构设计(如实体和联系)一块申明的,一旦一个约束被申明了,对数据库的任何违法约束的插入或修改操作都是不允许的。