标识实体间关系
关系模型数据库中每个对象并非孤立的,它们是相互关联的。在设计数据库时,要标识出对象之间的关系。
? 学生与班级、系部有从属关系。即学生从属于班级,班级从属于系部。 ? 教师与系部有从属关系。即教师从属于系部。 ? 课程与系部有从属关系。即课程从属于系部。
? 成绩与学生、课程有从属关系。即成绩既从属于学生,也从属于课程。
? 学生与课程存在关系,即每个学期,每个学生根据自己的实际情况,要选择课程学
习。
? 教师与课程存在关系,即每个学期,根据教师的实际情况,系部管理者要分配教学
任务(课程)给每个教师,实施教学。
标识实体间关系 系部11组成N教师M组成N任课N班级1N课程1N选组成M修考试N学生
1取得N成绩 任务1-3 “学分制教学管理系统”逻辑设计
要从设计好的系统E-R图概念设计模型导出系统的逻辑设计模型,包括所有的数据表,每个表的所有列,主外键定义等,并且所有命名必须符合规范, E-R图转换为数据表
将E-R图转换为表格的步骤如下: 实体映射成表 标识主键字段 确定外键字段 ① 1:N关系 ② M:N关系 确定普通字段
根据E-R图中实体的属性,以及该属性在系统中信息表达的具体要求,映射成实体所对应数据表的字段,并明确字段的名称、数据类型、长度、是否为空、默认值等。 外键
① 1:N关系 外键(Forgeign Key)关系体现了实体之间的“1对多”关系,构成了主从表关系,主外键关系主要是用来维护两个表之间的数据一致性,是一种约束关系。可以通过在从表中增加一个字段(对应主表中的主键)作为外键。例如,班级与学生是一对多的关系,学生表中需要一个表示学生【班级】属性的字段,只要将班级表中的主键【班级编码】字段设置到学生表中作为外键即可。 ② M:N关系
多对多关系。这时应该将多对多关系映射成一张新表,这张表应包括两个多对多关联实体
表的所有主键字段,这两个主键的所有字段成为新表的主键。例如,学生与课程的关系(学生选课)是多对多关系,此时应该将“学生选课”这个多对多关系映射成一张新表。 ① 确定命名规范 对象类型 数据库名 表名 字段名 视图名 主键 外键 检查约束 唯一约束 默认值 索引 存储过程 触发器 游标 局部变量 命名规则 DB_英文名 TB_英文名 前缀 DB_ TB_ 范例 DB_TeachingSystem TB_Student 有意义的英文 单词连接在一起 首字母大写 备注 英文名(帕斯卡 ??CourseName 法) ㏒???琰茞??ü VW_英文名 PK_表名_列名 FK_表名_列名 CK_表名_列名 UK_表名_列名 VW_ PK_ FK_ CK_ UK_ VW_Student PK_CourseID FK_CourseID CK_CourseID UK_CourseName DEF_CourseGrade IX_CourseName SP_GradeProcess TR_SelectCourse CUR_Student @CourseID 多列用_隔开 DEF_表名_列名 DEF_ IX_表名_列名 SP_英文名 TR_英文名 CUR_英文名 @英文名 IX_ SP_ TR_ CUR_ @ 有意义的英文 多个单词一起 首字母大写 ② 构建逻辑模型 实体映射成表及主键
② 构建逻辑模型 确定外键字段
从下面系统E-R模型图可以看出,存在实体【教师】与【课程】和【学生】与【课程】间两个“多对多”的关系,根据前面相关知识描述,应该将每个“多对多”关系映射成一张新表,变成两个“一对多”关系。
1N组成系部教师 M1 组成任课 NN 班级课程 11 组成考试 NN
1N 取得学生成绩
用一个新的实体【课程班】来表征实体【教师】与【课程】之间“多对多”的“任课”关系,从而构成【教师】与【课程班】和【课程】与【课程班】之间的两个“一对多”关系,如下图所示。 1N组成系部教师
1M 组成任课课程班 NN
课程课程班编码 任课教师班级课程 学年学期已选数
课程班教学时间 最大数11组成考试 期末比例教学地点 NN1N期中比例平时比例取得学生成绩
实体【学生】与【课程】间的“多对多”关系 1N1N1组成组成系部N系部N教师1组成教师组成系部教师教师 系部11 11任课任课 任课任课1111NNNN 组成组成组成组成 NNNN课程班课程班课程班课程班
NNNN
组成组成组成组成班级班级班级 班级1111
课程课程11课程课程 11组成 组成组成组成1111NN?N 考试?考试修N考试考试修选选NN NN1N1N 学生1成绩N1N取得取得学生成绩取得取得成绩学生成绩M选修NM选修N1组成NN择选NNMMMM选择N1成组N
课程班编码选满标志”的记录的相关内同样,学生的“选课信息”需要在系统数据库中记录下来,“选课信息
学年容如下表所示。因此,第一项目小组考虑用一个新的实体【选课信息】来表征实体【学生】
学期已选数与【课程班】间的“多对多”关系,
教学时间 最大数1N组成系部教师
期末比例教学地点 1期中比例平时比例 任课1 N组成
N课程班课程班编码
N 组成班级学号选课信息 1
选课信息课程1 选课日期组成 1N 考试N
1N取得学生成绩 完成各表的逻辑设计
1组成NN组成1
系部信息表
相关推荐: