数据库课程设计图书馆管理系统Word下载.docx

上传人:b****7 文档编号:22216349 上传时间:2023-02-03 格式:DOCX 页数:17 大小:88.48KB
下载 相关 举报
数据库课程设计图书馆管理系统Word下载.docx_第1页
第1页 / 共17页
数据库课程设计图书馆管理系统Word下载.docx_第2页
第2页 / 共17页
数据库课程设计图书馆管理系统Word下载.docx_第3页
第3页 / 共17页
数据库课程设计图书馆管理系统Word下载.docx_第4页
第4页 / 共17页
数据库课程设计图书馆管理系统Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库课程设计图书馆管理系统Word下载.docx

《数据库课程设计图书馆管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书馆管理系统Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

数据库课程设计图书馆管理系统Word下载.docx

参照完整性、实体完整性、自定义完整性(包括触发器)

③安全性设计:

设置用户,并相应设计用户的权限或角色(用户设计至少3个,有不同的权限)

④使用触发器、游标或存储过程完成相关操作,至少使用1种技术。

(6)以上内容,请详细描述,并有必要抓图.

四、实验结果及分析

(一)需求分析

1、信息需求:

教务管理系统涉及的实体有:

学生:

学号、姓名、性别;

班级:

班级名称、学制、入学年份;

专业:

专业编号、专业名称;

系部:

系编号、系名称;

教师:

教工号、姓名;

课程:

课程号、课程名、学分。

实体间的联系:

一个系有若干专业,每个专业有若干个班级,每个班有若干个学生;

每个系有若干教师,教师分为两种:

授课教师和教学秘书,每个系有一名教学秘书;

一名教师可以教授多门课程,可以教授多个班级;

每个学生可以学习多名课程,每门课程可以被若干个学生学习。

学生选修课程分为必修和选修,每门课程都有一个期末成绩,可以重修或补考两次,总评取3个成绩中最高的,还有选修课程的年份和学期。

2、功能需求:

教务管理系统的用户分为:

学生、教师、管理员。

学生可以查询成绩、修改密码、选修课程。

教师又分为普通教师和教学秘书,普通教师可以登记成绩、查询成绩;

教学秘书可以查询成绩、为某个班级指定必修课、为教师指定其教授的课程及授课班级。

管理员具有管理系统的所有权利。

数据流图:

(二)概念结构设计

(三)逻辑结构设计

1、根据系统的概念结构分析,得出其关系模式如下:

系部(系编号,系名称)

专业(专业编号,所属系部,专业名称)

班级(班级名称,所属专业,所属系部)

学生(学号,姓名,性别,班级)

课程(课程号,课程名,学分)

教工(教工号,姓名,所属系部)

就职(系编号,系教学秘书)

教授(教工号,课程号,教授班级)

学习(学号,课程号,期末,总评,补考1,补考2,学期,学年,课程类型)

因为关系模式“就职”和“系部”具有相同的码,所以将两个关系模式合并,得到关系模式:

系部(系编号,系名称,系教学秘书)

2、设计视图:

(1)为学生查询成绩设计视图:

成绩1(课程名,期末,总评,重修1/补考1,重修2/补考2,学分,必修/选修,学年,学期)。

(2)为教师查询成绩设计视图:

成绩2(学号,姓名,课程名,期末,总评,必修/选修,学年,学期,班级)

(3)为教学秘书查询成绩设计视图:

成绩3(学号,姓名,课程名,总评,必修选修,学年,学期,班级)

(4)为教师上传成绩设计视图:

成绩4(学号,姓名,课程名,成绩)

(四)物理设计

1、根据逻辑结构所设计的关系模式创建基本表,并创建主键。

系统自动为主键字段创建索引。

系部表:

department

列名

数据类型

长度

允许空

主键/外键

索引

备注

dno

varchar

2

主键

升序

系编号

dname

10

系名

dtea

外键:

teacher.tno

系教学秘书

专业表:

subject

sbno

专业编号

department.dno

所属系部

sbname

专业名

班级表:

class

clname

20

班级名

所属专业

grade

4

入学年份

课程表:

course

cno

cname

credit

学生表:

student

sno

12

学号

sname

姓名

ssex

性别

class.clname

班级

教工表:

teacher

tno

18

教工号

tname

8

教工姓名

tsex

教授表:

tc

o

课程号

授课班级

学习表:

sc

student.sno

score

numernic

9

期末

sl

总评

score1

重修/补考1

score2

重修/补考2

term

1

学期

xyear

学年

type

6

课程类型

2、根据系统需要设计索引

(1)查询学生信息时经常要根据学生所在班级进行查询,为“学生表”的“班级”字段创建聚簇索引。

(2)查询教师信息时经常要根据教师所在系进行查询,为“教工表”的“所在系”

字段创建聚簇索引。

(五)实施

1、登录控制

本系统采用SQLSERVER身份验证,用户需要提供用户名和密码才能登陆数据库。

2、数据完整性

(1)实体完整性

为关系定义主键:

关系

系部

专业

学生

教工

课程

教授

学习

主码

(sbno,department)

(tno,cno,class)

(sno,cno)

(2)参照完整性

为关系定义外键:

department.teareferencesteacher.tno

subject.departmentreferencesdepartment.dno

class.departmentreferencesdepartment.dno

student.classreferencesclass.clname

teacher.departmentreferencesdepartment.dno

tc.tnoreferencesteacher.tno

oreferenceso

