sqlserver大作业Word文档格式.docx
- 文档编号:16776750
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:17
- 大小:261.23KB
sqlserver大作业Word文档格式.docx
《sqlserver大作业Word文档格式.docx》由会员分享,可在线阅读,更多相关《sqlserver大作业Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
教务管理系统涉及到校、系、师、生的诸多方面。
随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,需要开发基于互联网的教务管理系统来提高管理工作的效率。
基于互联网的教务管理系统,在学生选课的规管理、科学统计和快速查询方面具有较大的实用意义。
它提高了信息的开放性,大改善了学生、教师对其最新信息查询的准确性。
因此,开发出一个系统的、完善的教务管理系统是非常重要的,它涉及很多表,如学生表、教师表、课程表、选课表等等,也是为了更加方便老师和学生,以下是此系统的设计。
二:
系统功能分析
总的流程图如下:
教务管理系统
学生信息管理
教师信息管理
课程信息管理
专业信息管理
教室信息管理
1)学生信息管理流程图
2)教师信息管理流程图
3)课程信息管理流程图
4)专业信息管理流程图
5)教室信息管理流程图
教室信息管理
教
室
信
息
教室分配
教室容量
三:
数据库设计
1)Student表
列名
数据类型
约束
sno
varchar
不为空、唯一
sname
varchar
不为空
ssex
char
不为空
sdept
sphone
-------
2)Classroom表
clano
claname
clasize
int
clatutor
clamajor
claacademy
3)Score表
约束
与cno联合做主键,参照其他表
cno
与sno联合做主键,参照其他表
grade
float
------------------
4)Major表
mno
mname
msize
academy
5)Teacher表
tno
tname
tsex
char
tlevel
tphone
6)Course表
数据类型
cname
period
credit
category
四
教师
学生
专业
学号sno
姓名sname
性别ssex
系别sdept
电话sphone
教师编号tno
教师姓名tname
教师性别tsex
教师级别tlevel
教师电话tphone
专业代号mno
专业名称mname
专业人数msize
所属院系academy
课程
课程号cno
课程名cname
学时period
学分credit
类别category
teach
study
属于1
属于2
E-R图:
1
1
n
nn
五:
1.物理设计
(1)创建education数据库:
createdatabaseeducation
onprimary(
name=教务管理数据文件,
filename='
d:
\extra\教务管理\教务管理数据文件.mdf'
size=5,maxsize=10,filegrowth=1)
logon(
name=教务管理日志文件,
\extra\教务管理\教务管理日志文件.ldf'
size=3,maxsize=10,filegrowth=1)
(2)建表语句
学生表:
createtablestudent
(
snovarchar(20)notnullprimarykey,
snamevarchar(20)notnull,
ssexchar
(2)notnull,
sdeptvarchar(20)notnull,
sphonevarchar(11)
)
教师表:
createtableteacher
tnovarchar(20)notnullprimarykey,
tnamevarchar(20)notnull,
tsexchar
(2)notnull,
tlevelvarchar(12)notnull,
tphonevarchar(11)
课程表
createtablecourse
ovarchar(20)notnullprimarykey,
tnovarchar(20)notnull,
amevarchar(20)notnull,
periodint,
creditint,
categoryvarchar(20)
教室表:
createtableclassroom
clanovarchar(20)notnullprimarykey,
clanamevarchar(30)notnull,
clasizeint,
clatutorvarchar(12),
clamajorvarchar(12),
claacademyvarchar(12)
专业表:
createtablemajor
mnovarchar(20)notnullprimarykey,
mnamevarchar(20)notnull,
msizeint,
academyvarchar(12)
Score表:
create
table
score
(
sno
varchar(12),
o
grade
float,
constraintpk_sno_cnoprimary
key(sno,cno)
)
SelectCourse表
createtableSelectCourse
snovarchar(12)notnull,
ovarchar(12)notnull,
key(sno,cno))
教务管理员表:
createtablecontroller
umvarchar(12)notnullprimarykey,
clevelvarchar(12)notnull,
cphonevarchar(11)
3)插入语句
A)向student表插入数据:
insertintostudent
values
('
1315001'
'
顾寒寒'
女'
is'
'
);
B):
向course表插入数据:
insertintocourse
001'
'
1115001'
java'
12,4,'
工科类'
C):
向score表插入数据:
13150001'
89)
2.查询
1)学生信息管理涉及查询
A)查询学生信息
select*fromstudent;
B)学生修改个人信息
updatestudentsetsno='
wheresno='
;
C)学生查看个人成绩
selectgradefromscorewheresno='
ando='
D)选修课程
selectofromSelectCoursewheresno='
2)教室信息管理涉及查询
A)查询教师信息
select*fromteacher;
B)查询学生成绩
3.视图
1)学生信息视图
createviewstudent_viewasselect*fromstudent;
2)教师信息视图
createviewteacher_viewasselect*fromstudent;
3)教室信息视图
createviewclassroom_viewasselect*fromclassroom;
4)专业信息视图
createviewmajor_viewasselect*frommajor;
5)课程信息视图
createviewcourse_viewasselect*fromcourse;
4.存储过程
1)建立删除教师存储过程
createproceduredelete_teacher_proctnovarchar(20)
as
ifexists(select*fromcoursewheretno=tno)
return1
begin
deletefromteacherwheretno=tno
end
2)建立删除学生存储过程
createproceduredelete_student_proc
snovarchar(20)
ifexists(select*fromSelectCoursewheresno=sno)
deletefromstudentwheresno=sno
ifexists(select*fromScorewheresno=sno)
deletefromScorewheresno=sno
end
3)建立删除课程存储过程
createproceduredelete_course_proc
cnovarchar(20)
ifexists(select*fromcoursewhereo=cno)
ifexists(select*fromSelectCoursewhereo=cno)
deletefromcoursewhereo=cno
ifexists(select*fromScorewhereo=cno)
deletefromScorewhereo=cno
5.函数
createfunctionfun_select(v_novarchar(15))
returnsint
begin
declarecountsint
selectcounts=
(selectcount(*)fromstudentwheresno=v_no)
returncounts
end
6.触发器
1)在教师表中建立删除教师触发器
createtriggerdelete_teacher
onteacherfordelete
declaretnovarchar(20)
deletefromcourse
2)在选课信息表中建立选课触发器
createtriggerxk_SelectCourseonSelectCourse
forinsert,update
as
if(selectcount(*)fromSelectCourse,inserted
whereSelectCo=o)>
30
print'
所对应课程选课人数不能超过人!
rollback
elseif
selectcount(*)fromstudent,inserted
wherestudent.sno=inserted.sno)>
7
对应学生的选课不能超过门!
(selectiftakeCoursefromcontrol)='
0'
当前不是选课时间段!
7.权限设计
1)将所有表、视图、触发器和存储过程的全部权限都授予给教务管理员
grantallprivileges
ontablestudent,score,course,SelectCourse
to教务管理员
grantselectonview(所有视图)to教务管理员
2)给教师授权
grantselectonview(所有视图)to教师
grantinsertontablescoreto教师
grantselect,updateontableteacherto教师
3)给学生授权
grantselectonview(所有视图)to学生
grantselect,updateontablestudentto学生
grantinsert,delete,updateontableSelectCourseto学生
8.总结
理论联系实际才能做好一件事,学习一门课程同样是这样。
通过一周的数据库课程设计实习,我受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。
并且对数据库应用这一门课程有了更深一步的理解。
在做课程设计中,我们可以把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。
同样通过对SqlServer的应用,也使我们熟练和巩固了对SqlServer的理解。
这样我们对开发系统的整个过程也有了一个系统的了解。
这次课程设计,课题是《教务管理系统》,在教务管理系统的开发中采用了完整的数据库设计的全过程,从需求分析到概念结构设计,到逻辑结构设计,再到物理结构设计,最后到数据库的实施和维护,每一步都认真的分析和实施。
当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习更多的知识,进行更深研究。
在这次实习中,我们完全投入到了开发系统的世界里。
结束后明白了理论和实践要想充分地结合,需要非常扎实的基本功。
这就说明学好基础知识是理论付诸实践的前提。
在开发教务管理系统中我学到了很多,希望在以后能充分利用实习的机会充实自己,用所学的理论知识充分去实践,在实践中又要努力去巩固理论知识。
只有这样,才能把一门课程甚至一门学科学精、学透。
参考文献:
《SqlServer2008数据库应用与开发教程》
《数据库系统概论》
以及相关XX文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sqlserver 作业