《数据库系统课程设计(共10页).doc》由会员分享,可在线阅读,更多相关《数据库系统课程设计(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库系统课程设计设计题目:学生成绩管理系统姓 名:廖丹学 号:-23专 业:信息与计算科学指导教师:年 月 日 一、需求分析阶段1.信息需求对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。3. 安全性与
2、完整性要求对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。 二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。设计成绩管理数据库包括学生、成绩、课程、教师四个关系。E-R图如下课程信息表学分教师号课程号课程名学时学生信息表学号姓名专业年龄系别性别选课成绩课程号学号教师信息表教师号教师名教师性别教课教师系别成绩三、详细设计阶段详细结构是独立于任何一种数据模型的信息结构。详细
3、结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)1、课程信息表(class)字段名描述
4、数据类型字段限制cno课程号char(10)Primarykeycname课程名char(10)Not nullteano教师号char(10)Not nullcredit学分char(4)Not nullctime学时char(50)Not null2、学生信息表(student1)字段名描述数据类型字段权限sno学号char(10)Primarykey sname姓名char(10)Not null ssex性别char(2)Not nullsage 年龄char(2)Not null major专业char(10)Not nulldepart系别char(10)Not null3.教师表
5、(teacher1)字段名属 性数据类型字段权限teano教师号char(10)Primarykeytname教师名char(10)Not nullTsex教师性别char(2)Not nullTdepart教室系别char(10)Not null4.成绩表字段名属 性数据类型字段权限sno学号char(10)Primarykeycno课程名char(10)Not nulldegree成绩char(10)Not null四、数据库实现数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进行试运行。创建数据表 一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据
6、表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程。在此学生成绩管理系统中需要创建四个表,即课程信息表、学生信息表、教师信息表和成绩表。1.创建课程-班级表:create table Class( /创建课程信息表 cno char(10) primary key, /课程号 cname char(10) not null, /课程名 teano char(10) Not null /教师号 credit char(4), Not null /学分 ctime char(50), Not null /学时 ) 2.创建课程信息-学生表:c
7、reate table student1( /创建学生信息表 sno char(10) primary key, /学号 sname char(10) not null, /姓名 ssex char(2) not null, /性别 Sage char(2) not null, /年龄 Major char(10) not null, /专业 Depart char(10) not null, / /系别 )3. 创建课程信息-教师表create table teacher1( /创建教师信息表 tno char(10) primary key, /教师号 tname varchar(50)
8、not null, /教师名 tsex char(2), /教师性别 tdepart varchar(50) /教师系别 )4.创建课程信息-成绩表create table score( /创建成绩表 sno char(10), /学号 cno char(10), /课程号 )学生信息相关表格Snosnamessexsagemajordepart张三男 22计算机计算机系王四女 23软件计算机系李五男22通信计算机系=刘六女22计算机计算机系赵七女20计算机计算机系课程信息相关表格Cnocnametnocreditctime0301数据库0012240302网络0022.2180303系统结构
9、0032.4360304计算机组成原理0042.6320305数据结构0052.8300306操作系统原理0063.0320307数据库原理0073.2300308英语0083.4450309高数0093.535成绩信息表SnoCnoDegree0306 85030390030586030682030484030181030693030279030485030694030874030786教师信息表tnotnametsextdepart001王大女计算机002李大男计算机003张大男计算机004刘大女计算机005黄大男计算机006黄大男计算机007王大男计算机008徐大女计算机009刘大女计算
10、机五、数据库运行代码1、数据定义:基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除(1)基本表的创建,建表语句 create table students(stuno char(10) primary key, stuname varchar(40) not null, stusex char(2) not null, stuage char(10) not null, stumajor char(10) not null, studepart char(10) not null, )(2)基本表的删除drop table students 2、数据操作数据库查询操作A.单表查询:
11、(1)查询sno为学生的snameselect snamefrom student1where sno=(2)查询ssex为女并且sdepart为计算机的snameselect snamefrom student1where ssex =女 and sdepart =计算机(3)查询所有学生的姓名和系别。 select sname,depart from student1(4)查询depart为计算机的sname。select snamefrom student1where depart =计算机(5)查询所有学生所在院系名称select distinct departfrom student
12、(6)查询学生信息表中年龄小于21和年龄大于21的学生的姓名和系别select sname,departfrom student1where sage21 or sage21(7)查询所有学生的平均年龄select avg(sage) as 平均年龄from Student1结果:B.连接查询(1)学生的学号、姓名,所选课程的课程号、课程名和成绩、任课教师名Select student1.sno,student1.sname,o,ame,score.degree,teacher1.tnamefrom student,class,score,teacher1Where student1.sno=
13、score.sno and o=o and teacher1.tno=class.tno(2)找出教授数据库原理的老师的教师名select teacher1.tnamefrom class,teacher1Where class.tno=teacher1.tno and ame=数据库原理C.操作结果集查询 查询号同学和号同学共同选修的课程Select cnoFrom scoreWhere sno=IntersectSelect cnoFrom scoreWhere sno=3、数据库更新操作A.插入数据向Student1表中添加一项记录:姓名:秦二,学号:,性别:男,年龄:22专业:计算机,
14、系别:计算机InsertInto Student1(Sno,Sname, Ssex,sage,major,depart)Values (,秦二, 男, 22, 计算机,计算机)B.修改数据修改陈琦的学号为:Update Student1Set Sno=Where Sname=陈三;C.删除数据删除所有计算机学生的记录Delete from student1Where(depart=计算机);七、总结 本学生成绩查询系统主要参照课本,相对来说比较简单。但是由于主要以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。(1)操作视图查询,编写代码时发现,一个表中的主键必须是另一个表的外键时才可以对另一个表进行引用。(2)在设计表时应注意使用正确的字段类型。(3)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。作为一种应用,数据库必须在动手的基础上才能更好的学习,更有效的学习。正是在一次次的上机以及作业当中,我体会到了数据库作为一种应用所带给我们的种种便利。感谢老师的悉心教导以及同学的帮助,我才能较快速的完成作业。专心-专注-专业