关系型数据库设计与分析...docVIP

  • 0
  • 0
  • 约1.14万字
  • 约 34页
  • 2019-08-03 发布于浙江
  • 举报
关系型数据库设计笔记 实体关系模型(Entity-Relationship,简称ER),是目前应用最广泛的概念设计模型。它将现实世界的信息结构统一用属性、实体以及它们之间的联系来描述。 实体 (Entity)。客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。 属性 (Attribute)。属性为实体的某一方面特征的抽象表示。如教师实体可由教师编号、姓名、年龄、性别、职称等属性来刻画。 域 (Domain)。属性的取值范围称为属性的域。 如:教师实体中,属性性别的域为男和女。 主码 (Primary Key)。码也称关键字,它是能够唯一标识一个实体的属性集。如:教师实体的主码为教师编号。 联系 (Relationship)。现实世界的事物总是存在着这样或那样的联系,这种联系必然要在信息世界中得到反映。事物之间的联系可分为两类:一类是实体内部的联系,如组成实体的各属性之间的关系;另一类是实体之间的联系,即不同实体之间的联系。 两个实体集之间的联系 1:1 联系:如果对于A中的一个实体,B中至多有一个实体与其发生联系,反之,B中的每一实体至多对应A中一个实体,则称A与B是1:1联系。 1:n 联系:如果对于A中的每一实体,实体B中有一个以上实体与之发生联系,反之,B中的每一实体至多只能对应于A中的一个实体,则称A与B是1:n联系。 m:n 联系:如果A中至少有一实体对应于B中一个以上实体,反之,B中也至少有一个实体对应于A中一个以上实体,则称A与B为m:n联系。 图 ( a ) 1 ∶ 1 联系 ( b ) 1 ∶ n 联系 ( c ) m ∶ n 联系 1 实体型 A 实体型 A 实体型 A 联系名 联系名 联系名 实体型 B 实体型 B 实体型 B 1 1 n n m 6.2 两个实体型之间的三类联系 实体关系模型的表示方法 ER图是直观表示概念模型的工具,ER图的基本思想就是分别用矩形框、椭圆形框和菱形框表示实体、属性和联系,使用无向边将属性与其相应的实体连接起来,并将联系分别和有关实体相连接,注明联系类型 设计局部ER图 [例6.1] 在简单的教务管理系统中,有如下语义约束: 一个学生可选修多门课程,一门课程可被多个学生选修。因此学生和课程之间是多对多的联系; 一个教师可讲授多门课程,一门课程可以由多个教师讲授。因此教师和课程之间也是多对多的联系; 一个系可有多个教师,一个教师只能属于一个系。因此系和教师是之间一对多的联系,同样系和学生之间也是一对多的联系。 综合成初步ER图 [例6.2] 以[例6.1]中教务管理系统的两个局部ER图为例,来说明如何消除各局部ER图之间的冲突,进行局部ER模型的合并,从而生成初步ER图。 首先,这两个局部ER图中存在着命名冲突,学生选课局部ER图中的实体“系”与教师任课局部ER图中的实体“单位”,都是指“系”,即所谓的异名同义,合并后统一改为“系”,这样属性“名称”和“单位名”即可统一为“系名” 其次,还存在着结构冲突,实体“系”和实体“课程” 在两个不同应用中的属性组成不同,合并后这两个实体的属性组成为原来局部ER图中的同名实体属性的并集。 解决上述冲突后,合并两个局部ER图,生成如图6-17所示的初步的全局ER图 优化成基本ER图 一个好的ER模式,除了能够准确、全面的反映用户需求之外,还应该达到下列要求: 实体类型的个数应尽量少; 实体类型所含属性个数应尽可能少; 实体类型间的联系应无冗余; 优化初步ER图的方法: 实体类型的合并,指相关实体类型的合并。因为实体类型最终要转换成关系模式,涉及多个实体类型的信息要通过连接操作获得,所以,减少实体类型个数,可减少连接的开销,提高处理速度。一般把一对一联系的两个实体类型合并。 消除冗余,在这里指冗余的数据和实体之间冗余的联系。冗余的数据是指可由基本的数据导出的数据,冗余的联系是由其他的联系导出的联系。在前面消除冲突合并后得到的初步ER图中,可能存在冗余的数据或冗余的联系。冗余的存在容易破坏数据库的完整性,给数据库的维护增加困难,应该消除。 [例6.3] 对[例6.2]中生成的初步ER图进行分析优化。 在图6-17所示的初步ER图中,“课程”实体中的属性“教师号”可由“讲授”这个教师与课程之间的联系导出,而学生的平均成绩可由“选修”联系中的属性“成绩”中计算出来,所以“课程”实体中的 “教师号” 与“学生”实体中的“平均成绩”均属于冗余数据。 另外,“系”和“课程”之间的联系“开课”,可以由“系”和“教师”之间的“属于”联系与“教师”和“课

文档评论(0)

1亿VIP精品文档

相关文档