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

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

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

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

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

数据库课程设计图书馆管理系统9

数据库原理综合性实验

实验报告

 

课程名称数据库原理

实验学期2018至2018学年第1学期

学生所在系部国土系

年级专业班级

学生姓名学号

任课教师

实验成绩

 

国土系

《数据库系统B》课程综合性实验报告

开课实验室:

软件工程实验室2018年12月10日

实验题目

《教务管理系统》数据库设计

一、实验目地

利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计地相关理论,能按照数据库设计步骤完成完整地数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施.同时能够正确应用各个阶段地典型工具进行表示.

二、设备与环境

(1>硬件设备:

PC机一台

(2>软件环境:

安装Windows操作系统,安装数据库管理系统SQLServer2000等.

三、实验内容

完整实践应用数据库设计地工程过程:

需求分析\概念设计\逻辑设计\物理设计和实施:

(1>需求分析:

选定“教务管理系统”,对所设计地数据库系统进行调研分析,其结果应该准确表达出选定应用地功能需求;

(2>概念分析:

使用E-R图作为描述工具.必要时描述出局部和全局地E-R图;

(3>逻辑设计:

将上述绘制地E-R图转化为相应地关系模式,并根据范式理论进行优化分析.要求地关系模式不少于3个,并根据实际应用地需要设计必要地视图;

(4>物理设计:

根据设计地结构,说明系统已经有地索引,并根据需要设计必要地索引;

(5>实施:

以SQLSERVER为平台创建出完整地数据库.在数据库中要表现出地知识点包括

①登录控制(标准登录和混合登录>

②数据完整性:

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

③安全性设计:

设置用户,并相应设计用户地权限或角色(用户设计至少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

varchar

10

系名

dtea

varchar

10

外键:

teacher.tno

系教案秘书

专业表:

subject

列名

数据类型

长度

允许空

主键/外键

索引

备注

sbno

varchar

2

升序

专业编号

department

varchar

2

外键:

department.dno

升序

所属系部

sbname

varchar

10

专业名

班级表:

class

列名

数据类型

长度

允许空

主键/外键

索引

clname

varchar

20

主键

升序

班级名

subject

varchar

2

升序

所属专业

department

varchar

2

外键:

department.dno

所属系部

grade

varchar

4

入学年份

课程表:

course

列名

数据类型

长度

允许空

主键/外键

索引

备注

cno

varchar

20

主键

升序

班级名

cname

varchar

2

所属专业

credit

varchar

2

所属系部

学生表:

student

列名

数据类型

长度

允许空

主键/外键

索引

备注

sno

varchar

12

主键

升序

学号

sname

varchar

10

姓名

ssex

varchar

2

性别

class

varchar

20

外键:

class.clname

班级

教工表:

teacher

列名

数据类型

长度

允许空

主键/外键

索引

备注

tno

varchar

18

主键

升序

教工号

tname

varchar

8

教工姓名

tsex

varchar

2

性别

department

varchar

2

外键:

department.dno

所属系部

教授表:

tc

列名

数据类型

长度

允许空

主键/外键

索引

备注

tno

varchar

10

外键:

teacher.tno

升序

教工号

cno

varchar

4

外键:

o

升序

课程号

class

varchar

20

外键:

class.clname

升序

授课班级

学习表:

sc

列名

数据类型

长度

允许空

主键/外键

索引

备注

sno

varchar

12

外键:

student.sno

升序

学号

cno

varchar

4

外键:

o

升序

课程号

score

numernic

9

期末

sl

numernic

9

总评

score1

numernic

9

重修/补考1

score2

numernic

9

重修/补考2

term

varchar

1

学期

xyear

varchar

4

学年

type

varchar

6

课程类型

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

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

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

字段创建聚簇索引.

<五)实施

1、登录控制

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

2、数据完整性

<1)实体完整性

为关系定义主键:

关系

系部

专业

班级

学生

教工

课程

教授

学习

主码

dno

(sbno,department>

clname

sno

tno

cno

(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

oreferenceso

<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<=100>

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

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

USEstu_course

EXECsp_grantdbaccessstudent,student

--创建教师用户

EXECsp_addloginteacher,teacher

USEstu_course

EXECsp_grantdbaccessteacher,teacher

--创建教案秘书用户

EXECsp_addlogindtea,dtea

USEstu_course

EXECsp_grantdbaccessdtea,dtea

4、其它功能设计

创建触发器T1:

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

createtriggerT1

onsc

forinsert,update

as

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

begin

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

begin

updatesc

setsl=(

casewhen@score>@score1then@score

else@score1end

>

wheresno=(selectsnofrominserted>andcno=(selectcnofrominserted>

end

else

begin

updatesc

setsl=@score

wheresno=(selectsnofrominserted>andcno=(selectcnofrominserted>

end

end

触发器T2:

:

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

createtriggerT2

onstudent

forinsert

as

ifupdate(sno>

begin

declare@spswchar(12>

select@spsw=snofrominserted

updatestudent

setspsw=@spsw

wheresno=(selectsnofrominserted>

end

触发器T3:

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

存储过程和游标:

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

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

as

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

begin

fetchsxinto@sno

insertintosc(sno,cno,term,type,xyear>values(@sno,@cno,@term,'必修',@xyear>

set@n=@n+1

end

closesx

调用此过程如:

execstu_cou'商务英语','商务英语B081','大学英语','2018','1',就可以为“商务英语”专业“商务英语B081”班指定“2018”学年第“1”学期地“必修课”“大学英语”.

存储过程:

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

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

as

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(>

as

selectcname'课程名称',score'期末',sl'总评',score1'重修1<补考1)',score2'重修2<补考2)',credict'学分',type'必修/选修',xyear'学年',term'学期'

fromcourse,sc

whereo=oandsc.sno=user

--教师查询成绩视图

createviewuser_t1

as

selectsc.sno'学号',sname'姓名',cname'课程名',score'期末',sl'总评',type'必修/选修',xyear'学年',term'学期',tc.class'班级'

fromstudent,sc,course,tc

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

--教师上传成绩视图

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

as

selectsc.sno,sname,class,score

fromsc,student

wheresc.sno=student.sno

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

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

as

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

评定工程

A

B

C

D

需求分析清楚

完整性设计完善

概念结构符合需求

游标和存储过程地使用

逻辑结构设计合理

操作熟练

索引设计合理

文字流畅

有完全性地设置

报告规范

其他:

 

评价教师签名:

年月日

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

当前位置:首页 > PPT模板 > 商务科技

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

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