数据库系统原理课程设计课题名称:学生成绩智能管理信息系统姓名:班级:学号:指导老师:2012年1月6日一、概述随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统为教学办公带来了极大的方便.该学生成绩管理系统是以SQL数据查询语言编写.系统管理员,教师,学生只需通过简单的操作,用户都可以了解本系统软件的基本工作原理.用户只需进行输入一些简单的汉字,数字,或用鼠标点击即可达到自己想要的目标.根据本课程设计题目的要求,学会分析现实中的需求,将实际的任务转化成具体功能,并提高相应的分析问题、转化问题、建立模型、解决问题的能力。
本系统按照从上到下、逐步细化的方法分析问题,并用DFD图、DD表表示相应需求。
再采用E-R图具体实现逻辑设计,最后根据实际数据量实现物理设计的优化。
二、需求分析(1)本系统的最终用户为在校学生,老师。
根据我们查询成绩的方法,结合对老师的咨询,得出用户的下列实际要求:1.学生基本信息:学号、姓名、性别、出生日期、电话、专业、民族、政治面貌、籍贯。
2. 课程信息:课程号、课程名、先选课、学时、考核方式、学分。
3. 选课信息:学号、课程号、成绩。
4. 教师信息:工号、姓名、性别、职称、学院。
5. 授课信息:工号、课程号和授课效果。
6. 学生能查询课程信息;自己的学生信息;自己的选课信息;自己选课的最高分、最低分、平均分、和总分。
学生选课时,该学生必须是本校学生,课程必须是本校课程;一个学生可以选择多门课程,多个学生可以选择同一门课程。
7. 教师只能查询课程信息、本人的授课信息、本人授课的选课信息、本人的指导信息等。
教师只能修改本人授课的选课成绩等。
教师授课时,课程必须使本校课程,教师必须是本校教师;一个教师可以讲授多门课,多个教师可以讲授一门课。
8. DBA拥有所有信息的所有权限。
9.满足常规的完整性、安全性和数据备份能力。
(2)根据以上的需求分析,得出如下的DFD图三、概念结构设计根据以上需求分析,应建立以下E-R图a、选课管理局部E-R图b、讲授局部E-R图c、学生成绩管理系统全局E-R图1)根据系统的概念结构,其逻辑结构设计如下:学生(学号,姓名,性别,出生日期,电话,民族,政治面貌,专业,籍贯)课程(课程号,课程名,上课地点,学分,学时,考核方式)选课(学号,课程号,成绩)教师(工号,姓名,性别,年龄,职称,学院,电话)授课(教师工号,课程号,教学效果)2)根据系统的逻辑结构和应用需求,其外模式的视图设计如下:学生视图(学号,姓名,性别,年龄,电话,民族,政治面貌,专业,籍贯,课程号,课程名,上课地点,学时,考核方式学分,成绩,最高分、最低分、平均分,总学分)DBA选课视图(学号,姓名,性别,年龄,电话,专业,民族,政治面貌,课程号,课程名,上课地点,学时,考核方式,学分,成绩)3)满足3NF:A、学生表(Student)中的属性有学号(SNo),姓名(Sname),性别(Ssex),出生日期(Sbirth),电话(Sphone),专业(Scoll),民族(Snation),政治面貌(Spaob),籍贯(Sbirthplace)。
Student(U1,F1)U1={SNo,Sname,SSex,Sbirth,Sphone,SColl,Snation,Spaob}F1={SNo→(Sname,SSex,Sbirth,Sphone,SColl,Snation,Spaob)}B、课程表(Course)中的属性有课程号(CNo),课程名(Cname),上课地点(Cclass),考核方式(Cexamsy),学时(Cperiod),学分(Credit)。
Course(U2,F2)U2={CNo,CName,Ctname,Cclass,Cexamsy,Cperiod,Credit}F2={CNo→(CName ,Cclass,Cexansy,Cperiod,Credit)}C、选课表(StudentCourse)中的属性有学号(SNo),课程号(CNo),成绩(Grade)。
StudentCourse(U3,F3)U3={SNo,CNo,Grade}F3={(SNo,CNo)→Grade}D、教师表(Teacher)中的属性有工号(TNo),教师姓名(TName),教师性别(Tsex),教师年龄(TAge),职称(Title),教龄(SchAge),教师电话(Tphone),教师学院(TColl)。
Teacher(U4,F4)U4={TNo,TName,TSex,TAge,Title,SchAge,TPhone,TColl}F4={TNo→(TName,TSex,TAge,Title,SchAge,TPhone,TColl)}E、授课表(TeacherCourse)中的属性有教师工号(TNo),课程号(CNo),教学效果(TGrade)。
TeacherCourse(U5,F5)U5={TNo,CNo,TGrade}F5={(TNo,CNo)→TGrade}4)根据以上的满足3NF关系的逻辑结构,建立以下表:课程号varchar 6 非空、唯一授课效果varchar 15 非空5)建立数据库以及相应表格a.Create database成绩管理b. 建立学生表create table student(学号char(10)not null unique,姓名char(20)not null,性别char(1),出生日期char(10),电话char(11),专业char(40)not null,民族char(15)not null,政治面貌char(10),籍贯char(40)not null)c. 建立课程表create table course(课程号char(6)not null unique,课程名char(20)not null,上课地点char(5),not null,学时int,not null,考核方式char(1),学分float not null)d. 建立老师表create table teacher(工号char(9)not null unique, 姓名char(10)not null,性别char(1),职称char(5),电话char(11),学院char(6)not null)e. 建立选课表create table select_course (学号char(10)not null unique, 课程号char(6)not null,成绩char(1) not null)f. 建立授课表create table teach(工号char(9)not null unique,课程号char(6)not null,授课效果char(15) not null)五、物理结构设计(1)根据实际情况以及上述的表的属性建立以下索引:对于学生表,经常需要用学号、姓名来查询某个学生的信息,所以应在这两列上建立索引。
对于教师表,经常需要用工号、姓名来查询某个老师的信息,所以应在这两列上建立索引。
对于其他表来说,经常不会去单独查询,所以不必建立索引。
(2)由于本系统存储的数据不多,直接放在磁盘上即可。
(3)根据前面的分析,应建立学生表的学号、姓名,老师表的工号、姓名索引,但MS SQL Server已经为学号、工号建立聚集索引,因此只需建立姓名索引即可。
create index stunameon student(姓名)create index teachernameon teacher(姓名)六、数据实施和维护因为作为演示,本系统只用手工方式插入少量数据,作为操作例子。
对以上五个表分别插入以下记录。
课程表选课表学生表授课表老师表六、设计总结这次课程设计是数据库课程的课程设计,数据库应用课程设计是计算机技术专业重要的实践课程之一,是学习《数据库原理》课程后的一次综合实践练习。
通过本课程设计,将在课堂上了解和掌握的数据库原理以及设计阶段的方法与技术,直接运用到实际系统的开发工作中。
在课程设计初期,我根据课程设计的题目与要求,在细致地研究了系统的需求,列出了相应的模块,并进行了结构化设计。
然后我根据初步研究结果,确定我的设计方向,开始我的任务。
我通过借阅相关书籍,上网查阅资料等方式,完成了我的系统编程初稿。
但在系统测试阶段,出现了很多的问题和错误。
比如数据库文件的导入路径出错,导致数据库连接错误;由于在SQL2005平台式运行,还需要装载msbase.jar,mssqlserver.jar,msutil.jar文件。
通过学习,通过这次课程设计,我不仅清楚地知道了自己在数据库原理知识。
我真切地体验了软件项目管理技能和方法,熟悉了软件工具与环境,把课堂学习的理论知识很好的在实践中运用了起来。
奋斗虽是艰苦的,但收获是快乐的。
我相信,在大家的不懈努力之下目标一定可以达成,我也将在学习数据库的道路上更加进步。