1、精品 料推荐第二章实体 - 联系 模型( 概念数据库设计)2 1 数据库设计过程需求分析ER模型ODL概念数据库设计逻辑数据库设计物理设计阶段数据库实施阶段数据库运行与维护阶段确定存储哪些数据,建立哪些应用,常用的操作及对象有哪些等。对需求分析所得到数据的更高层的抽象描述。将概念模型所描述的数据映 射为 某个 特定 的DBMS模式数据。将E-R模型转换为关系模型。确定物理结构,选定DBMS 。建 立 实 际 数 据 库 结构。调试及运行。22 基本概念221 1976 年, P.P.S.Chen 提出 E-R 模型( Entity-Relationship Model),用 E-R 图来描述概
2、念模型。观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。222 基本概念(1)实体 (Entity) :客观存在并可相互区分的事物叫实体。如学生张三、工人李四、计算机系、数据库概论。(2)属性 (Attribute) :实体所具有的某一特性。 一个实体可以由若干个属性来刻画。例如,学生可由学号、姓名、年龄、系、年级等组成。(4)域(Domain) :属性的取值范围。例如,性别的域为(男、女),月份的1精品 料推荐域为 1 到 12 的整数。(5)实体型 (Entity Type) :实体名与其属性名集合共同构成实体型。例,学生(学号、姓名、年龄、性别、系、年级) 。注意实体型与
3、实体(值)之间的区别,后者是前者的一个特例。如学生 (9808100 ,王平, 21,男,计算机系, 2) 是一个实体。(6)实体集 (Entity Set) :同型实体的集合称为实体集。如全体学生。联系 (Relationship) :实体之间的相互关联。如学生与老师间的授课关系,学生与学生间有班长关系。联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。同类联系的集合称为联系集。(7)元或度( Degree):参与联系的实体集的个数称为联系的元。如学生选修课程是二元联系,供应商向工程供应零件则是三元联系。用椭圆表示实体的属性姓名学号系别学生用 无 向 边 把实
4、 体 与 其 属性连接起来用矩形表示实体集, 在框内写上实体名课程名先修课主讲老师选修课程将参与联系的实体用线段连接成绩用菱形表示实体间的联系(8)码 (Key) :A、候选码:关系中的某一属性或属性组的值能唯一地标识一个元组,称该属性或属性组为候选码。B、主码:一个关系有多个候选码,从中选定一个用来区别同一实体集中的不同实体,称作主码。一个实体集中任意两个实体在主码上的取值不能相同。如学号是学生实体的码。通讯录(姓名,邮编,地址,电话,Email ,BP)C、外码:D、全码:关系模型中所有属性组是这个关系模式的候选码,称为全码。姓名学号系别课程名先修课主讲老师学生选修课程2精品 料推荐(9)
5、参与( Participation ):实体集之间的关联称为参与,即实体参与联系。如王军选修“数据库基础” ,表示实体“王军”与 “数据库基础” 参与了联系“选修”。如果实体集 E 中的每个实体都参与到联系集 R 中的至少一个联系,则称 E 全部参与 R。如果实体集 E 中只有部分实体参与到联系集 R 的联系中,则称 E 部分参与 R。如“职工”与“部门”之间的“管理”联系, “职工”实体集部分参与,而“部门”实体集完全参与。(10)角色( Role):实体在联系中的作用称为实体的角色。当同一个实体集不止一次参与一个联系集时, 为区别各实体的参与联系的方式, 需要显式指明其角色。如学生与班长关
6、系, 职工与职工之间的经理关系, 课程之间的先修关系。管理员工管理工作223 属性类型( 1)简单属性 :不可再分的属性。如学号、年龄、性别。( 2) 复合( Composite)属性:可以划分为更小的属性。可以把相关属性聚集起来,使模型更清晰。如电话号码 =区号 +本地号码( 3)单值属性:每一个特定的实体在该属性上的取值唯一。如学生的学号,年龄、性别、系别等。( 4)多值属性 : 某个特定的实体在该属性上的有多于一个的取值。 如学生(学号,所选课程,联系电话),的“所选课程”,“联系电话”。( 5)NULL属性 :Null 表示“无意义”,当实体在某个属性上没有值时设为 Null 。如通讯
7、录(姓名, email ,电话, BP),若某人没有 email 地址,则在 email属性上取值为 null 。null表示“值未知”,即值存在,但目前没有获得该信息。如职工(姓名,部门,工种,身份证) ,如果目前不知道职工身份证号码,则设身份证值为 null 。实体完整性:作为主码的属性上取值不能为null 。( 6)派生( Derived )属性与基属性 : 可以从其他相关的属性或实体派生出来的属性值。如学生(学号,姓名,平均成绩) ,选课(学号,课程号,成绩) ,则平均成绩可由学生所选课程的总成绩除以课程总数来得到。称平均成绩为派生属性,而成绩为基属性,或存储属性。数据库中,一般只存基
8、属性值,而派生属性只存其定义或依赖关系,用到时再从基属性中计算出来。基本表VS视图多值属性用双椭圆表示,或用双线与实体相连。姓名选修课程学生派生属性用虚椭圆表示,或用虚线与实体相连3精品 料推荐姓名平均成绩系别学生23 映射约束231 映射的基数( Mapping Cardinalities):实体之间的联系的数量, 即一个实体通过一个联系集能与另一实体集相关联的实体的数目。可以有一对一的( 1:1 ),一对多的( 1:m),多对多的( m:n)几种情况。在 E-R 图中,用箭头或线段来表示联系的映射基数。ARBARB单方实体集联系 R 从 A 到 B 是一联系 R 从 A 到 B 是多对一或
9、多对一对多或一对多( 1)二元联系集的映射基数:一对一、一对多、多对多( 2)一个实体集内的二元联系:一对一、一对多、多对多( 3)多个实体集间联系的情况232 存在依赖( Existence Dependency )如果实体 x 的存在依赖于实体y 的存在,则称 x 存在依赖于 y。y 称作支配实体, x 称作从属实体。如果 y 被删除,则 x 也要被删除。考虑员工亲属的例子233 弱实体集( Weak Entity Set)如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集。弱 实 体 集 与 其 拥 有 者 之 间 的 联 系 称 作 标 识 性 联 系 (identi
10、fyingrelationship)。弱实体集与强实体集之间是一对多的联系。弱实体集必然存在依赖于强实体集( Strong Entity Set) 。存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码。如实体集信用卡(信用卡号,客户帐号,金额) ,它存在依赖于客户帐号实体集,但信用卡有自己的主码信用卡号。4精品 料推荐234 为什么使用弱实体集通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?( 1)避免数据冗余(强实体集码重复) ,以及因此带来的数据的不一致性。( 2)弱实体集反映了一个实体对其它实体依赖的逻辑结构。( 3)弱实体集可以随它们的强实体集的删除而
11、自动删除。( 4)弱实体集可以物理地随它们的强实体集存储。亲属名名称亲属员工有235 复合实体复合实体的主码一般由两个( 或两个以上 ) 联系236 实体的超类与子类举例:飞行员工与普通员工。超类名称子类 1子类 22 4 数据抽象与E-R 模型设计步骤( 1)数据抽象( 2)设计局部 E-R 模型( 3)设计全局 E-R 模型A、合并局部 E-R 图,生成初步 E-R 图:可能发生的问题,属性冲突,名称冲突,结构冲突。B、消除冗余生成E-R 图25 将 E-R 模型转换成数据库一般规则( 1)将每一个实体转换成一个关系。( 2)所有主码必须定义非空。( 3)对于二元联系,按照规则定义外码。5精品 料推荐A、一对多:将“一”表中的主码作为外码放在 “多”表中,外码总是在 “多”的一方。B、弱实体:将父表的主码作为外码放在弱实体中。弱实体的主码由父表的主码与弱实体本身的候选码组成。也可以为弱实体建立新的独立的标识符ID。C、一对一:将一个表的主码作为外码放在另一个表中,外码通常是放在操作比较频繁的表中。也可以将两个实体合并成一个实体。D、多对多:建立复合实体, 复合实体的主码由两个父实体的主码复合组成。复合实体的主码也是外码。6