网络数据库学生成绩管理系统设计.docx
《网络数据库学生成绩管理系统设计.docx》由会员分享,可在线阅读,更多相关《网络数据库学生成绩管理系统设计.docx(24页珍藏版)》请在冰豆网上搜索。
网络数据库学生成绩管理系统设计
《网络数据库》期中作业
课题:
学生成绩管理系统
2011年05月17日
学生成绩管理系统
①、学生成绩管理系统设计背景
本项目的设计者是08电信
(2)第十四小组,服务对象是西北民族大学在校学生,用户是学生、办公室。
由于考试后成绩整理及成绩查询所耗费的时间较大,所以开发此软件对学生成绩进行管理。
具体包括以下的内容:
(1)某大学有若干名学生,每个学生每学期必须学习若干门课程。
(2)每个学生有学号、姓名、班级等基本信息。
(3)没门课程有课程号课程名称、任课教师、学分等信息。
(4)学校需要对学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行查询、浏览和修改。
根据其建立的表有stuxx、teaxx、stuzy、choose、course表。
choose(学号、课程号、成绩)
course(课程号、课程名、学时数、职工号)
stuxx(学号、姓名、性别、年龄、专业)
teaxx(职工号、姓名、性别、职称)
stuzy(学院名、专业)
②、建立的五个表及其数据类型如下:
表一:
stuxx
createdatabasesgms
go
usesgms
createtablestuxx
(
--学号
snovarchar(3)notnullprimarykey,
--姓名
snamevarchar(6)notnull,
--性别
ssexvarchar
(2)notnull,
--年龄
sagesmallint,
--专业
deptvarchar(4),
)
插入数据:
insertintostuxx
values('101','张明','男','20','电信')
insertintostuxx
values('102','王楠','女','21','土木')
insertintostuxx
values('103','黎明','男','19','化工')
insertintostuxx
values('104','淳嫔','女','19','化工')
insertintostuxx
values('875','李丽','女','19','电信')
insertintostuxx
values('111','郭美','女','21','管理')
insertintostuxx
values('117','张灿','女','22','生科')
insertintostuxx
values('118','李波','男','22','土木')
insertintostuxx
values('123','安宁','男','21','电信')
insertintostuxx
values('128','王海','男','23','电信')
insertintostuxx
values('130','小强','男','16','土木')
insertintostuxx
values('132','保良','男','18','管理')
insertintostuxx
values('113','符强','男','23','生科')
insertintostuxx
values('289','米粒','女','21','化工')
insertintostuxx
values('163','刘雨','女','20','电信')
insertintostuxx
values('164','宇通','男','23','生科')
insertintostuxx
values('178','郭结','女','21','管理')
insertintostuxx
values('190','绿叶','女','21','土木')
insertintostuxx
values('193','安华','男','21','土木')
insertintostuxx
values('152','灿加','男','24','电信')
列名
数据类型
长度
字段含义
Sno
varchar
3
学生学号
Sname
varchar
6
学生姓名
Ssex
varchar
2
性别
Sage
smallint
4
年龄
Dept
varchar
4
专业
表二:
teaxx
createtableteaxx
(
--教工号
tnovarchar(3)notnullprimarykey,
--姓名
tnamevarchar(4)notnull,
--性别
tsexvarchar
(2)notnull,
--职称
profvarchar(6),
)
插入数据:
insertintoteaxx
values('001','郭华','男','副教授')
insertintoteaxx
values('002','纳迦','男','副教授')
insertintoteaxx
values('003','刘阳','女','助教')
insertintoteaxx
values('004','李勇','男','讲师')
insertintoteaxx
values('005','李湘','女','教授')
insertintoteaxx
values('006','张三','男','副教授')
insertintoteaxx
values('007','李斯','男','助教')
insertintoteaxx
values('008','杨雪','女','讲师')
insertintoteaxx
values('009','马家','男','教授')
insertintoteaxx
values('010','馨予','女','教授')
insertintoteaxx
values('011','小丹','女','副教授')
insertintoteaxx
values('012','灿梅','女','教授')
insertintoteaxx
values('013','孙俪','女','助教')
insertintoteaxx
values('014','杨丹','女','讲师')
insertintoteaxx
values('015','周迅','女','副教授')
insertintoteaxx
values('016','逸迅','男','教授')
insertintoteaxx
values('017','德华','男','副教授')
insertintoteaxx
values('018','品超','男','助教')
insertintoteaxx
values('019','王欢','女','副教授')
insertintoteaxx
values('020','李丽','女','副教授')
列名
数据类型
长度
字段含义
Tno
Varchar
3
教工编号
Tname
Varchar
4
教师姓名
Tsex
Varchar
2
教师性别
Prof
varchar
6
教师职称
表三:
stuzy
createtablestuzy
(
--专业
deptvarchar(10),
--学院
collvarchar(10),
)
insertintostuzy
values('电信','电气')
insertintostuzy
values('自动化','电气')
insertintostuzy
values('藏物','电气')
insertintostuzy
values('通信','电气')
insertintostuzy
values('制药','化工')
insertintostuzy
values('藏数','计算机')
insertintostuzy
values('岩石力学','土木')
insertintostuzy
values('土建','土木')
insertintostuzy
values('桥梁','土木')
insertintostuzy
values('测绘','土木')
insertintostuzy
values('藏工商','管理')
insertintostuzy
values('统计学','管理')
列名
数据类型
长度
字段含义
Dept
Varchar
10
专业
Coll
varchar
10
学院
表四:
choose
createtablechoose
(
--学号
snovarchar(3)notnullreferencesstuxx(sno),
--课程号
cnovarchar(5)notnullreferencescourse(cno),
--成绩
degreedecimal(4,1)
插入数据:
insertintochoose
values('101','10001','72')
insertintochoose
values('102','10001','88')
insertintochoose
values('103','10001','90')
insertintochoose
values('104','10001','89')
insertintochoose
values('101','10007','89')
insertintochoose
values('875','10005','78')
insertintochoose
values('117','10007','90')
insertintochoose
values('118','10004','98')
insertintochoose
values('123','10007','97')
insertintochoose
values('128','10010','54')
insertintochoose
values('130','10011','88')
insertintochoose
values('132','10013','56')
insertintochoose
values('113','10019','77')
insertintochoose
values('289','10012','72')
insertintochoose
values('163','10015','60')
insertintochoose
values('164','10018','75')
insertintochoose
values('178','10017','56')
insertintochoose
values('190','10020','56')
insertintochoose
values('193','10013','59')
insertintochoose
values('152','10014','60')
列名
数据类型
长度
字段含义
Sno
Varchar
3
学生学号
Cno
Varchar
5
课程编号
Degree
decimal
(4,1)
学生成绩
表五:
course
createtablecourse
(
--课程号
cnovarchar(5)notnullprimarykey,
--课程名
cnamevarchar(10)notnull,
--教工号
tnovarchar(3)referencesteaxx(tno),
--学时
ctsmallint,
)
插入数据:
insertintocourse
values('10001','软件工程','001','36')
insertintocourse
values('10002','数据库','001','72')
insertintocourse
values('10003','C语言','002','72')
insertintocourse
values('10004','计算机网络','003','108')
insertintocourse
values('10005','大学英语','004','108')
insertintocourse
values('10006','物理学','005','72')
insertintocourse
values('10007','概率论','005','108')
insertintocourse
values('10008','大学语文','006','72')
insertintocourse
values('10009','马原','007','72')
insertintocourse
values('10010','电磁场','008','72')
insertintocourse
values('10011','高等数学','009','108')
insertintocourse
values('10012','制药学','010','72')
insertintocourse
values('10013','控制原理','011','72')
insertintocourse
values('10014','电路','012','108')
insertintocourse
values('10015','信号与系统','011','108')
insertintocourse
values('10016','软件技术','013','72')
insertintocourse
values('10017','混泥土结构','014','72')
insertintocourse
values('10018','公共关系','015','72')
insertintocourse
values('10019','民族理论','016','72')
insertintocourse
values('10020','计算机基础','017','72')
列名
数据类型
长度
字段含义
Cno
Varchar
5
课程编号
Cname
Varchar
10
课程名称
Tno
Varchar
3
教师编号
Ct
smallint
4
学时
③、SQL语句:
Ⅰ、对stuzy表增加两列,列名为:
辅导员(fdy)和班级(class)。
ALTERTABLEstuzyaddfdyvarchar;
ALTERTABLEstuzyaddclassvarchar;
Ⅱ、建立基于学生信息表土木系学生、教师表男老师的视图。
createviewtm_student
as
selectsno,sname,ssex,sage,dept
fromstuxx
wheredept='土木';
createviewman_teacher
as
selecttno,tname,tsex,prof
fromteaxx
wheretsex='男';
Ⅲ删除tm_student的视图
dropviewtm_student;
Ⅳ、创建用户设置权限。
createloginstudent
withpassword='411';
usesgms;
createuserstudentforloginstudent;
go
grantselectonchooseTOstudent
Ⅴ、收回权限:
revokeselectonchooseTOstudent
修改权限:
denyselectonchooseTOstudent
Ⅵ、更新:
修改choose表中对学号为193的学生的成绩加1分。
updatechoose
setdegree=degree+1
wheresno='193';
更新后:
更新前:
Ⅶ、删除学号为101学生的记录。
delete
fromstuxx
wheresno='101';
delete
fromchoose
wheresno='101';
Ⅷ、建立四个查询。
1单表查询:
查询stuxx中的所有记录的Sname、Ssex和dept列。
selectSname,Ssex,dept
Fromstuxx;
查询Score表中成绩在55到75之间的所有记录。
SELECTsno
FROMchoose
wheredegree>55ANDdegree<75;
以degree降序查询choose表的所有记录。
SELECT*
FROMchoose
orderbydegreeDESC;
②、集合函数查询
查询学生信息表中的男生的总人数及平均年龄。
selectcount(*),avg(sage)
fromstuxx
wheressex='男';
查询学生信息表中的最大年龄。
selectmax(sage)
fromstuxx
③、嵌套查询
查询choose表中最高分学生的学号和课程号。
selectsno,cno
fromchoose
wheredegree=(
selectmax(degree)
fromchoose)
查询选修了课程名为”软件工程”的学生学号和姓名
selectsno,sname
fromstuxx
wheresnoin
(selectsno
fromchoose
wherecnoin
(selectcno
fromcourse
wherecname='软件工程'));
④多表格查询
查询学生的选课信息及其成绩
selectstuxx.sno,stuxx.sname,stuxx.dept,choose.degree,o
fromstuxx,choose
wherestuxx.sno=choose.sno;
查询选修了课程“10001”或者选修了课程“10007”的学生。
selectsno
fromchoose
wherecno='10001'
union
selectsno
fromchoose
wherecno='10007';
Ⅶ、①数据库安全措施有哪些?
数据库数据安全包括:
1、用户操作管理权限。
2、服务器设置系统安全。
3、服务器物理位置安全。
4、线路通讯安全、加密传输.。
5、数据库安全备份、转移、灾难恢复。
.
6、数据库应用系统安全。
②索引的功能是?
引入索引的目的是为了加快查询的速度。
在无条件查询的情况下会查询所有的纪录,但是在有条件查询的情况下,如果仍然还要先查询出所有的纪录,然后才能找到符合条件的纪录的话,未免有些迟钝,显然缺失技巧。
设想一个包含数百万纪录的表,要在其中挑出符合条件的一条纪录,如果没有索引,RDBMS就要顺序地、逐条地读取纪录并进行条件比较(全表扫描)。
这个计算量就大了,而且需要大量的I/O操作,从而影响系统的戏能。
简单的说,如果将表看作一本书,索引的作用就类似于书中的目录。
在没有目录的情况下,要在书中查找制定的内容(即查询条件),必须查阅全书;而有了目录之后,只需要通过目录就可以快速地找到包含所需内容的页。
类似的,如果在表中插叙指定的纪录,在没有索引的情况下,必须遍历整个表,而有了索引之后,只需要先在索引中找到符合条件的索引列值,就可以通过保存在索引中的ROWID(相当于页码)快速找到表中对应的纪录。
因此,为表建立索引,既能够减少查询操作的时间开销,又能产少I/O操作的开销。
③概念设计、物理设计、逻辑设计的不同之处
概念设计、逻辑设计、物理设计的基本过程和主要功能是有区别的,具体如下:
a.概念设计是将需求分析得到的用户需求抽象为信息机构模型的过程就是概念设计。
概念设计使整个数据库设计的关键;
b.概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是把概念结构设计阶段设计好的基本有E-R图转换为DBMS产品所支持的数据模型相符合的逻辑结构,逻辑设计的主要工作是将E-R图转换为指定RDBMS中的关系模式(E-R图转换为一般的关系、层次、网状模型);
c.物理设计通常分为两步:
①确定数据库的物理结构,在关系数据库中主要是指存储方法和存储结构;
②对物理结构进行评价,评价的重点是时间和空间效率;
由于需求分析阶段的任务是通过详细设计调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后再此基础上确定新系统的功能。
新系统必须充分考虑今后可能的扩充和改变,必须由各个阶段的人充分了解各阶段得需求,而且若需改正及维护起来比较方便,不能进按当前应用需求来设计数据库。
所以这三个阶段不能由同一个人设计。