学生成绩管理系统数据库

上传人:z**** 文档编号:169690025 上传时间:2022-11-16 格式:DOCX 页数:15 大小:90.65KB
收藏 版权申诉 举报 下载
学生成绩管理系统数据库_第1页
第1页 / 共15页
学生成绩管理系统数据库_第2页
第2页 / 共15页
学生成绩管理系统数据库_第3页
第3页 / 共15页
资源描述:

《学生成绩管理系统数据库》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库(15页珍藏版)》请在装配图网上搜索。

1、计算机系综合性实验数据库课程设计设计报告设计题目实验学期至 学年第 学期学生所在年级专业班级学生学任课教师实验成绩计算机系制一、需求分析阶段1。信息需求 高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计 算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性.学生成绩管理 系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中 解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、 更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。2。功能需求 能够进行数据库的数据定义、数据操纵、数据控

2、制等处理功能,进行联机处理的相应时 间要短。具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、 修改、删除、查询,学生及教职工基本信息查询的功能.3。安全性与完整性要求 需求分析内容: 一个学生可以选修多门课程,一门课程可供多名学生选修;一个学生选修一门课 程会有一个成绩。 一个教师教授多门课程,一门课程由一名教师教授。二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象, 形成一个独立于具体DBMS的概念模型.主要实体如下,请画出完整E-R图三、逻辑结构设计阶段逻辑结构是独立于任何一种数据模型的信息结构.逻辑结构的任务是

3、把概 念结构设计阶段设计好的基本ER图转化为宜选用的DBMS所支持的数据模型 相符合的逻辑结构,并对其进行优化。E-R 图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化 为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括几个关系:4,其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)1、课程信息表(class)字段名描述数据类型字段限制eno课程号char (10)Primarykeycname课程名char (50)Not nullt eano教师号char (10)Not nullcredit学分char (

4、4)Not nullct ime学时char(50)Not null2、学生信息表(student1)字段名描述数据类型字段权限sno学号char (10)Primarykeysn ame姓名char(10)Not nullssex性别char(2)Not nullsage年龄char (2)Not nullmajor专业char (10)Not nulldepart系别char (10)Not null3。教师表(t eacherl)字段名属性数据类型字段权限tea no教师号char (10)Primarykeytn ame教师名char(10)Not nullTsex教师性别char(2

5、)Not nullTdepart教室系别char (10)Not null4。成绩表字段名属性数据类型字段权限sno学号char (10)Primarykeyeno课程名char (10)Not nulldegree成绩char (10)Not null特别注意!::成绩表的 sno 不可以设置成主键,要把 primary key 改为 not null,否则后面的数据是录入不了的,城院的老师可能是把题给 错了,注意下就好。以下的代码我都是以ORACLE数据库写的.所以没有弄截图。截图的话.学弟学妹自己去弄哦。把语句复制 到上面执行就可以了。四、物理设计阶段数据库物理设计的任务是为上一阶段得到

6、的数据库逻辑模式,即数据库的逻辑结构选 择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在 物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经 过多次反复,最后得到一个性能较好的存储模式.数据库物理设计内容包括记录存储结构的 设计,存储路径的设计.五、数据库实现数据库实施是指建立数据库,编制与调试应用程序, 组织数据入库,并进行试运行.1、创建数据库:2、创建数据表:一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表 主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过 程其实就是

7、定义字段的过程.在此学生成绩管理系统中需要创建几个表: 学生信息表,课程信息表,教师表,成绩 表。创建数据库后,为数据库添加数据表,步骤如下.(1) 新建查询窗口(2)在查询窗口中键入下列SQL语句完成学生成绩管理系统诸表的创建:/*创建表 class* /create table class(cno char(10) primary key,cname char( 50) not null,teano char(10) not null,credit char( 4) not null,ctime char( 50) not null);/*创建表 student*/ create tabl

8、e student( 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 );/*创建表 teacher* /create table teacher( teano char(10) primary key, tname char(10) not null, tsex char(2) not null, tdepart char(10) not null

9、);/*创建表 score*/ create table score( sno char(10) not null, cno char(10) not null, degree char(10) not null);执行上述 SQL 语句即可创建课程信息表相关表格3、录入数据:学生信息相关表格Snosnamessexsagemajordepart0811080101陈琦男22信息丄商0811080102崔雪娇女23信息丄商0811080103董朝阳男22数学教育数学系0811080104杜鹃女22计算机应用计算机系0811080105方卉女20汉语言文法系课程信息相关表格Cnocnametea

10、nocreditctime0301财务管理0012240302供应链管理0022。2180303生产与运作管理0032.4360304统计学0042。6320305网页制作0052.8300306操作系统原理0063。0320307数据库原理0073.2300308项目管理0083.4450309web程序设计0093.535成绩信息表SnoCnoDegree08110801010306850811080102030390081108010303058608110801040306820811080105030484081108010603018108110801070306930811080

