学员基本信息系统的数据库设计一, 需求说明如果要实现一个员工培训班的学员基本信息系统,在此系统中涉及学员、图书、教师、课程、部门的管理。此系统要求能够记录学员借阅情况、选课情况、所属部门情况、教师授课情况以及学员、图书、教师、课程、部门的基本情况,系统具体要求如下: 一个部门由多个学员组成 一个学员只属于一个部门 一个学员可以借阅多本图书 一本图书可以被多名学员借阅 一名学员可以由多名教师教授 一名教师可以教授多名学员 一门课程可以由多名教师讲授 一名教师可以讲授多门课程 一名学员可以选修多门课程 一门课程可以被多名学员选修数据库中要记录学员借阅图书情况、选课情况、所属部门情况、教师授课情况以及学员、图书、教师、课程、部门的基本情况。除了对这些数据进行正常维护之外,还需产生如下报表: 学员借阅图书表,内容包括学号,姓名,图书号,图书名 学员选课情况表,内容包括学号,姓名,课程号,课程名 教师授课表,内容包括教师名,教师号,课程名,课程号学员部门情况表,内容包括学号,姓名,部门名,部门号
二, 数据库结构设计1, 概念结构设计 对上述需求作进一步分析,产生概念结构设计的E-R模型。这里采用自底向上的设计方法。自底向上设计需要先定义每个局部应用的概念结构,再按一定规则把它们集成起来,从而得到全局概念模型。对于此学员基本信息系统,可以细分为多个局部结构,由学员这个实体发出,设计出学员借阅图书结构,学员选课结构结构,学员所属部门结构,教师教授学员结构,这些局部概念结构,再把这些局部结构集成为一个大的全局概念模型。学员:用于描述一名学员的基本信息,由学号来标识图书:用于描述一本图书的基本信息,由图书号来标识教师:用于描述一名教师的基本信息,由教师号来标识课程:用于描述一个课程的基本信息,由课程号来标识部门:用于描述一个部门的基本信息,由部门号来标识由于一个部门由多个学员组成,一个学员只属于一个部门,因此,部门和学员之间是一对多的联系;由于一个学员可以借阅多本图书,一本图书可以被多名学员借阅,因此,图书和学员之间是多对多的联系;由于一名学员可以由多名教师教授,一名教师可以教授多名学员,因此,教师和学员之间是多对多的联系;由于一门课程可由多名教师教授,一名教师可以讲授多门课程,因此,教师和课程之间是多对多的联系;由于一名学员可以选修多门课程,一门课程可被多名学员选修,因此,学员和课程之间是多对多的联系。其基本E-R模型如图所示: 部门
组成
图书 借阅 学员 教授 教师 选课 授课 课程经分析,此系统中各实体所含基本属性如下:学员:学号,姓名,年龄,性别课程:课程号,课程名,学分部门:部门号,部门名,联系电话教师:教师号,教师名,职称图书:图书号,图书名,作者2, 逻辑结构设计 有了基本的E-R模型可进行逻辑结构设计,也就是设计基本的关系模式。设计基本关系模式主要从E-R模型出发,将其直接转换为关系模式。根据转换规则,这个E-R模型转换的关系模式为:学员:(学号,姓名,年龄,性别),主码为学号课程:(课程号,课程名,学分),主码为课程号部门:(部门号,部门名,联系电话),主码为部门号教师:(教师号,教师名,职称),主码为教师号图书:(图书号,图书名,作者),主码为图书号借阅:(学号,图书号,借书日期),主码为(学号,图书号)教授:(教师号,学号),主码为(教师号,学号)选课:(学号,课程号,成绩),主码为(学号,课程号)授课:(课程号,教师号,授课类别),主码为(课程号,教师号)组成:(部门号,学号),主码为(部门号,学号) 现在分析关系模式,目前每个关系模式中的每个非主码属性都完全由主码唯一确定,因此,上述所有这些关系模式都是第三范式的关系模式。 现在确定好每个关系模式的主码后,要确定关系模式的外码。应在“借阅”关系中添加“学号”和“图书号”两个外码,它们分别引用“学员”关系中的“学号”和“图书”关系中的“图书号”。应在“教授”关系中添加“教师号”和“学号”两个外码,它们分别引用“教师”关系中的“教师号”和“学员”关系中的“学号”。应在“选课”关系中添加“学号”和“课程号”两个外码,它们分别引用“学员”关系中的“学号”和“课程”关系中的“课程号”。应在“授课”关系中添加“课程号”和“教师号”两个外码,它们分别引用“课程”中的“课程号”和“教师”中的“教师号”。应在“组成”关系中添加“部门号”和“学号”两个外码,它们分别引用“部门”中的“部门号”和“学员”中的“学号”。最后确定表中的各属性的详细信息,包括数据类型和长度等。1, 学员表学号:普通编码定长字符串型,10字节,主码姓名:普通编码定长字符串型,10字节,非空年龄:数值型,3字节,非空性别:普通编码定长字符串型,2字节,非空2, 教师表教师号:普通编码定长字符串型,10字节,主码教师名:普通编码定长字符串型,10字节,非空职称:普通编码定长字符串型,6字节,取值范围为{教授,副教授,讲师,助教}3, 课程表课程号:普通编码定长字符串型,10字节,主码课程名:普通编码定长字符串型,20字节,非空学分:数值型,4字节,非空4, 图书表图书号:普通编码定长字符串型,10字节,主码图书名:普通编码定长字符串型,20字节,非空作者:普通编码定长字符串型,10字节,非空5, 部门表部门号:普通编码定长字符串型,10字节,主码部门名:普通编码定长字符串型,20字节,非空联系电话:数值型,12字节,非空6, 借阅表学号:普通编码定长字符串型,10字节,主码,也是引用学员表的外码图书号:普通编码定长字符串型,10字节,主码,也是引用图书表的外码借书日期:数值型,14字节,非空7, 教授表教师号:普通编码定长字符串型,10字节,主码,也是引教师生表的外码学号:普通编码定长字符串型,10字节,主码,也是引用学员表的外码8, 选课表学号:普通编码定长字符串型,10字节,主码,也是引用学员表的外码课程号:普通编码定长字符串型,10字节,主码,也是引用课程表的外码成绩:数值型,3字节,非空9, 授课表课程号:普通编码定长字符串型,10字节,主码,也是引用课程表的外码教师号:普通编码定长字符串型,10字节,主码,也是引用教师表的外码授课类别:普通编码定长字符串型,6字节,非空10,组成表部门号:普通编码定长字符串型,10字节,主码,也是引用部门表的外码学号:普通编码定长字符串型,10字节,主码,也是引用学员表的外码435