1、(完整word)学生成绩管理系统数据库学生成绩管理系统数据库一、需求分析阶段1.信息需求高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境.2。功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。具体功能应包括:系统应该提供课程安
2、排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。3. 安全性与完整性要求二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。设计教室管理数据库包括班级、教室、课程、教师四个关系。E-R图如下课程信息表学分教师号课程号课程名学时学生信息表学号姓名专业年龄系别性别选课成绩课程号学号教师信息表教师号教师名教师性别教课教师系别成绩三、逻辑结构设计阶段逻辑结构是独立于任何一种数据模型的信息结构.逻辑结构的任务是把概念结构设计阶段设计好的基本ER图转化为宜选用的DBMS所支持的
3、数据模型相符合的逻辑结构,并对其进行优化.E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码.设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)1、课程信息表(class)字段名描述数据类型字段限制cno课程号char(10)Primarykeycname课程名
4、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。教师表(teacher1)字段名属 性数据类型字段权限teano教师号char(10)
5、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、创建数据库(1) 打开SQL工具“查询分析器(2) 在查询窗口中键入下列SQL语句create database ScoreSystem执行上述SQL语句即可新建一名为ScoreSystem的数据库2、创建数据表 一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库.数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程.在此学生成绩
7、管理系统中需要创建四个表,即课程信息表、学生信息表、教师信息表和成绩表。创建数据库后,为ScoreSystem数据库添加数据表,步骤如下.(1) 新建查询窗口(2) 在查询窗口中键入下列SQL语句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 /学时 ) 执行上述SQL语句即可创建课程信息表相关表格c
8、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, / /系别 )执行上述SQL语句即可创建学生信息表相关表格create table teacher1( /创建教师信息表 tno char(10) primary key, /教师号 tname var
9、char(50) not null, /教师名 tsex char(2), /教师性别 tdepart varchar(50) /教师系别 )执行上述SQL语句即可创建教师信息表相关表格create table score( /创建成绩表 sno char(10), /学号 cno char(10), /课程号 )执行上述SQL语句即可创建成绩表相关表格学生信息相关表格Snosnamessexsagemajordepart陈琦男 22信息工商崔雪娇女 23信息工商董朝阳男22数学教育数学系杜鹃女22计算机应用计算机系方卉女20汉语言文法系课程信息相关表格Cnocnametnocreditcti
10、me0301财务管理0012240302供应链管理0022.2180303生产与运作管理0032.4360304统计学0042.6320305网页制作0052。8300306操作系统原理0063。0320307数据库原理0073。2300308项目管理0083。4450309web程序设计0093.535成绩信息表SnoCnoDegree0306 85030390030586030682030484030181030693030279030485030694030874030786教师信息表tnotnametsextdepart001卢亚君女财经002李昌明男财经003张富强男财经004刘翠杰
11、女数信005王庆石男数信006黄立明男数信007王纲男计算机008徐伟丽女计算机009刘书霞女计算机六、数据库运行和维护阶段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
12、, )(2)基本表的删除drop table students 2、数据操作数据库查询操作A.单表查询:(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
13、depart =数学系结果:(5)查询所有学生所在院系名称select distinct departfrom student结果:(6)查询学生信息表中年龄小于21和年龄大于21的学生的姓名和系别select sname,departfrom student1where sage21 or sage21结果:(7)查询所有学生的平均年龄select avg(sage) as 平均年龄from Student1结果:B.连接查询(1)学生的学号、姓名,所选课程的课程号、课程名和成绩、任课教师名Select student1。sno,student1。sname,class。cno,class。
14、cname,score.degree,teacher1.tnamefrom student,class,score,teacher1Where student1.sno=score。sno and o=o and teacher1.tno=class。tno结果:(2)找出教授数据库原理的老师的教师名select teacher1。tnamefrom class,teacher1Where class。tno=teacher1.tno and class。cname=数据库原理结果:C。操作结果集查询 查询号同学和号同学共同选修的课程Select cnoFrom scoreWhere sno=
15、IntersectSelect cnoFrom scoreWhere sno=查询结果D。嵌套查询 查询选修了0306这门课的所有学生的学号、姓名、年龄、院系Select sno,sname,sage,departFrom student1Where sno in (select sno From score Where cno=0306)查询结果3、数据库更新操作A.插入数据向Student1表中添加一项记录:姓名:叶问,学号:,性别:男,年龄:36专业:信息管理,系别:工商InsertInto Student1(Sno,Sname, Ssex,sage,major,depart)Value
16、s (, 叶问, 男, 36, 信息管理,工商)B。修改数据修改陈琦的学号为:Update Student1Set Sno=Where Sname=陈琦;C.删除数据删除所有工商学生的记录Delete from student1Where(depart=工商);4、为数据库建立索引创建索引可以大大提高系统的性能.第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是所以的最主要原因。第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义.第四,在使用ORDER BY和GROUP BY子句进行数据检索时,同样可以显著减少查询中分组和排序的时
17、间。第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。A。创建索引:(1) 在class表的cno列上创建非聚集索引。 Create index classrname ON class (cno)(2) 在student1表的sno列上创建非聚集索引。 Create unique index student1no ON Student1 (sno)(3) 在Student1表的sno列创建一个非聚集索引,要求索引键值按sno升序排列。 Create index student1no ON student1(sno ASC)B。删除索引:(1)删除student1表中的stud
18、ent1no 索引. Drop index student1no5、视图的操作:数据库视图的定义(创建和删除)、查询和更新A。查询所有学生选课的信息,包括学号、姓名、课程号、课程名、成绩create view score3asselect s。sno学号,sname学生名,o课程号,cname课程名,sc.degree成绩from student1 s,class c,score scwhere s.sno=sc.sno and o=sc。cno go查询结果B。更新视图:(1)修改信息:将陈琦的名字改为陈琪琪Update score3set 学生名=陈琪琪where 学生名=陈琦(2)删除信
19、息:删除视图score3 中陈琪琪的记录deletefrom scorewhere 学生名=陈琪琪删除视图:删除前面的score3视图。drop view score36、数据库的安全性创建SQLServer身份验证的登录账户陈琦、崔雪娇、董朝阳、杜鹃EXEC sp_addlogin 陈琦,000,AAAEXEC sp_addlogin 崔雪娇,000,AAAEXEC sp_addlogin 董朝阳,000,AAAEXEC sp_addlogin 杜鹃,000,AAA创建数据库用户EXEC sp_adduser 陈琦 EXEC sp_adduser 崔雪娇EXEC sp_adduser 董朝阳
20、EXEC sp_adduser 杜鹃, 杜鹃, managers建立数据库角色EXEC sp_addrole managers删除SQLServer身份验证的登录账户 杜鹃EXEC sp_droplogin 杜鹃从当前数据库中删除用户 杜鹃EXEC sp_dropuser 杜鹃授权操作(1)把对表student的insert权限授予用户董朝阳,并允许他再将此权限授予其他用户。 grant insert on table Goods to 董朝阳 with grant option(2)把查询表Goods和修改nowprice属性的权限授给用户陈琦。grant select,update(now
21、price)on table Goodsto 陈琦(3)把用户陈琦查询表Goods权限收回.revoke select on table Goodsfrom 陈琦 cascade7、数据库的完整性对于class表:class (cno,cname,tno,credit,ctime),cno的值应该在0和20之间:create table Class( /创建课程信息表 cno char(10) primary key, /课程号cname char(10) not null, /课程名 teano char(10) Not null /教师号credit char(4), Not null /
22、学分ctime char(50), Not null /学时check (cno 0 and cno=20 ) )七、总结 本学生成绩查询系统主要参照课本,相对来说比较简单.但是由于主要以课本为依据,所以整个设计做下来基本掌握了课本上数据库的基础操作。设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。(1)操作视图查询,编写代码时发现,一个表中的主键必须是另一个表的外键时才可以对另一个表进行引用.(2)在设计表时应注意使用正确的字段类型.(3)在建表语句中,如果这个表的主键是多个属性的组合主键,则必须作为表级完整性进行定义。还认真开展了6次全国统一行动,遏制了因三超一疲劳而引发的交通事故;在三、四、五月份,我队还按照州政府、州安委会、州支队要求,开展了道路交通集中整治专项行动、治理酒后驾驶、摩托车、电动车专项治理行动,均取得了一定的成效。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100