11、1080302790811080109030485081108010100306940811080101103087408110801012030786教师信息表teanotnametsextdepart001卢亚君女财经002李昌明男财经003张富强男财经004刘翠杰女数信005王庆石男数信006黄立明男数信007王纲男计算机008徐伟丽女计算机009刘书霞女计算机/*student1 录入数据*/insert into student (sno,sname, ssex,sage,major, depart) values ( 0811080101, 陈琦, 男, 22, 信息,工商 );i

12、nsert into student(sno, sname,ssex,sage, major, depart) values( 0811080102 ,崔雪娇 , 女,23,信息 ,工商);insert into student(sno,sname,ssex,sage,major, depart) values( 0811080103, 董朝阳, 男, 22,数学教育 ,数学系) ;insert into student(sno, sname, ssex, sage,major,depart) values (0811080104, 杜鹃,女, 22,计算机应用 ,计算机系 );insert

13、into student(sno,sname,ssex,sage,major,depart) values( 0811080105,方卉, 女,20 ,汉语言,文法系)/*class 录入数据*/insert into class(cno,cname,teano,credit,ctime) values( 0301财务管理 001,2 24);insert into class( cno,cname,teano,credit,ctime) values(0302 ,供应链管理, 002 ,2。 2, 18);insert into class(cno,cname,teano,credit,ct

14、ime) values( 0303,生产与运作管理 , 003, 2.4, 36 );insert into class(cno,cname,teano,credit,ctime) values( 0304,统计学 004, 2。6, 32) ;insert into class( cno,cname,teano,credit,ctime) values( 0305 ,网页制作 , 005 , 2。8 30 );insert into class( cno,cname,teano,credit,ctime) values( 0306 ,操作系统原理, 006, 3。 0 32);insert

15、into class (eno, cname, teano, credit,ctime) values (0307数据库原理,007, 3。2, 30);insert into class( cno,cname,teano,credit,ctime) values( 0308,项目原理, 008, 3。 4 45);insert into class(cno,cname,teano,credit,ctime) values( 0309 , web 程序设计, 009 3。5,35);/*score 录入数据*/insert into score(sno,cno,degree)insert in

16、to score(sno,cno,degree)values(0811080101 0303, 90);insert into score(sno,cno,degree)values( 0811080101 0305, 86);insert into score(sno,cno,degree)values( 0811080102 , 0306 , 82) ;insert into score(sno,cno,degree)values(0811080102, 0304 , 84) ;values( 0811080101, 0306,85);insert into score( sno,cno,

17、degree)insert into score( sno,cno,degree)values( 0811080102 0301,81) ;values( 0811080103,0306, 93); insert into score(sno,cno,degree) values(0811080103 ,0302, 79);insert into score(sno,cno,degree) values( 0811080103 , 0304 85) ;insert into score(sno,cno,degree) values( 0811080104,0306 94 );insert in

18、to score( sno,cno,degree) values( 0811080104 0308, 74 );insert into score( sno,cno,degree) values( 0811080104,0307,86 );/*teacher1 录入数据*/insert into teacher(teano, tname,tsex,tdepart) values (001卢亚君,女,财经); insert into teacher(teano,tname,tsex,tdepart) values( 002,李昌明,男, 财经 );insert into teacher(tean

19、o, tname,tsex,tdepart) values( 003,张富强, 男, 财经 ); insert into teacher( teano, tname, tsex,tdepart) values( 004,刘翠杰, 女 ,数信); insert into teacher(teano, tname, tsex,tdepart) values( 005,王庆石 ,男 ,数信) ;insert into teacher(teano, tname, tsex,tdepart) values( 006 ,黄立明,男 ,数信); insert into teacher( teano, tna

20、me, tsex,tdepart) values( 007, 王纲, 男,计算机 ); insert into teacher(teano,tname,tsex,tdepart) values( 008,徐伟丽,女,计算机); insert into teacher( teano,tname,tsex, tdepart) values( 009, 刘书霞 ,女,计算机) ;六、数据库运行和维护阶段要求:给出每个操作的查询代码及运行结果截屏1、数据操作A。单表査询:(1) 查询学号为 0811080101学生的姓名select sname from student where sno = 081

21、1080101;(2) 查询性别为女并且系别为工商的学生姓名select sname from student where ssex = 女 and depart = 工商(3) 查询所有学生的姓名和系别。select sname,depart from student;(4) 查询系别为数学系的学生姓名。select sname from student where depart = 数学系;(5) 查询所有学生所在院系名称select depart from student;(6) 查询学生信息表中年龄小于21和年龄大于21的学生的姓名和系别select sname,depart from

