毕业设计-网上学习系统数据库.doc
《毕业设计-网上学习系统数据库.doc》由会员分享,可在线阅读,更多相关《毕业设计-网上学习系统数据库.doc(18页珍藏版)》请在咨信网上搜索。
课 程 设 计 课程名称____数据库系统概论____ 题目名称____网上学习系统______ 学生学院_______计算机_________ 专业班级_ _ 学 号___________ 学生姓名_______ _________ 指导教师_______左亚尧_________ 2012年 1 月 9 日 目 录 一、 课程设计目的………………………………………………………1 二、 系统定义……………………………………………………………1 三、需求分析…………………………………………………………….1 四、系统设计…………………………………………………………….3 五、详细设计……………………………………………………………6 六、课程设计总结………………………………………………………13 七、附录…………………………………………………………………13 一、课程设计目的 学习使用某个RDBMS,利用合适的应用系统开发工具为某个应用背景设计和开发一个数据库应用系统。学习数据库原理及应用目的就是能创建和管理一个真实的数据库,通过规划设计一个小型数据库系统。掌握数据库规划设计的基本技术,熟悉数据库的设计的基本方法和步骤,明白数据库设计各阶段的任务,加深对数据库系统概念和特点的理解。 二、系统定义 随着识识经济的到来,我们的学习模式受到了前所未有的冲击,各种新的学习模式如潮水般涌现,在所有学习模式中,最具有冲击力的便是随着网络技术发展而出现的网络化学习,又称网上学习,它是通过在网上建立教育平台,学员应用网络进行在线学习的一种全新方式。这种在线学习方式是由多媒体网络学习资源、网上学习社区及网络技术平台构成的全新的学习环境。相对于其他的学习模式来说,它具有无可比拟的优势。 网上学习的一个好处就是不受时间、地点、空间的限制,并且可以实现和现实当中一样的互动。管理员可以随时随地更换系统中的学习资料,并且管理学生信息,学生可以对系统中的内容进行学习,还可以进行自我测试,学生可以查看自己的成绩。 三、 需求分析 (一)系统综合需求 从总体上考虑,系统的任务是实现学生在网上进行学习。主要分为以下功能: 1、对管理员来说,包括考生管理、题库管理、成绩管理。 1)考生管理:管理员可以查看数据库中的学生信息和添加新学生。 2)题库管理:管理员可以对题库中的试题进行三种基本操作:添加新的学习资料、删除旧有学习资料、修改原有学习资料;另外对于测试的题目,管理员也可以有同样的操作。 3)成绩管理:管理员可以查看学生的测试成绩。 2、对学生来说,包括网上学习、自我测试和查询测试成绩。 1)网上学习:可以查看系统当前有的学习资料。 2)自我测试:学生可以进行自我检查,考察自己当前的学习情况。 3)查询测试成绩:学生可以查询自己测试之后的成绩。 (二) 系统逻辑模型 1、 数据流程图 根据根据系统功能的要求,可将系统分为下列几个模块 2、数据字典 该系统的数据库由下述6张数据表组成: 管理员表:Administrator 列名 数据类型 约束 编号 Char(10) 主键 姓名 Char(10) 非空 密码 Char(10) 非空 学生表:Student 列名 数据类型 约束 学号 Char(10) 主键 姓名 Char(10) 非空 密码 Char(10) 非空 主修科目编号 Char(10) 外键、非空 性别 Char(10) 非空 科目类别表:Course 列名 数据类型 约束 科目编号 Char(10) 主键 科目名 Char(10) 非空 题库表:Topic 列名 数据类型 约束 题目编号 int 主键 所属科目编号 Char(10) 外键 内容 Char(50) 非空 难度 Char(10) 非空 考试题目表:Questions 列名 数据类型 约束 编号 int 主键 所属科目编号 Char(10) 外键 题干 Char(50) 非空 选项A Char(10) 非空 选项B Char(10) 非空 选项C Char(10) 非空 正确答案 Char(10) 非空 分值 int 非空 成绩表:Score 列名 数据类型 约束 学号 Char(10) 主键 成绩 int 四、 系统设计 (一) 数据库概念设计 分析前面的系统功能要求,需要一个表来存储管理员的信息,另外,还需要一个表来存储和管理学生信息,使系统能够接受学生原始的各项数据,以实现数据录入、查询或统计学生信息等功能。 为了能实现查询和统计学生的学习和测试情况等功能,必须有一个表来存储和管理题库的信息。 此外,还需要一个表来存储题目所属的科目信息,及科目类别,学生的测试成绩信息也需要一个表来存储和管理。据此可以绘出系统数据库的E-R图如下: 实体属性列表如下: 实体 属性 管理员 编号 姓名 密码 学生 学号 姓名 密码 主修科目 性别 科目类别 科目编号 科目名称 (二) 数据库的逻辑设计 将数据库的概念模型转换为关系模型: 实体转换成的关系模式有: 管理员(编号,姓名,密码) 学生(学号,姓名,密码,主修科目,性别) 科目类别(科目编号,科目名称) 学习题库(题目编号,所属科目,内容,难度) 测试题库(题目编号,所属科目,题干,选项A, 选项B,选项C,答案,分数) 成绩(学号,分数) (三)数据库与数据表设计 ——物理结构设计 1、数据库与数据表设计: 管理员表: 其中,编号是主码,唯一标识一个管理员。 科目类别表: 科目编号是主码,用来唯一标识每门课。 学生表: 学号是主码,用来标识每一个学生,主修课目编号是外键,与科目类别表的主码(科目编号)关联。 学习题库表: 题目编号是主码,用来唯一标识每一道题目。其中,所属科目编号是外键,与科目类别表的主键相关联。 测试题库表: 成绩表: 2、数据完整性约束 1) 每一个表都有一个主键,用来唯一标识每一个元组。 管理员表:主键编号,此项非空 学生表:主键学号,此项非空 科目类别表:主键科目编号,此项非空 学习题库表:主键题目编号,此项非空 测试题库表:主键题目编号,此项非空 2)实施CHECK约束 学生表中建立一个检查约束,即学生性别不是‘男’就是‘女’ CHECK(性别 IN('男','女') 成绩表中建立一个对于分数的检查约束,即分数在0-100之间 check (成绩 >=0 and 成绩 <=100) 3) 外键约束 学生表中主修课目为外键。 学习题库和测试题库中所属科目编号为外键。 FOREIGN KEY (主修科目编号) REFERENCES Course (科目编号) FOREIGN KEY (所属科目编号) REFERENCES Course (科目编号) 五、 详细设计 1、建立数据库 USE master GO CREATE DATABASE 课程设计 ON primary ( NAME = sc, FILENAME = 'e:\DataBase\课程设计.mdf', SIZE = 10, FILEGROWTH = 10%) LOG ON ( NAME = Sc_log, FILENAME = 'e:\DataBase\课程设计.ldf', SIZE = 3MB, FILEGROWTH = 1MB) 2、建表 CREATE TABLE Administrator ( 编号 char(10) PRIMARY KEY, 姓名 char(10) NOT NULL, 密码 char(10) NOT NULL ); CREATE TABLE Course ( 科目编号 char(10) PRIMARY KEY, 科目名称 char(10) NOT NULL ); CREATE TABLE Student ( 学号 char(10) PRIMARY KEY, 姓名 char(10) NOT NULL, 密码 char(10) NOT NULL, 主修科目编号 char(10) NOT NULL, --外键 性别 char(10) CHECK (性别 IN ('男','女')), --CHECK约束 FOREIGN KEY (主修科目编号) REFERENCES Course (科目编号) ); CREATE TABLE Topic ( 题目编号int PRIMARY KEY, 所属科目编号 char(10), --外键 内容 char(50) NOT NULL, 难度 char(10) NOT NULL, FOREIGN KEY (所属科目编号) REFERENCES Course (科目编号) ); CREATE TABLE Questions ( 编号 int PRIMARY KEY, 所属科目编号 char(10), --外键 题干 char(50) NOT NULL, 选项A char(10) NOT NULL, 选项B char(10) NOT NULL, 选项C char(10) NOT NULL, 答案 char(10) NOT NULL, 分值 int NOT NULL, FOREIGN KEY (所属科目编号) REFERENCES Course (科目编号) ); CREATE TABLE Score ( 学号 char(10) PRIMARY KEY, 成绩 int CHECK (成绩>=0 AND 成绩<=100) --CHECK约束 ); 3、插入信息: 1)插入管理员信息 INSERT INTO Administrator (编号, 姓名, 密码) VALUES ('10000', 'admit', 'admit'); 2)插入科目信息 INSERT INTO Course (科目编号, 科目名称) VALUES ('100', '高数'); INSERT INTO Course (科目编号, 科目名称) VALUES ('101', '大英'); INSERT INTO Course (科目编号, 科目名称) VALUES ('102', '大物'); INSERT INTO Course (科目编号, 科目名称) VALUES ('103', '计算机'); 3)插入学生信息 INSERT INTO Student (学号, 姓名, 密码, 主修科目编号, 性别) VALUES ('3110006214', '杨广富', '3110006214', '100', '男'); INSERT INTO Student (学号, 姓名, 密码, 主修科目编号, 性别) VALUES ('3110006215', '杨浩涛', '3110006215', '101', '男'); INSERT INTO Student (学号, 姓名, 密码, 主修科目编号, 性别) VALUES ('3110006216', '叶显青', '3110006216', '102', '男'); INSERT INTO Student (学号, 姓名, 密码, 主修科目编号, 性别) VALUES ('3110006217', '袁德诚', '3110006217', '103', '男'); 4)插入题目信息 INSERT INTO Topic (题目编号, 所属科目编号, 内容, 难度) VALUES ('1', '100', '1+1=2', 'A'); INSERT INTO Topic (题目编号, 所属科目编号, 内容, 难度) VALUES ('2', '101', 'You are a student.', 'B'); INSERT INTO Topic (题目编号, 所属科目编号, 内容, 难度) VALUES ('3', '102', '电梯上升时人会感到超重。', 'C'); INSERT INTO Topic (题目编号, 所属科目编号, 内容, 难度) VALUES ('4', '103', '第一台计算机是年诞生的。', 'D'); 5)插入考试题目信息 INSERT INTO Questions (编号, 所属科目编号, 题干, 选项A, 选项B, 选项C, 答案, 分值) VALUES ('1', '100', '1+1=?', '1', '2', '3', 'B', '25'); INSERT INTO Questions (编号, 所属科目编号, 题干, 选项A, 选项B, 选项C, 答案, 分值) VALUES ('2', '101', 'You are a ?', 'student', 'teacher', 'master', 'A', '25'); INSERT INTO Questions (编号, 所属科目编号, 题干, 选项A, 选项B, 选项C, 答案, 分值) VALUES ('3', '102', '电梯上升时会感到?', '失重', '正常', '超重', 'C', '25'); INSERT INTO Questions (编号, 所属科目编号, 题干, 选项A, 选项B, 选项C, 答案, 分值) VALUES ('4', '103', '第一台计算机是哪一年诞生的?', '1921', '1946', '1949', 'B', '25'); 6)插入成绩信息 INSERT INTO Score (学号, 成绩) VALUES ('3110006215', '10'); 4、建立视图 建立一个视图查询学生的成绩: CREATE VIEW 学生_成绩 AS SELECT Student.姓名, Score.* FROM Student,Score WHERE Student.学号=Score.学号 5、 触发器 在系统中建立了两个触发器,一个是当有新的同学添加到系统时,会输出“欢迎新同学的到来”。另一个是当成绩出来后,不允许修改成绩。 1) Create Trigger T1 On Student for insert as print '欢迎新同学的到来!' INSERT INTO Student (学号, 姓名, 密码, 主修科目编号, 性别) VALUES ('3110006215', '杨浩涛', '3110006215', '101', '男'); 2) Create Trigger T2 On Score For Update As If Update(Score) Begin Print '成绩不允许修改!' Rollback End UPDATE Score SET 成绩='100' WHERE 学号='3110006215' 6、 建立存储过程 建立一个存储过程输入一个成绩得到该成绩的所有学生的信息: CREATE Procedure list_Student_info @成绩int AS SELECT * FROM Student, Score WHERE Score.成绩=@成绩AND Student.学号=Score.学号; EXEC list_Student_info '100'; 7、维护和运行 1)关系图的建立: 2) 简单查询 ①查询所有的学习题目: select * from Topic ②查询测试过的学生的姓名,性别,主修科目和成绩: select Student.姓名,Student.性别,Course.科目名称, Score.成绩 from Student, Course, Score where Student.学号= Score.学号 AND Student.主修科目编号= Course.科目编号 ③查询成绩高于或等于50分的学生姓名、性别和成绩: select Student.姓名,Student.性别,Score.成绩 from Student, Score where Student.学号= Score.学号 AND Score.成绩>= 50; 六、 课程设计总结 经过这一周的时间,从安装数据库到完成课程设计,整个流程下来给我的感触很多,收获也很多。因为之前都是在实验室里完成的实验,而且对于实验的内容在实验指导书都几乎写清楚了,只需要按照它的步骤一步一步完成就行了。但是课程设计不一样,它要一个更高的层次,在选完题目之后,要自己设计一个数据库,要靠自己从无到有创建出来。从开始做课程设计之后,本以为会很简单就完成,但是在找完资料后安装数据库的过程中就出现了许多问题,在查找了更多的资料和与同学交流后终于成功地安装了。后来在开始设计数据库的时候也遇到很多问题,在需求分析那里我觉得是花时间最多的一个环节,因为要设计一个好的数据库要有一个好的开始。在后面的设计过程中,完成了一些基本的操作,完成了对数据的增、删、查、改的基本功能。在系统中,可以添加和查看学生基本信息。另外,管理员还可以对学习题库和测试题库进行修改,删除,增加和查看的基本操作。除此之外,系统还设有触发器和一些复杂的查询能。 总之,经过这次课程设计之后,我感觉收获到很多东西,不仅仅是学习上和能力上的,同时也让我锻炼到和其他同学的沟通和交流上,增进了我们彼此间的感情。同时,对于数据库的了解也更深了一层,我觉得数据库是一门很有趣的学科,怎样设计一个好的数据库需要有足够缜密的想法和深厚的功底,在今后的学习中,我会更加努力学好专业知识。 七、 附录 部分源代码 更改数据: USE 课程设计 GO UPDATE Student SET 主修课程标号='104' WHERE 学号='3110006214' UPDATE Student SET 主修课程标号='103' WHERE 学号='3110006215' UPDATE Student SET 主修课程标号='102' WHERE 学号='3110006216' UPDATE Student SET 主修课程标号='101' WHERE 学号='3110006217' 删除数据: USE 课程设计 GO DELETE FROM Student WHERE 学号 = '3110006215'; 建立统计不及格情况的视图 USE 课程设计 GO CREATE VIEW fail_student_view AS SELECT Student.学号, 姓名 FROM Student, Score WHERE student.学号 = Score.学号 AND Score.成绩 < 60; 14- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 网上 学习 系统 数据库
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文