ER数据模型
E-R数据模型(EntityRelationshipdatamodel),即实体联系数据模型,于1976年由P.P.Chen首先提出。
1.实体(entity)
凡是可以互相区别而可以被人们识别的事、物、概念等统统抽象为实体。
具有共性的一类实体可以划分为一个实体集(EntitySet)。
一般以大写字母表示实体集,小写字母表示实体。以学生为例,设以ES表示学生实体集,e表示学生实体,则ES={e|e是学生}。
基本概念 2. 属性(attribute):实体一般具有若干特征,称之为实体的属性 单域的简单属性 多域的组合属性 单值的(Single-valued) 多值的(multi-valued) 实体键(entity key) 实体主键(entity primary key) 基本概念 基本概念 ER 图(E-R diagram) 矩形框代表实体,双线矩形框代表弱实体,菱形框代表联系, 联系与实体相联的弧上所注明的1、N、M、P等表示联系的基数比。 如果弧为双线,则表示该实体全参与;如果弧为单线,则表示该实体部分参与。 ER 图(E-R diagram) 举例: 工作于 部门 包含 职工 工程 供应商 零件 供应 组成 1 M M N 主管 1 1 M N M N P ER 图(E-R diagram) 属性:圆角矩形框 组成键的属性:加有短垂线 组合属性:属性结构 职工 性别 职工号 姓 名 ER 图 弱实体集:依赖于其他实体集的存在而存在的实体集,其组成键的属性中的一些或全部属于另一个实体集。 1 职工 家属 设置 M 基本ER数据模型与扩充ER数据模型 以实体、属性和联系三个抽象概念为基础的E-R数据模型是基本E-R数据模型。为了满足新的应用需求和表达更多的语义,E-R数据模型历经了不少扩充。下面将介绍扩充E-R数据模型(Extended E-R data model,简称EER data model)。 扩充ER数据模型(EER) 1. 特殊化(Specialization)和普遍化(generalization) 从普遍到特殊的过程,叫做特殊化。即一个实体集可以按照某一特征区分为几个子实体集的过程。如:学生:专科生,本科生,研究生 相反的过程称为普遍化 如:将学生、教师、职工这些实体集概括为“人” 扩充ER数据模型(EER) 设有实体集E,如F是E的某些真子集的集合,即F={Si|Si?E,i=1,…,n},则称F是E的一个特殊化,E是S1、S2、…、Sn的超实体集,S1、S2、…、Sn称为E的子实体集。若∪ni=1Si=E,则称F是E的全(total)特殊化;否则,F是E的部分(partial)特殊化。如Si∩Sj=Φ,i≠j,则F是不相交(disjoint)的特殊化;否则,F是重叠(overlapping)的特殊化。 子实体集继承(inherit)超实体集的所有属性和联系。 扩充ER数据模型(EER) 图形表示 实体与实体之间连线上的∪符号表示特殊化, 圆圈中的d表示不相交特殊化,圆圈中的o表示重叠特殊化。 超实体集与圆圈的联线若是双线,则表示全特殊化;若是单线,则表示部分特殊化。 扩充ER数据模型(EER) 举例 O 文体成员 科协成员 d 学生 本科生 研究生 博士生 扩充ER数据模型(EER) 2. 聚集(aggregation) 在基本E-R数据模型中,只有实体才能参与联系,不允许联系参与联系。在EER数据模型中,可以把联系看成由参与联系的实体组合而成的新的实体,其属性为参与联系的实体的属性和联系的属性的并。这种新的实体称为参与联系的实体的聚集。有了聚集这个抽象概念,联系也可以参与联系。 扩充ER数据模型(EER) 图形表示 科研项目 研究所 公司 合作 大学 承担 扩充ER数据模型(EER) 3. 范畴(category) 在模拟现实世界时,有时要用到由不同类型的实体组成的实体集,例如车主这个实体集的成员可能是单位,也可能是个人。这种由不同类型实体组成的实体集称之为范畴。 设E1、E2、…、En是n个不同类型的实体集,则范畴T可定义为: T?(E1∪E2∪…∪En)即T是多个超类并集的子集。E1、E2、…、En也称为T的超实体集。 扩充ER数据模型(EER) 上图中帐户是个范畴,可以是单位,也可以是个人。圆圈中的∪表示并操作。范畴也继承其超实体集的属性,但与子实体集的继承规则不一样。范畴的继承是有选择性的。 单位 个人 U 帐户 * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
原创力文档

文档评论(0)