您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数据库原理课程设计报告-学生成绩管理系统
数据库原理课程设计报告设计题目学生成绩管理系统专业班级学号学生姓名指导教师同组人起止日期2011年1月10日至1月20日信息工程系1目录1.问题描述...........................................................21.1背景..................................................21.2功能要求...............................................22.需求分析..........................................................32.1数据流程图.............................................32.2数据字典...............................................43.概念结构设计......................................................53.1E-R图................................................54.逻辑结构设计......................................................65.物理结构设计......................................................76.角色与触发器设计.................................................97.数据库的实施和维护.............................................118.结束语...........................................................138.答辩与成绩考核................................................1421.问题描述1.1背景在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。但是,我们看到,其实我们学校的学生成绩管理系统在很多方面作的不是很完善,功能方面也有欠缺。随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。1.2功能要求该学生成绩管理系统,实现简单的成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。(一)学生查询1、学生信息修改修改选中当前学生的信息。2、学生信息的添加增加新学生的信息。3、学生信息删除删除选中当前学生信息。(二)课程查询1、课程修改实现对课程名、学时、学分的修改。2、课程添加对一门新开设的课程进行录入,并存入数据库。3、课程删除对一门不在开设的课程进行删除,并从数据库中删除。(三)成绩查询1、成绩修改先选中要修改的成绩信息,然后进行修改。2、成绩添加直接弹出添加对话框,然后进行添加。3、成绩删除先选中要删除的成绩信息,然后直接删除。32.需求分析2.1数据流程图图2-1系统的数据流图学生信息学生信息管理基本信息录入D1学生信息返回D2D3基本信息录入课程信息成绩信息成绩信息管理课程信息管理基本信息录入42.2数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQLServer2000建立“StudentCourse”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student学生学生学籍信息表Course课程课程基本信息表Score成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型NotNull说明Student_snoCharPrimarykey学号Student_snamecharNotNull学生姓名Student_sexchar‘男’或‘女’性别Student_deptchar系别Student_agechar年龄Student_addresschar地址Course数据表,结构如下:字段名字段类型约束控制说明Course_cnochar主键(primarykey)课程号Course_cnamecharnotnull课程名称Course_hourintnotnull课时Course_scorenumeric(2,1)notnull学分Score情况数据表,结构如下:字段名字段类型约束控制说明Course_cnochar外部键课程号Student_snochar外部键学号Scoreint成绩2.3存储过程(1)在Course中插入一元组CREATEPROCEDURECourse_prodASInsertIntoCourse5Values('1018','微机原理','36','3.5')(2)创建一个查询过程CREATEPROCEDURECourse_prod1ASSelect*FromCourse(3)创建一个删除存储过程CREATEPROCEDURECourse_prod2ASDeleteFromCourseWhereCourse_cno='1007'3.概念结构设计3.1E-R图由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。(2)课程基本信息:课程名,课程号,学时,学分。学生基本信息实体姓名学号年龄性别地址专业课程基本信息实体课程名课程号学时学分6(3)成绩基本信息:课程号,学号,分数。这些实体间的联系包括:每位学生可以学习多门课程,每门课程可供多位学生学习。由上述分析可得到系统的E—R图:4.逻辑结构设计4.1将E-R图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:成绩基本信息课程号学号分数选修课程成绩学生课程号课程名学时学分分数学号姓名性别系别地址年龄NN7一个m:n联系转换为一个独立的关系模式。与该联系相联的个实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并。具体的基本E—R图向关系模式的转化如下:(1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号;(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。4.2模型优化关系模式学生,课程不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。5.物理结构设计1.建立数据表(1)学生信息表的建立。CREATETABLEStudent(Student_snochar(10)primarykey,Student_snamechar(10)notnull,Student_sexchar(2),Student_deptchar(10),Student_agechar(10),Student_addresschar(10));(2)课程信息表的建立CREATRTABLECourse(Course_cnochar(10)primarykey,Course_cnamechar(10)notnull,Course_hourint,8Course_scorefloat(8));(3)分数信息表的建立CREATETABLEScore(Course_cnochar(10),Student_snofloat(8),Scorefloat(8));2.建立视图(1)查询学生基本信息的视图定义如下:CREATEVIEWStudent_view(Student_sno,Student_sname,Student_sex,Student_dept,Student_age,Student_address)ASSELECT*FROMStudent(2)课程信息查询的视图定义如下:CREATEVIEWCourse_view(Course_cno,Course_cname,Course_hour,Course_score)ASSELECT*FROMCourse(3)成绩信息查询视图定义如下:CREATEVIEWScore_view(Course_no,Student_sno,Scorefloat)ASSELECT*FROMScore3.建立索引(1)为学生Student表的学生姓名建立索引。CreateclusterindexsnameindexonStudent(Student_sname);(2)为课程Course表的课程名建立索引。CreateclusterindexcnameindexonCourse(Course_cname);96.角色与触发器设计1.创建一个角色(1)为普通学生创建一个角色R1,并对其授权查询操作。CREATEROLER1GRANTSELECTONTABLEStudent,Course,ScoreTOR1;在①在数据库目录下的角色上右击,选择新建数据库角色。②单击‘确定’,再选择角色R1属性10③选择权限④勾选三个表的SELECT权限,确定即可。(2)为老师创建一个角色R2,并对其授权查询、插入、更新、删除操作。CREATEROLER2GRANTSELECT,INSERT,UPDATE,DELETEONTABLEStudent,Course,ScorseTOR2;方法同(1),第④步权限选择如下图:2.创建触发器当删除Student表中某一学生基本信息时,触发Course表,删除相应的记录。CREATETRIGGERStudent-deleteONStudentFORDELETEASDELETECourseFORMDELETEDWHERECourse.sno=DELETED.sno117.数据库的实施和维护7.1数据库的实施1.数据插入·插入新的课程,课程号为1018,课程名为微机原理,学时为36,学分为3.5INSERTINTOCourseVALUES('1018','微机原理','36','3.5');·插入学号为200803学生的微机原理成绩,分数为81INSERTINTOScoreVALUES('1018','200803','81');2.查询数据·查询学号为200801的学生信息:12Select*FromStudentWhereStudent_sno=‘200801’·查询名字为张三的学生成绩及课程名:SelectScore,Course_cnameFromScore,CourseWhereStudent_snoin(SelectStudent_snoFromStudentWhereStudent_sname='张三'andCourse.Co
本文标题:数据库原理课程设计报告-学生成绩管理系统
链接地址:https://www.777doc.com/doc-5728633 .html