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