tc.classreferencesclass.clname

sc.snoreferencesstudent.sno

(3)自定义完整性

①student表的ssex属性只允许取“男”或“女”:

check(ssex=’男’orssex=’女’);

②sc表的score、sl、score1、score2属性值应该在0~100之间:

check(score>

=0andscore<

=100)、check(sl>

=0andsl<

=100)、check(score1>

=0andscore1<

=100)

、check(score2>

=0andscore2<

③系部名称、专业名称、班级名称都取唯一值:

UNIQUE

④创建触发器T2,作用:

添加学生信息时自动根据其学号生成其登录密码

createtriggerT2

onstudent

forinsert

as

ifupdate(sno)

begin

declare@spswchar(12)

select@spsw=snofrominserted

updatestudent

setspsw=@spsw

wheresno=(selectsnofrominserted)

end

⑤创建触发器T3,作用:

添加教师信息时自动根据其工号生成其登录密码

3、安全性设计

本系统用户分为四类:

管理员、学生、教师、教学秘书

管理员具有管理系统的所有权利;

学生可以查询成绩、修改密码、选修课程;

教师可以登记成绩、查询成绩;

--创建管理员用户

EXECsp_addloginadmin,admin

USEstu_course

EXECsp_grantdbaccessadmin,admin

--创建学生用户

EXECsp_addloginstudent,student

EXECsp_grantdbaccessstudent,student

--创建教师用户

EXECsp_addloginteacher,teacher

EXECsp_grantdbaccessteacher,teacher

--创建教学秘书用户

EXECsp_addlogindtea,dtea

EXECsp_grantdbaccessdtea,dtea

4、其它功能设计

①创建触发器T1:

添加或更改学生成绩时,自动生成总评

createtriggerT1

onsc

forinsert,update

ifupdate(score)orupdate(score1)orupdate(score2)

begin

declare@scorenumeric(18,1),@score1numeric(18,1),@score2numeric(18,1)

select@score=scorefrominserted

select@score1=score1frominserted

select@score2=score2frominserted

if@scoreisnotnulland@score1isnotnulland@score2isnotnull

updatesc

setsl=(

casewhen@score>

@score1and@score>

@score2then@score

when@score1>

@scoreand@score1>

@score2then@score1

else@score2end

wheresno=(selectsnofrominserted)andcno=(selectcnofrominserted)

end

else

if@scoreisnotnulland@score1isnotnull

@score1then@score

else@score1end

else

setsl=@score

end

触发器T2:

:

触发器T3:

②存储过程和游标:

教学秘书为学生指定必修课程

createprocstu_cou@subjectvarchar(20),@classvarchar(20),@cnamevarchar(50),@xyearvarchar(4),@termvarchar

(1)

declare@cnovarchar(4),@snovarchar(12),@pint,@nint,@sqlcodeint

declaresxcursorforselectsnofromstudentwhere@class=class

opensx

set@n=1

select@p=count(*)fromstudentwhere@class=class

select@cno=cnofromcoursewhere@cname=cname

while@n<

=@p

fetchsxinto@sno

insertintosc(sno,cno,term,type,xyear)values(@sno,@cno,@term,'

必修'

@xyear)

set@n=@n+1

closesx

调用此过程如:

execstu_cou'

商务英语'

'

商务英语B081'

大学英语'

2010'

1'

,就可以为“商务英语”专业“商务英语B081”班指定“2010”学年第“1”学期的“必修课”“大学英语”。

存储过程:

为教师指定其所教课程及所授班级

createproctea_cou@teachervarchar(8),@coursevarchar(50),@classvarchar(20)

declare@tnovarchar(10),@cnovarchar(4)

select@tno=tnofromteacherwhere@teacher=tname

select@cno=cnofromcoursewhere@course=cname

insertintotc(tno,cno,class)values(@tno,@cno,@class)

exectea_cou'

张雪'

日语B072'

,就可以为教师张雪指定所教课程“商务英语”及所教班级“日语B072”。

③视图

--学生查询成绩视图:

只能查询自己的信息

createviewuser_s1()

selectcname'

课程名称'

score'

期末'

sl'

总评'

score1'

重修1(补考1)'

score2'

重修2(补考2)'

credict'

学分'

type'

必修/选修'

xyear'

学年'

term'

学期'

fromcourse,sc

whereo=oandsc.sno=user

--教师查询成绩视图

createviewuser_t1

selectsc.sno'

学号'

sname'

姓名'

cname'

课程名'

tc.class'

班级'

fromstudent,sc,course,tc

wherestudent.sno=sc.snoando=oandtc.class=student.classandtc.tno=user

--教师上传成绩视图

createviewuser_t3(学号,姓名,班级,成绩)

selectsc.sno,sname,class,score

fromsc,student

wheresc.sno=student.sno

--教学秘书查询学生成绩视图

createviewuser_t4(学号,姓名,课程名,总评,必修选修,学年,学期,班级)

selectsc.sno,sname,cname,sl,type,xyear,term,tc.class

fromstudent,sc,course,tc,department

wherestudent.sno=sc.snoando=oandtc.class=student.classandtc.tno=department.dteaandtno=user

教师评价

评定项目

A

B

C

D

需求分析清楚

完整性设计完善

概念结构符合需求

游标和存储过程的使用

逻辑结构设计合理

操作熟练

索引设计合理

文字流畅

有完全性的设置

报告规范

其他:

评价教师签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1