1高校成绩管理系统数据库设计与实现班级_________学号_________姓名_1、需求分析计算机已经深入到日常工作和生活的方方面面,成为我们学习和工作的得力助手,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。随着越来越多的应用软件出现,人们对它的要求也越来越高;虽然现在世界上的各种软件层出不穷,但它们依然不能满足用户的各种特殊需要,所以人们仍是不得不开发适合特殊需求的软件。高校成绩管理系统记录了一个大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是高校成绩正规化管理的重要途径。本软件控件均以中文形式表示,对普通程序使用者的查询提供简单方便的快捷操作,不需要技术含量。以SQLSERVER数据库管理系统为平台,通过设计数据库概念模型、逻辑模型以及利用标准SQL语言的数据库实现,掌握关系数据库系统的设计与实现方法,增强数据库设计和数据库应用系统开发能力。操作人员与维护人员应懂的SQL语言。运行环境:硬件环境:高性能计算机一台软件环境:A.windows系列B.MicrosoftSQLServer2008C.MicrosoftVisualStudio20101.1数据需求描述高校成绩管理系统数据库学生/教师管理人员登入查询处理管理人员学生情况教师情况课程信息顶层数据流图2学生1.1成绩功能查询2.1课程查询学号lh学年lh1.2按学年成绩统计1.3学号lh成绩查询1.4按课程查询成绩课程名lh1.5按成绩排名成绩lh学号lh教师教师编号lh2.2所授课程查询教师编号lh2.2所学课程学分统计2.3学号lh学号lh已修学分查询班级班级号lh2.4所设置课程查询班级lh课程信息任课教师信息学生信息班级信息详细数据流图1.2系统功能需求(1)学生成绩按每学年进行成绩统计;(2)学生成绩名次排定;(3)每门课程平均成绩统计;(4)学生所学课程及学分统计;(5)输入每个学生成绩时,自动生成该学生已修总学分;(6)学生成绩查询;(7)教师任课查询;(8)班级课程开设查询;系统功能图:31.3其他性能需求(1)可供多用户同时使用。(2)用户输入出错时,有错误提示。(3)安全性高。(4)存储需求描述。2、概念结构设计局部E-R图:成绩管理系统信息维护系统退出成绩查询学生信息查询班级排课信息查询教师任课信查询调用存储过程4教师教师编号教师姓名教师性别教师年龄职称联系电话课程课程编号课程名称教师姓名开课学期学时考试或考察学分学生学号学生姓名学生性别学生年龄生源所在地已修学分总数班级班级编号班级名称专业专业编号专业名称5学习学期课程成绩成绩教师姓名全局E-R图:课程教师教授课程编号课程名称教师姓名开课学期学时考试或考察学分教师编号教师姓名教师性别教师年龄职称联系电话学生学习学期课程成绩成绩教师姓名属于班级学号学生姓名学生性别学生年龄生源所在地已修学分总数班级编号mn开设mmnn1包含专业专业编号专业名称上课1nn班级名称mn63、逻辑结构设计3.1关系模式设计教师lh(教师编号lh、教师姓名lh、教师性别lh、教师年龄lh、职称lh、联系电话lh)上课lh(教师编号lh,班级编号lh)授课lh(教师编号lh,课程编号lh)课程lh(课程编号lh、课程名称lh、教师姓名lh、开课学期lh、学时lh、考试或考查lh、学分lh)学习lh(学号lh,课程编号lh,学期lh,课程名称lh,成绩lh,教师姓名lh)学生lh(学号lh、学生姓名lh、学生性别lh、学生年龄lh、生源所在地lh、已修学分总数lh,班级编号lh)地区信息,用于统计某一地区的学生数开设lh(课程编号lh,班级编号lh)班级lh(班级编号lh,班级名称lh,专业编号lh)专业lh(专业编号lh,专业名称lh)3.2数据类型定义(1)教师Teacherslh数据项名数据类型长度完整性约束教师编号char20主键,唯一,非空教师姓名char10教师性别char2教师年龄char20职称char10联系电话char20(2)上课Teachlh数据项名数据类型长度完整性约束教师编号char20主键,唯一,非空班级编号char20外键(3)授课Instructlh数据项名数据类型长度完整性约束教师编号char20主键,唯一,非空课程编号char20外键(4)课程Courseslh数据项名数据类型长度完整性约束课程编号char20主键,唯一,非空课程名char20教师姓名char107开课时间char20学时int100考试或考查char4学分int40(5)学习Studylh数据项名数据类型长度完整性约束学号char20主键,唯一,非空课程编号char20外键学期char10课程名称char20成绩int10教师姓名int10(6)学生Studentslh数据项名数据类型长度完整性约束学生学号char12主键,唯一,非空学生姓名char10学生性别char2学生年龄int4生源所在地Char20已修学分总数int4班级编号char10外键(7)开设Setuplh数据项名数据类型长度完整性约束课程编号char20主键,唯一,非空班级编号char20外键(8)班级Classeslh数据项名数据类型长度完整性约束班级编号char20主键,唯一,非空班级名称char20专业编号char20外键(9)专业Majorlh数据项名数据类型长度完整性约束专业编号char20主键,唯一,非空专业名称char203.3关系模式的优化对关系模式进行规范化处理,对关系模式进行评价与修正。84、物理结构设计4.1聚簇设计该高校成绩管理系统数据库可建立一下聚簇:Teacherslh(教师编号lh)Courseslh(课程编号lh)Studentslh(学生学号lh,班级编号lh)Classeslh(班级编号lh)这几个聚簇设计是因为这几张表都是实体表,,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。4.2索引设计索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。对于一个确定的关系,通常在下列情况下可以考虑建立索引。(1)在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。(2)以查询为主的关系可建立尽可能多的索引。(3)对等值连接,但满足条件的元组较少的查询可以考虑建立索引。(4)如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。该高校成绩管理系统数据库可建立以下索引:Teachers(教师编号)Courses(课程编号)Students(学生学号,班级编号)Classes(班级编号)Study(学号,课程编号)4.3分区设计涉及到数据库文件和日志文件的分区问题。磁盘分区设计的一般原则:(1)减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。(2)分散热点数据,均衡I/O负担。在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。(3)保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以9将其存放在某一固定磁盘上,以保证其快速访问。该成绩管理系统由于程序较小,所以不进行分区设计。5、数据库实施5.1基本表建立(1)教师表Teacherslh数据项名数据类型长度完整性约束教师编号lhchar20主键,唯一,非空教师姓名lhchar10教师性别lhchar2教师年龄lhchar20职称lhchar10联系电话lhchar20SQL语句为:CREATETABLETeacherslh(教师编号lhCHAR(20)PRIMARYKEY,教师姓名lhCHAR(10),教师性别lhCHAR(2),教师年龄lhINT,职称lhCHAR(20),联系电话lhCHAR(10),);SQL执行结果截图:(2)专业表Majorslh数据项名数据类型长度完整性约束10专业编号lhchar20主键,唯一,非空专业名称lhchar20SQL语句为:CREATETABLEMajorslh(专业编号lhCHAR(20)PRIMARYKEY,专业名称lhCHAR(20),);SQL执行结果截图:(3)班级表Classeslh数据项名数据类型长度完整性约束班级编号lhchar20主键,唯一,非空班级名称lhchar20专业编号lhchar20外键SQL语句为:CREATETABLEClasseslh(班级编号lhCHAR(20)PRIMARYKEY,班级名称lhCHAR(20),专业编号lhCHAR(20)constraintMajor_Classforeignkey(专业编号lh)referencesMajorslh);SQL执行结果截图:11(4)课程表Courseslh数据项名数据类型长度完整性约束课程编号char20主键,唯一,非空课程名char20教师姓名char10学时int10考试或考查char4学分int4SQL语句为:CREATETABLECourseslh(课程编号lhCHAR(20)PRIMARYKEY,课程名lhCHAR(20),教师姓名lhCHAR(10),学时lhINT,考试或考查lhCHAR(4),学分lhCHAR(4))SQL执行结果截图:12(5)学生表Studentslh数据项名数据类型长度完整性约束学生学号char20主键,唯一,非空学生姓名char10学生性别char2学生年龄int4生源所在地Char20已修学分总数int4班级编号char20外键SQL语句为:CREATETABLEStudentslh(学生学号lhCHAR(20)PRIMARYKEY,学生姓名lhCHAR(10),学生性别lhCHAR(2),学生年龄lhint,生源所在地lhchar(20),已修学分总数lhint,班级编号lhCHAR(20)constraintClass_Studentforeignkey(班级编号lh)referencesClasseslh)SQL执行结果截图:13(6)上课表Teachlh数据项名数据类型长度完整性约束教师编号lhchar20主键,唯一,非空班级编号lhchar20外键SQL语句为:CREATETABLETeachlh(教师编号lhCHAR(20)PRIMARYKEY,班级编号lhCHAR(20),CONSTRAINTClass_TeachFOREIGNKEY(班级编号lh)REFERENCESClasseslh,)SQL执行结果截图:(7)授课表Instructlh数据项名数据类型长度完整性约束教师编号char20主键,唯一,非空课程编号char20外键14SQL语句为:CREATETABLEInstructlh(教师编号lhCHAR(20)PRIMARYKEY,课程编号lhCHAR(20),CONSTRAINTCourse_InstructFOREIGNKEY(课程编号lh)REFERENCESCourseslh)SQL执行结果截图:(8)学习表Studylh数据项名数据类型长度完整性约束学生学号char20主键,唯一,非空课程编号char20外键学期char10课程名称char20成绩int10教师姓名char10SQL语句为:CREATETABLEStudylh(学生学号lhCHAR(20)PRIMARYKEY,课程编号lhCHAR(20),学期lhchar(10),课程名称lhcha