22、 student where sage21;(7) 查询所有学生的平均年龄select trune (avg (sage) from student;这里如果出错,就把 trunc 去掉(8) 查询所有姓董的学生的姓名、学号和性别select sname,sno,ssex from student where sname like 董;(9) 查询选修了0306号课程的学生的学号及成绩、查询结果按分数降序排列select student。sno, degree from score,student,classwhere score。cno = 0306 and student.sno = sc

23、ore。sno and class。cno = 0306 order by degree desc;(10) 查询全体学生情况,查询结果按所在系的系名升序排列,同一系中的学生按年龄降 序排列.select from student order by depart,sage desc;(11) 查询教师总人数select count(teano) 教师人数 from teacher;(12) 查询选修了课程的学生人数select count(cno) 人数 from class;(13) 计算选修0306号课程的学生平均成绩和最高分select avg(degree)平均分,max(degree

24、) 最高分from score,student,classwhere score。cno = 0306 and score。sno = student。sno and o = score。cno;(14) 查询学号为0811080103选修课程的总学分select sum(classo credit)from score,class,studentwhere scoreo sno = 0811080103 and o = class o cno and score.sno = student o sno;(15) 求各个课程号及相应的选课人数select classo cno,count (s

25、。cno)from class left join (select score。 cno from student,score where student.sno = score.sno) son class。eno = ogroup by class。 cnoorder by o;(16)查询选修了2 门以上课程的学生学号select student。 snofrom student,(select score.sno from score group by score。 sno having count(score。 sno)2)swhere student。 sno = s.sno;B连

26、接査询:(1) 查询每个学生及其选修课程的情况。select ss。 sno,ss。 sname,o,ame,s。 degreefrom score s,student ss,class c where s.sno = ss。 sno and o = c。 cno order by sno;(2) 查询选修了0306号课程且成绩在90 分以上的所有学生。select st。 sno,st。 sname,depart,ame,s。 degreefrom student st,class c,score swhere st。 sno = s.sno and c。 cno = s。 cno and

27、c。 cno = 0306 and s。 degree90;(3) 查询每个学生的学号、姓名、选修的课程名及成绩。select st。 sno,st。 sname,ame,s。 degreefrom student st,class c,score swhere st。 sno = s.sno and o = oorder by sno;(4) 查询学生的学号、姓名,所选课程的课程号、课程名和成绩、任课教师名select st。 sno,st。 sname,c。 cno,ame,s。 degree,t。 tnamefrom student st,class c,score s,teacher

28、twhere st.sno = s。 sno and o = o and t.teano = c。 teano;(5) 找出教授数据库原理的老师的教师名select tname from teacherwhere teano = (select teano from class where cname = 数据库原理);C。操作结果集査询:(1)查询 0811080102号同学和 0811080103号同学共同选修的课程select c。 cnamefrom class c,(select cno from score where sno = (select sno from student

29、where sno = 0811080102) s1,(select cno from score where sno = (select sno from student where sno = 0811080103) s2where o=o and o=c。 cno;/或者select c。 cnamefrom class c,(select cno from score where sno = (select sno from student where sno = 0811080102) intersectselect cno from score where sno = (selec

30、t sno from student where sno = 0811080103) s where c。eno = o;(2) 查询既选修了课程0301又选修了0306的学生学号select a。 sno from(select sno from score where cno=0301) a, (select sno from score where cno=0306) b where a。 sno = b。 sno;D。嵌套査询:(1) 查询选修了0306这门课的所有学生的学号、姓名、年龄、院系select student。 sno,sname,sage,departfrom stude

31、ntwhere sno in (select sno from score where cno=0306);(2) 查询选修了课程名为“数据库原理”的学生学号和姓名select sno,snamefrom studentwhere sno in (select sno from score where cno = (select cno from class where cname = 数据库原理);(3)使用exist谓词查询:查询所有选修了 0306号课程的学生姓名.select snamefrom studentwhere exists(select sno from score whe

32、re cno = 0306 and student.sno = score。sno);2、数据库更新操作A。插入数据:向 Student1 表中添加一项记录:姓名:叶问,学号:0811080201,性别:男,年龄:36 专业:信息管理,系别:工商 insert into student( sname,sno,ssex,sage,major,depart) values( 叶问, 0811080201,男 , 36,信息管理,工商);B。修改数据:修改陈琦的学号为 081108023update student set sno = 081108023 where sname=陈琦;C删除数据:删

33、除所有工商学生的记录delete from student where depart = 工商;3、为数据库建立索引 创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据 的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加 速表与表之间的连接,特别是实现数据的参考完整性方面特有意义.第四,在使用 ORDER BY 和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间.第五,通过 使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。A。创建索引:(1) 在 class 表的 cname 列上创建非聚集索引 cla

34、ssrname。create index classname on class(cname);(2) 在 teacher1 表的 tname 列上创建唯一的非聚集索引 teacher1name.create unique index teachername on teacher(tname);(3)在Studentl表的sname列创建一个非聚集索引studentlname,要求索引键值按sname 降序排列。create index studentname on student(sname desc) ;B。删除索引:删除 studentl 表中的 studentlname 索引.drop

35、index studentname;4、视图的操作:数据库视图的定义(创建和删除)、查询和更新A。创建视图:(1) 建立计算机系学生的视图IS_Studentcreate view is_student as select from student where depart =计算机系;(2) 建立计算机系选修了 0306号课程的学生成绩视图IS_S1create view is_s1 asselect st。 sname, o, degreefrom student st,score swhere st.sno = s.sno and o = 0306 and depart =计算机系;(3

36、) 将学生的学号及他的平均成绩定义为一个视图S_Gcreate view s_g asselect sno,round(avg(degree) avgfrom scoregroup by sno;(4) 将所有女生记录定义为一个视图F_St uden t。create view f_student asselect from student where ssex =女;(5) 将所有学生选课的信息,包括学号、姓名、课程号、课程名、成绩定义为一个视图score3create view score3 asselect st。sno, st.sname, c。cno, ame,s.degreefro

37、m student st,class c,score swhere st.sno = s。sno and o = s。cno;B。更新视图:修改信息:在上面创建的score3视图中将董朝阳的名字改为董阳update score3 set sname= 董阳 where sname = 董朝阳;注意:如果上面的代码执行的时候出错。则用下面的代码就可以执行了.这里的视图是多表 联合建的视图,一般是不允许更新,插入操作的。要更新,插入必须修改原表数据才行.所以 先修改原表数据,在进行创建视图。这样视图也就更新了。视图只是表中查找出来的数据 是虚表.普通视图是允许修改的。多表联合组建的视图一般不允许修

38、改。update student set sname= 董阳 where sname = 董朝阳;drop view score3;create view score3 asselect st.sno, st.sname, c。cno,c。cname,s。degreefrom student st, class c,score swhere st.sno = s.sno and o = s。 cno;C、删除视图:删除信息:删除第 score3 视图中陈琪琪的记录delete from score3 where sname= 陈琪琪;5、数据库的安全性A、创建SQLServer身份验证的登录账

39、户:陈琦、崔雪娇、董朝阳、杜鹃,密码均为123456 exec sp_addlogin 陈琦, 123456 ;exec sp_addlogin 崔雪娇, 123456;exec sp_addlogin 董朝阳, 123456;exec sp_addlogin 杜鹃, 123456;B、创建数据库用户:陈琦、崔雪娇、董朝阳、杜鹃分别与对应的同名登录账户关联exec sp_adduser 陈琦,陈琦;exec sp_adduser 崔雪娇,崔雪娇;exec sp_adduser 董朝阳 ,董朝阳;exec sp_adduser 杜鹃,杜鹃;C、建立数据库角色:managerssp_addrole

40、 managers;D、删除SQLServer身份验证的登录账户杜鹃exec sp_droplogin 杜鹃;E、从当前数据库中删除用户杜鹃sp_revokedbaccess 杜鹃 ;F、授权操作:(1) 把对表 student1 的 insert 权限授予用户董朝阳,并允许他再将此权限授予其他用 户。use 建立的数据库名称(这里指的是你自己建立数据库的名字)gogrant insert on student to 董朝阳 with grant option;(2) 把查询表 student1 和修改 major 属性的权限授给用户陈琦。use 建立的数据库名称gogrant select

41、on student to 陈琦;grant update on student(major) to 陈琦;(3) 把用户陈琦查询表studentl权限收回。remoke select on student to 陈琦 ;6、数据库的完整性(1)对于 class 表:class (cno,cname, tno,credit,ctime), credit 的值应该在 0 和 6 之间/*删除表 class*/drop table class purge; (如果已经有了 class 表,则执行。没有的话跳过此步。执行出错 的话。去掉 purge)create table class( cno c

42、har(10) primary key, cname char(50) not null, teano char(10) not null, credit char(4) check (credit between 0 and 9), ctime char(50) not null);对于studentl表:ssex的值应该是男or女drop table student purge;(如果已经有了 class表,则执行.没有的话跳过此步。执行出错 的话。去掉 purge)create table student( sno char( l0) primary key, sname char(l0) not null, ssex char(2) check ( ssex in ( 男 ,女 ), sage char(2) not null, major char( l0) not null, depart char( l0) not null);七、总结:学弟学妹们借鉴可以,但是不要全部抄哦.欠了的迟早 是要还的。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!