您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页图书管理子系统(最终版)

图书管理子系统(最终版)

来源:华佗小知识
广东外语外贸大学 思科信息学院 计算机二班 指导老师:xxxxx 小组成员:xxxxxxxxxxxxxxxxxxxxxxx 完成时间:2012.6.30 广东外语外贸大学 思科信息学院 计算机二班

目录:  需求分析

 概念模型(基本E-R图)  数据字典  数据模型  基本表  建表及功能代码  统计数据  安全性审计  项目总结  使用的参考资料

 设计小组成员的分工与合作说明,小组成员自评分数

1

广东外语外贸大学 思科信息学院 计算机二班

一、需求分析

随着社会文化水平的提高,竞争压力的增加,越来越多大学生更注重培养自己文化知识,不断地汲取不同地区,不同领域,不同国家的文化,全面地丰富和发展自己,从而他们对图书馆图书的需求不断地加大,面对着不断加大的信息量,这就需要图书管理系统来提高学生借阅图书的效率,通过这系统,做到图书的规范管理,科学地统计以及快速地查阅、修改、借阅,从而为学生提供便利和减少管理的工作量。总体任务是要实现用户查阅个人图书信息、查阅馆内图书和管理员对图书借阅、查询、修改、插入的系统化、规范化。根据总体任务的要求进行需求分析可以得出,图书管理子系统功能如下:  用户(教师,研究生,学生)基本信息表的输入,其中包括登陆号、密码、用户类别、是否在校、已借图书信息(包括条码号,用户号,借阅时间,应还日期,是否续借)

 用户类别表输入, 其中包括用户类别、最大可借数目、最长可借天数

 每本图书详情输入,包括条码号、ISBN号、是否借出、已借次数  每种图书基本信息输入,包括ISBN号、书名、类别号、价格、出版社、书架号、图书简介、图片  用户信息,图书信息的插入、修改、查询

 图书的下架,包括条码号、ISBN号、书名、下架时间

 识别每个用户(学生、教师、研究生)和管理员(技术部、采编部、前台)的登陆身份和密码,从而保证信息的安全性,防止信

2

广东外语外贸大学 思科信息学院 计算机二班

息的外泄和盗用

还有,涉及图书信息借阅情况由前台作修改;图书采购和下架情况游采编部做插入和修改;用户信息的修改,插入由管理员来操作,用户只能登陆查询图书信息和个人信息

本例中的用户角色有:管理员,学生。系统涉及的实体有学生,图书。

3

广东外语外贸大学 思科信息学院 计算机二班

二、E-R图

图书属性分E-R

图书 下架书信息 ISBN号 书名 类别 类别号 图书信息 每本书详情 条码号 借阅情况 图片 ISBN号 图书简介 出版社 价格 图书数量 书架位置(索书号)

用户信息分E-R图

用户 用户信息 用户类别 登陆号 已借阅图书信息 密码 是否在校 教师、学生、研究生 可借数目 可借天数 4

广东外语外贸大学 思科信息学院 计算机二班

用户查询系统的分E-R

登录号 登录 图书信息 用户 查询 已借阅图书信息 借阅日期 图书信息 到期日期 是否续借

5

广东外语外贸大学 思科信息学院 计算机二班

管理员的分E-R图

图书信息(新采购图书) 图书信息(是否报废) 插入 修改 管理员采编部 图书信息 管理员 登录 管理员前台员 图书借阅 管理员技术部 插入 修改 用户信息 用户信息

6

广东外语外贸大学 思科信息学院 计算机二班

总E-R图

图书信息 图书信息 插入 修改 管理员采编部 图书借阅情况 管理员 登录 管理员前台员 图书借阅 管理员技术部 授权 插入 修改 用户管理系统 用户信息 用户信息 用户查询系统分E-R图 7

广东外语外贸大学 思科信息学院 计算机二班

三、数据字典

每本书详情(Information) 列名 数据长度 类型 bno Char 15 bname char 30 bisbn Char 20 islent Char 2 times char 10 可否为空 N N N N N 是否主键 Y N N N N 是否外键 N Y Y N N 缺省值 false 0 备注 条码号 书名 ISBN号 是否借出 已借次数 下架书详情(undercarridge) 列名 数据类长度 型 udno Char 15 bname Char 20 bisbn Char 20 udtime Datetime 图书信息(Book) 列名 数据类长度 型 bisbn Char 20 bname Char 30 tpno Char 2 price Char 4 publisher Char 50 bshelf Char 20 picture Image 20 Intro Char 200 图书类别表(Book_Type) 列名 数据类长度 型 tpno Char 2 tp char 30

可否为空 N N N N 是否为主键 Y N N N 是否为外键 N Y Y N 缺省值 备注 条码号 书名 ISBN号 下架时间 可否为空 N N N N N N Y Y 是否主键 Y Y N N N N N N 是否外缺省备注 键 值 ISBN号 N 书名 N 类别号 Y 价格 N 出版社 N 书架号 N 图片 N 图书简介 N 可否为空 N N 是否主键 Y N 是否外缺省值 备注 键 N 类别号 N 类别 8

广东外语外贸大学 思科信息学院 计算机二班

用户信息表(UUSER) 列名 数据类长度 型 uno Char 12 upswd Char 8 utp Char 4 uhere Char 2 ucount Char 2

用户类别表(UTYPE) 列名 数据类长度 型 utp Char 8 maxno Char 2 2 可否为空 N N N N N 是否主键 Y N N N N 是否外键 N N Y N N 缺省值 备注 用户号 用户密码 用户类别 是否在校 目前可借书数量 maxday char 可否为是否主是否外缺省值 备注 空 键 键 N Y N 用户类别 N N N 最大可借数目 N N N 最长可借天数 已借阅图书表(BorrowList) 列名 数据类型 长度 bno Char 15 uno Char 12 brrowtime Datetime deadline Datetime renew Char 2 可否为空 N N N N N 是否主键 Y Y N N N 是否外键 Y Y N N N 缺省值 备注 false 条码号 用户号 借阅时间 应还日期 是否续借 管理员信息表(Admin) 列名 数据类长度 型 ano Char 12 aupswd Char 8 aname atype Char Char 10 12 可否为空 N N N N 是否主键 Y N N N 是否外缺省值 备注 键 N 管理员号 N 管理员密码 N 管理员姓名 N 管理员类型 9

广东外语外贸大学 思科信息学院 计算机二班

四、数据模型

bno:条码号 bname:书名 bisbn:ISBN号 tp:类别 tpno:类别号 price:价格 publisher:出版社 bshelf:书架号 picture图片 islent:是否借出 uno:用户号 ucount:目前可借书数量 udtime 下架时间 upswd:用户密码 utp:用户类别 uhere:是否在校 maxno:最大可借数目 maxday:最长可借天数 borrowtime:借阅时间 deadline:应还日期 renew:是否续借 ano:管理员号 aupswd:管理员密码 aname管理员姓名 times 已借次数 图书信息表:BOOK(bisbn,bname, tpno, price,publisher,bshelf)

各值均不为空 ,tpno和bisbn为外码,均不为空,islent默认值为false

下架信息表 undercarride(udno,bname,bisbn,udtime) 各值不为空,bisbn为外码

每本书详情:Information(bno,bname,bisbn,islent)

各值不为空,bisbn为外码

图书类别表:Book_Type(tpno,tp)

各值均不为空

用户信息表:UUSER(uno,upswd,utp,uhere,ucount)

各值均不为空,utp为外码

用户类别表: UTYPE (utp, maxno, maxday)

各值均不为空

已借阅图书表:BorrowList (bno, uno, brrowtime, deadline,renew)

各值均不为空 bno, uno为外码,renew默认值为false

管理员信息表:Admin(ano,aupswd,aname)

各值均不为空

备注:主码用下划线表示

10

广东外语外贸大学 思科信息学院 计算机二班

五、基本表

每本书详情对应表(Information-infor) 条码号 书名 ISBN号 bno A2258055 A2285794 A2285795 E0118855 E0118856 E04123 A1817129 A1969631 A1827826 A1854652 A2105810 A2091708 A2091709 J0036316 A1199213 0

11

是否借出 已借次数 islent times 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 Bname 智慧的圣坛 经典人文 / 人文关怀卷 经典人文 / 人文关怀卷 最新大学英语六级考试词汇必备 最新大学英语六级考试词汇必备 大学英语六级美文晨读100篇 数字 数字图象处理 西餐礼仪 你就是品牌 汇编语言 bisbn 978-7-5617-6282-0 是 978-7-5011-9211-3 否 978-7-5011-9211-3 是 978-7-80090-755-4 是 978-7-80090-755-4 否 978-7-455-062-0 否 978-7-108-01979-5 否 978-7-5606-1253-9 是 978-7-80211-297-4 是 978-7-80679-570-7 否 978-7-302-17228-4 是 新编Dreamweaver CS3精彩978-7-115-17703-2 否 网站制作从入门到精通 新编Dreamweaver CS3精彩978-7-115-17703-2 否 网站制作从入门到精通 新世纪日本语教程初级参考978-7-5600-7778-9 是 书 切·格瓦拉 978-7-205-05415-X 是 广东外语外贸大学 思科信息学院 计算机二班

下架书的详情表 条码号 udno A2115423 A2135471 B2676672 书名号 udname 嵌入式程序设计 社交礼仪 成功学 ISBN udisbn 下架日期 udtime 978-7-202-7787-2 2009-09-12 978-7-121-4512-3 2006-02-05 978-7-123-3311-4 2002-12-09

图书信息对应表(Book-infor) Isbn号 书名 类别价格 表 Bisbn bname Tpno Price 978-7-5617-智慧的圣坛 C类 39.80 6282-0 978-7-5011-9211-3 978-7-80090-755-4 经典人文 / 人C类 45.0 文关怀卷 最新大学英语六 H类 9.80 级考试词汇必备 23.80 15.00 20.00 出版社 图书简介 Publisher bshelf picture intro 上海 华东师范C53/Y859-1 大学出版社 2008 北京 新华出版C53/Y869 社 2010 北京中国建材H313.1/W165.工业出版社5 1998.8 北京 中国宇航H319.4/S766.出版社 2009 5 北京 三联书TN911.72-49/店 2003 C315 西安电子科技TN911.73/H22大学 出版4 社 2003 北京 编译TS971/L459.0出版社 2006 1 南宁 接力出版F273.2/M267 社 2004 北京 清华大学TP313/W167.0 出版社 2008 北京 人民邮电TP393.092/L5出版社 2008 39.7-10 书架号 图片 978-7-455大学英语六级美H类 -062-0 文晨读100篇 978-7-108-0数字 O类 1979-5 978-7-5606-数字图象处理 O类 1253-9 978-7-80211西餐礼仪 -297-4 978-7-80679你就是品牌 -570-7 978-7-302-1汇编语言 7228-4 G类 35.00 F 26.80 O类 32.00 978-7-115-1新编O类 7703-2 Dreamweaver CS3精彩网站制65.00 12

广东外语外贸大学 思科信息学院 计算机二班

作从入门到精通 978-7-5600-新世纪日本语教H类 7778-9 程初级参考书 978-7-205-0切·格瓦拉 5415-X I类 49.00 19.80 北京 外语教学H369/F262-4 与研究出版社 2008 沈阳 辽宁人民K837.517-5/Z 出版社 2002 316.95 电子工业出版TP 292.091/ 社 M231.01 中国人民大学TS212/L213.0 出版社 3 人民邮电出版K 123.720/ 社 H 21.2 978-7-202-7嵌入式程序设计 O类 787-2 978-7-121-4社交礼仪 512-3 978-7-123-3成功学 311-4 G类 20.80 32.50 B类 26.90

图书类别表对应表(Book_Type-infor) 类别号 类别 tpno A类 B类 C类 D类 E类 F类 G类 H类 I类 J类 K类 N类 O类 P类 tp 马列主义、思想、理论 哲学、宗教 社会科学总论 政治、法律 军事 经济 文化、科学、教育、体育 语言、文字 文学 艺术 历史、地理 自然科学总论 数理科学与化学 天文学、地球科学 13

广东外语外贸大学 思科信息学院 计算机二班

Q类 R类 S类 T类 U类 V类 X类 Z类 生物科学 医学、卫生 农业科学 工业技术 交通运输 航空、航天 环境科学、安全卫生 综合性图书

用户信息表对应表(UUSER-infor) 用户名 用户密码 用户类别 Uno 02010001 02010002 02010003 02020001 02020002 02030001 02030002 02100001 02100002 02100003 02110001 02110002 02120001 02120002 02120003 02120004

Upswd 00000001 00000002 00000003 00000004 00000005 00000006 00000007 00000008 00000009 00000010 00000011 00000012 00000013 00000014 00000015 00000016 Utp 本科 本科 本科 硕士 硕士 博士 博士 讲师 讲师 讲师 教授 教授 副教授 副教授 副教授 副教授 是否在校 Uhere 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 目前可借书数量 ucount 10 10 11 14 15 17 18 20 20 20 30 30 25 23 25 25 14

广东外语外贸大学 思科信息学院 计算机二班

用户类别表对应表(UTYPE-infor) 用户类别 最大可借数目 utp 本科 硕士 博士 讲师 副教授 教授 maxno 11 15 18 20 25 30 最长可借天数 maxday 30 40 50 60 60 60

已借阅图书表对应表(BorrowList-infor) 条码号 用户号 借阅时间 Bno A2258055 A2285795 E0118855 A1969631 A1827826 A2105810 J0036316 A1199213 Uno 02010001 02010002 02020001 02030001 02010001 02030001 02110002 02110002 Borrowtime 2012/6/10 2012/5/10 2012/6/11 2012/5/13 2012/5/20 2012/5/10 2012/5/10 2012/5/10 应还时间 Deadline 2012/7/10 2012/6/25 2012/7/21 2012/7/3 2012/6/20 2012/6/30 2012/7/10 2012/7/10 是否续借 renew N Y N N N N N N

管理员信息表对应表(Admin-infor) 管理员号 管理员密码 Ano 01000001 01000002 01000003 01000004 01000005 aupswd 管理员姓名 aname 类型 atype 00000001 00000002 00000003 00000004 00000005 欧振旭 刘丽 熊天平 冯彩茹 马军 前台 前台 技术部 技术部 采编部 15

广东外语外贸大学 思科信息学院 计算机二班

六、SQL 代码

 建表代码

1. 每本书详情(INFORMATION)

CREATE TABLE Information

(bno CHAR(15) NOT NULL PRIMARY KEY,

bname CHAR(50) NOT NULL, bisbn CHAR(20) NOT NULL, islent CHAR(2) NOT NULL,

times CHAR(10) NOT NULL,

foreign key (bisbn) references BOOK(bisbn));

2. 下架书详情(undercarrige)

CREATE TABLE undercarridge

(udno CHAR(15) NOT NULL PRIMARY KEY, udname CHAR (50)NOT NULL,

bisbn CHAR(20) NOT NULL, udtime datetime NOT NULL

foreign key (bisbn) references BOOK(bisbn));

3. 图书信息(BOOK)

CREATE TABLE Book

(bisbn CHAR(20) NOT NULL PRIMARY KEY, bname CHAR(50) NOT NULL, tpno CHAR(2) NOT NULL , price CHAR(6) NOT NULL , publisher CHAR(50) NO NULL, bshelf CHAR(15) NOT NULL, picture Image ,

intro CHAR(200),

FOREIGN KEY(tpno) REFERENCES Book_Type(tpno));

4. 图书类别表(Book_TYPE)

CREATE TABLE Book_Type

(tpno CHAR(2) NOT NULL PRIMARY KEY, tp CHAR(30) NOT NULL,);

5. 用户信息表(USER)

CREATE TABLE UUSER

(uno CHAR(12) NOT NULL PRIMARY KEY, upswd CHAR(6) NOT NULL, utp CHAR(2) NOT NULL,

16

广东外语外贸大学 思科信息学院 计算机二班

uhere CHAR(2) NOT NULL,

ucount CHAR(2) NOT NULL,

FOREIGN KEY(utp) REFERENCES UTYPE(utp));

6. 用户类别表(UTYPE)

CREATE TABLE UTYPE

(utp CHAR(2) NOT NULL PRIMARY KEY, maxno CHAR(2) NOT NULL, maxday CHAR(2) NOT NULL);

7. 已借阅图书表(BorrowList)

CREATE TABLE BorrowList

(bno CHAR(15) NOT NULL , uno CHAR(12) NOT NULL ,

borrowtime DATETIME NOT NULL , deadline DATETIME NOT NULL , renew CHAR(2) NOT NULL , PRIMARY KEY (bno,uno),

FOREIGN KEY(bno) REFERENCES Information(bno), FOREIGN KEY(uno) REFERENCES UUSER(uno));

8. 管理员信息表(Admin)

CREATE TABLE Admin

(ano CHAR(12) NOT NULL PRIMARY KEY, aupswd CHAR(6) NOT NULL , aname CHAR(8) NOT NULL , atype CHAR(12) NOT NULL ,);

 查询代码

1. 采购图书插入图书信息----采编部

视图建立语句

create view Info_view(条码号,书名,ISBN号,是否借出,已借次数) as

select bno,bname,bisbn,islent,times from Information

create view Book_view(ISBN号,书名,类别号,书架号,价格,出版社,图片,图书简介) as

select bisbn,bname,tpno,bshelf,price,publisher,picture,intro from Book

create view Book_Type_view(类别号,类别) as

17

广东外语外贸大学 思科信息学院 计算机二班

select tpno,tp from Book_Type

图书信息插入语句:

insert into Book_view (ISBN号,书名,类别号,书架号,价格,出版社,图片,图书简介) values('978-7-5617-6282-0','智慧的圣坛','C', 'C53/Y859-1','39.8','上海华东师范大学出版社',’’,’’); (ISBN编号相同则不可输入) insert into Info_view (条码号,书名,ISBN号,是否借出,已借次数) values('A2258056','智慧的圣坛','978-7-5617-6282-0','y','5');

insert into Book_Type_view (类别号,类别) values('Y','工业技术');

2. 图书下架----采编部

建立触发器(自动将图书信息添加到下架图书表):

create trigger udbook on Information after DELETE as

declare @bno char(15),@bname char(30),@bisbn char(20)

set @bno = (select bno from deleted)

set @bname= (select bname from deleted) set @bisbn = (select bisbn from deleted) insert into undercarridge

values(@bno,@bname,@bisbn,current_timestamp);

删除语句:

delete

from Information

where bno='A1854652' and islent='n';

3. 插入用户----技术部

视图建立语句:

CREATE VIEW V_uuser(用户号,用户密码,用户类别,是否在校,目前可借书数量) AS

SELECT uno,upswd,utp,uhere,ucount FROM UUSER

插入语句:

INSERT

INTO UUSER(uno,upswd,utp,uhere,ucount)

VALUES ('02100004','00000017','教授','Y','30');

4. 用户过期删除----技术部

UPDATE V_uuser

18

广东外语外贸大学 思科信息学院 计算机二班

SET 是否在校='N'

WHERE 用户号='02110001';

5. 查询图书信息----用户

按书名关键字检索

create view info1_view(书名,ISBN号,价格,出版社,架位)

as select distinct book.bname,book.bisbn,book.price, book.publisher,book.bshelf

from book where book.bname like '%智慧的圣坛%'

按类别检索

create view info2_view(书名,ISBN号,价格,出版社,架位) as select book.bname,book.bisbn, book.price,book.publisher,book.bshelf from

book,book_type

where book_type.tp='社会科学总论'and book_type.tpno=book.tpno

6. 查询某本书是否可借的详细信息----用户

create view info3_view(书名,架位,条码号,是否借出,是否在架上) as select

information.bname,book.bshelf,information.bno,information.islent,information.ishere

from book,information where information.bisbn='978-7-5617-6282-0' and information.bisbn=book.bisbn

7. 查询已借阅信息----用户

create view info4_view(书名,条码号,借阅日期,到期时间,是否续借) as select

information.bname,information.bno,borrowlist.borrowtime,borrowlist.deadline,borrowlist.renew from

borrowlist,information where

borrowlist.bno=information.bno and borrowlist.uno='02010001'

8. 修改用户密码----用户

update UUSER set upswd='123456' where Uno='02010001'

9. 续借已借图书----用户

update info4_view

19

广东外语外贸大学 思科信息学院 计算机二班

set 是否续借= 'Y',到期时间= (info4_view.到期时间+15) where 条码号='A1827826' and 是否续借= 'N'

七、数据统计

统计A类图书总数(以此类推,可统计其他类图书总数)

select count(bno) from information where bisbn in( select bisbn from book where Tpno='A')

统计图书总数

select count(bno) from information

统计每本书被借次数

select times from information where bno = '02010001'

八、安全性与审计

 权限表

用户权限表(user_right)(1代表有权限,0 代表无权限)

数据表 Information Book Book_Type UUSER UTYPE BorrowList Admin select 1 1 1 1 0 1 0 insert 0 0 0 0 0 0 0 update 0 0 0 1 0 1 0 delete 0 0 0 0 0 0 0 采编部管理员权限表(admin_right) 数据表 Information Book Book_Type UUSER UTYPE BorrowList Admin

20

select 1 1 1 0 0 0 0 insert 1 1 1 0 0 0 0 update 1 1 0 0 0 0 1 delete 0 0 0 0 0 0 0 广东外语外贸大学 思科信息学院 计算机二班

前台管理员权限表(admin2_right) 数据表 Information Book Book_Type UUSER UTYPE BorrowList Admin select 0 0 0 0 0 1 0 insert 0 0 0 0 0 1 0 update 1 0 0 0 0 1 1 delete 0 0 0 0 0 1 0 技术部管理员权限表(admin3_right)

数据表 Information Book Book_Type UUSER UTYPE BorrowList Admin select 0 0 0 1 1 0 0 insert 0 0 0 1 1 0 0 update 0 0 0 1 0 0 1 delete 0 0 0 0 0 0 0

 触发器

1. 管理员信息表(Admin)

create table Admin_log ( ano char(12), aupswd char(8), aname char(8), atype char(12), Username char(10), User_action char(14), CDate datetime, );

create trigger Insert_Admin on Admin after INSERT as

declare @ano char(12),@aupswd char(8),@aname char(8),@atype set @ano = (select ano from inserted) set @aupswd = (select aupswd from inserted) set @aname = (select aname from inserted)

char(12)

21

广东外语外贸大学 思科信息学院 计算机二班

set @atype = (select aname from inserted) insert into Admin_log

values(@ano,@aupswd,@aname,@atype,current_user,'insert',current_timestamp);

create trigger Update_Admin on Admin after UPDATE as

declare @ano char(12),@aupswd char(8),@aname char(8),@atype

char(12),@oldano char(12),@oldaupswd char(8),@oldaname char(8),@oldatype char(12)

set @ano = (select ano from inserted) set @aupswd = (select aupswd from inserted) set @aname = (select aname from inserted) set @atype = (select aname from inserted) set @oldano = (select ano from deleted) set @oldaupswd = (select aupswd from deleted) set @oldaname = (select aname from deleted) set @oldatype = (select atype from deleted) insert into Admin_log

values(@oldano,@oldaupswd,@oldaname,@oldatype,current_user,'before_update',current_timestamp)

insert into Admin_log

values(@ano,@aupswd,@aname,@atype,current_user,'after_update',current_timestamp);

create trigger Delete_Admin on Admin after INSERT as

declare @oldano char(12),@oldaupswd char(8),@oldaname set @oldano = (select ano from inserted) set @oldaupswd = (select aupswd from inserted) set @oldaname = (select aname from inserted) set @oldatype = (select aname from inserted) insert into Admin_log

char(8),@oldatype char(12)

values(@oldano,@oldaupswd,@oldaname,@oldatype,current_user,'delete',current_timestamp);

2. 已下架图书信息(undercarridge)

create table undercarridge_log ( udno char(15),

22

广东外语外贸大学 思科信息学院 计算机二班

udname char(20), bisbn char(20), udtime datetime, Username char(10), User_action char(14), CDate datetime, )

create trigger insert_undercarridge

on undercarride after INSERT as

declare @udno char(15),@udname char(20),@bisbn char(20),@udtime set @udno = (select udno from inserted) set @udname = (select udname from inserted) set @bisbn = (select bisbn from inserted) set @udtime = (select udtime from inserted) insert into undercarridge_log

datetime

values(@udno,@udname,@bisbn,@udtime,current_user,'insert',current_timestamp);

create trigger update_undercarridge

on undercarride after Update as

declare @udno char(15),@udname char(20),@bisbn char(20),@udtime

datetime,@oldudno char(15),@oldudname char(20),@oldbisbn char(20),@oldudtime datetime

set @udno = (select udno from inserted) set @udname = (select udname from inserted) set @bisbn = (select bisbn from inserted) set @udtime = (select udtime from inserted) set @oldudno = (select udno from deleted) set @oldudname = (select udname from deleted) set @oldbisbn = (select bisbn from deleted) set @oldudtime = (select udtime from deleted) insert into undercarridge_log

values(@oldudno,@oldudname,@oldbisbn,@oldudtime,current_user,'before_update',current_timestamp);

insert into undercarridge_log

values(@udno,@udname,@bisbn,@udtime,current_user,'after_update',current_timestamp);

23

广东外语外贸大学 思科信息学院 计算机二班

create trigger delete_undercarridge

on undercarride after delete as

declare @oldudno char(15),@oldudname char(20),@oldbisbn set @oldudno = (select udno from deleted) set @oldudname = (select udname from deleted) set @oldbisbn = (select bisbn from deleted) set @oldudtime = (select udtime from deleted) insert into undercarridge_log

char(20),@oldudtime datetime

values(@oldudno,@oldudname,@oldbisbn,@oldudtime,current_user,'before_update',current_timestamp);

;

3. 图书信息(BOOK)

create table Book_log ( bisbn char(20), bname char(30), tpno char(2), price char(5), publisher char(30), bshelf char(20), Username char(10), User_action char(14), CDate datetime, );

create trigger Insert_Book on Book after INSERT as

declare @bisbn char(20),@bname char(30),@tpno char(2),@price set @bisbn = (select bisbn from inserted) set @bname = (select bname from inserted) set @tpno = (select tpno from inserted) set @price = (select price from inserted)

set @publisher = (select publisher from inserted)

char(5),@publisher char(30),@bshelf char(20)

24

广东外语外贸大学 思科信息学院 计算机二班

set @bshelf = (select bshelf from inserted) insert into Book_log

values(@bisbn,@bname,@tpno,@price,@publisher,@bshelf,current_user,'insert',current_timestamp);

create trigger Update_Book on Book after UPDATE as

declare @bisbn char(20),@bname char(30),@tpno char(2),@price

char(5),@publisher char(30),@bshelf char(20), @oldbisbn char(20),@oldbname char(30),@oldtpno char(2),@oldprice char(5),@oldpublisher char(30),@oldbshelf char(20)

set @bisbn = (select bisbn from inserted) set @bname = (select bname from inserted) set @tpno = (select tpno from inserted) set @price = (select price from inserted)

set @publisher = (select publisher from inserted) set @bshelf = (select bshelf from inserted) set @oldbisbn = (select bisbn from deleted) set @oldbname = (select bname from deleted) set @oldtpno = (select tpno from deleted) set @oldprice = (select price from deleted)

set @oldpublisher = (select publisher from deleted) set @oldbshelf = (select bshelf from deleted) insert into Book_log

values(@oldbisbn,@oldbname,@oldtpno,@oldprice,@oldpublisher,@oldbshelf,current_user,'before_update',current_timestamp);

insert into Book_log

values(@bisbn,@bname,@tpno,@price,@publisher,@bshelf,current_user,'after_update',current_timestamp);

create trigger Delete_Book on Book after UPDATE as

declare @oldbisbn char(20),@oldbname char(30),@oldtpno set @oldbisbn = (select bisbn from deleted) set @oldbname = (select bname from deleted) set @oldtpno = (select tpno from deleted) set @oldprice = (select price from deleted)

char(2),@oldprice char(5),@oldpublisher char(30),@oldbshelf char(20)

25

广东外语外贸大学 思科信息学院 计算机二班

set @oldpublisher = (select publisher from deleted) set @oldbshelf = (select bshelf from deleted) insert into Book_log

values(@oldbisbn,@oldbname,@oldtpno,@oldprice,@oldpublisher,@oldbshelf,current_user,'delete',current_timestamp);

4. 图书类别表(TYPE)

create table Book_Type_log ( tpno char(2), tp char(20), Username char(10), User_action char(14), CDate datetime, );

create trigger Insert_Book_Type on Book_Type after INSERT as

create trigger Update_Book_Type on Book_Type after UPDATE as p)

insert into Book_Type_log

values(@tpno,@tp,current_user,'after_update',current_timestamp);

declare @tpno char(2),@tp char(20),@oldtpno char(2),@oldtp set @tpno = (select tpno from inserted) set @tp = (select tp from inserted) set @oldtpno = (select tpno from deleted) set @oldtp = (select tp from deleted) insert into Book_Type_log

char(20)

declare @tpno char(2),@tp char(20) set @tpno = (select tpno from inserted) set @tp = (select tp from inserted) insert into Book_Type_log

values(@tpno,@tp,current_user,'insert',current_timestamp);

values(@oldtpno,@oldtp,current_user,'before_update',current_timestam

26

广东外语外贸大学 思科信息学院 计算机二班

create trigger Delete_Book_Type on Book_Type after UPDATE as

declare @oldtpno char(2),@oldtp char(20) set @oldtpno = (select tpno from deleted) set @oldtp = (select tp from deleted) insert into Book_Type_log

values(@oldtpno,@oldtp,current_user,'delete',current_timestamp)

5. 已借阅图书表(BorrowList)

create table Borrowlist_log ( bno char(15), uno char(12),

borrowtime datetime, deadline datetime, renew char(2), Username char(10), User_action char(14), CDate datetime, );

create trigger Insert_Borrowlist on Borrowlist after INSERT as

declare @bno char(15),@uno char(12),@borrowtime set @bno = (select bno from inserted) set @uno = (select uno from inserted)

set @borrowtime = (select borrowtime from inserted) set @deadline = (select deadline from inserted) set @renew = (select renew from inserted) insert into Borrowlist_log

datetime,@deadline datetime,@renew char(2)

values(@bno,@uno,@borrowtime,@deadline,@renew,current_user,'insert',current_timestamp);

create trigger Update_Borrowlist

27

广东外语外贸大学 思科信息学院 计算机二班

on Borrowlist after UPDATE as

declare @bno char(15),@uno char(12),@borrowtime

datetime,@deadline datetime,@renew char(2), @oldbno char(15),@olduno char(12),@oldborrowtime datetime,@olddeadline datetime,@oldrenew char(2)

set @bno = (select bno from inserted) set @uno = (select uno from inserted)

set @borrowtime = (select borrowtime from inserted) set @deadline = (select deadline from inserted) set @oldbno = (select bno from deleted) set @olduno = (select uno from deleted)

set @oldborrowtime = (select borrowtime from deleted) set @olddeadline = (select deadline from deleted) insert into Borrowlist_log

values(@oldbno,@olduno,@oldborrowtime,@olddeadline,@oldrenew,current_user,'before_update',current_timestamp)

insert into Borrowlist_log

values(@bno,@uno,@borrowtime,@deadline,@renew,current_user,'after_update',current_timestamp);

create trigger Delete_Borrowlist on Borrowlist after DELETE as

declare @oldbno char(15),@olduno char(12),@oldborrowtime set @oldbno = (select bno from deleted) set @olduno = (select uno from deleted)

set @oldborrowtime = (select borrowtime from deleted) set @olddeadline = (select deadline from deleted) insert into Borrowlist_log

datetime,@olddeadline datetime,@oldrenew char(2)

values(@oldbno,@olduno,@oldborrowtime,@olddeadline,@oldrenew,current_user,'delete',current_timestamp)

6. 每本书详情(INFORMATION)

create table Information_log ( bno char(15),

28

广东外语外贸大学 思科信息学院 计算机二班

bname nchar(30), bisbn char(20), islent char(2), times char(10), Username char(10), User_action char(14), CDate datetime, );

create trigger Insert_Information on Information after INSERT as

declare @bno char(15),@bname nchar(30),@bisbn char(20),@islent set @bno = (select bno from inserted) set @bname = (select bname from inserted) set @bisbn = (select bisbn from inserted) set @islent = (select islent from inserted) set @times = (select times from inserted) insert into Information_log

char(2),@times char(10)

values(@bno,@bname,@bisbn,@islent,@times,current_user,'insert',current_timestamp);

create trigger Update_Information on Information after UPDATE as

declare @bno char(15),@bname nchar(30),@bisbn char(20),@islent

char(2),@times char(10), @oldbno char(15),@oldbname

nchar(30),@oldbisbn char(20),@oldislent char(2),@oldtimes char(10)

set @bno = (select bno from inserted) set @bname = (select bname from inserted) set @bisbn = (select bisbn from inserted) set @islent = (select islent from inserted) set @times = (select times from inserted) set @oldbno = (select bno from deleted) set @oldbname = (select bname from deleted) set @oldbisbn = (select bisbn from deleted) set @oldislent = (select islent from deleted) set @oldtimes = (select times from deleted) insert into Information_log

29

广东外语外贸大学 思科信息学院 计算机二班

values(@oldbno,@oldbname,@oldbisbn,@oldislent,@oldtimes,current_user,'before_update',current_timestamp);

insert into Information_log

values(@bno,@bname,@bisbn,@islent,@times,current_user,'after_update',current_timestamp);

create trigger Delete_Information on Information after Delete as

declare @oldbno char(15),@oldbname set @oldbno = (select bno from deleted) set @oldbname = (select bname from deleted) set @oldbisbn = (select bisbn from deleted) set @oldislent = (select islent from deleted) set @oldtimes = (select times from deleted) insert into Information_log

nchar(30),@oldbisbn char(20),@oldislent char(2),@oldtimes char(10)

values(@oldbno,@oldbname,@oldbisbn,@oldislent,@oldtimes,current_user,'delete',current_timestamp);

7. 用户类别表(UTYPE)

create table UTYPE_log ( utp char(10), maxno char(2), maxday char(2), Username char(10), User_action char(14), CDate datetime, );

create trigger Insert_UTYPE on UTYPE after INSERT as

declare @utp char(10),@maxno char(2),@maxday char(2) set @utp = (select utp from inserted) set @maxno = (select maxno from inserted) set @maxday = (select maxday from inserted) insert into UTYPE_log

values(@utp,@maxno,@maxday,current_user,'insert',current_timestamp);

30

广东外语外贸大学 思科信息学院 计算机二班

create trigger Update_UTYPE on UTYPE after UPDATE as

declare @utp char(10),@maxno char(2),@maxday char(2),@oldutp set @utp = (select utp from inserted) set @maxno = (select maxno from inserted) set @maxday = (select maxday from inserted) set @oldutp = (select utp from deleted) set @oldmaxno = (select maxno from deleted) set @oldmaxday = (select maxday from deleted) insert into UTYPE_log

char(10),@oldmaxno char(2),@oldmaxday char(2)

values(@oldutp,@oldmaxno,@oldmaxday,current_user,'before_update',current_timestamp);

insert into UTYPE_log

values(@utp,@maxno,@maxday,current_user,'after_update',current_timestamp);

create trigger Delete_UTYPE on UTYPE after DELETE as

declare @oldutp char(10),@oldmaxno char(2),@oldmaxday char(2) set @oldutp = (select utp from deleted) set @oldmaxno = (select maxno from deleted) set @oldmaxday = (select maxday from deleted) insert into UTYPE_log

values(@oldutp,@oldmaxno,@oldmaxday,current_user,'delete',current_timestamp);

8. 用户信息表(USER)

create table UUSER_log ( uno char(12), upswd char(8), utp char(10), uhere char(2), ucount char(2), Username char(10),

31

广东外语外贸大学 思科信息学院 计算机二班

User_action char(14), CDate datetime, );

create trigger Insert_UUSER on UUSER after INSERT as

declare @uno char(12),@upswd char(8),@utp char(10),@uhere set @uno = (select uno from inserted) set @upswd = (select upswd from inserted) set @utp = (select utp from inserted) set @uhere = (select uhere from inserted) set @ucount = (select ucount from inserted) insert into UUSER_log

char(2),@ucount char(2)

values(@uno,@upswd,@utp,@uhere,@ucount,current_user,'insert',current_timestamp);

create trigger Update_UUSER on UUSER after UPDATE as

declare @uno char(12),@upswd char(8),@utp char(10),@uhere

char(2),@ucount char(2),@olduno char(12),@oldupswd char(8),@oldutp char(10),@olduhere char(2),@olducount char(2)

set @uno = (select uno from inserted) set @upswd = (select upswd from inserted) set @utp = (select utp from inserted) set @uhere = (select uhere from inserted) set @ucount = (select ucount from inserted) set @olduno = (select uno from deleted) set @oldupswd = (select upswd from deleted) set @oldutp = (select utp from deleted) set @olduhere = (select uhere from deleted) set @olducount = (select ucount from deleted) insert into UUSER_log

values(@olduno,@oldupswd,@oldutp,@olduhere,@olducount,current_user,'before_update',current_timestamp);

insert into UUSER_log

values(@uno,@upswd,@utp,@uhere,@ucount,current_user,'after_update',current_timestamp);

32

广东外语外贸大学 思科信息学院 计算机二班

create trigger Delete_UUSER on UUSER after DELETE as

declare @olduno char(12),@oldupswd char(8),@oldutp set @olduno = (select uno from deleted) set @oldupswd = (select upswd from deleted) set @oldutp = (select utp from deleted) set @olduhere = (select uhere from deleted) set @olducount = (select ucount from deleted) insert into UUSER_log

char(10),@olduhere char(2),@olducount char(2)

values(@olduno,@oldupswd,@oldutp,@olduhere,@olducount,current_user,'delete',current_timestamp);

九、项目总结

33

广东外语外贸大学 思科信息学院 计算机二班

在确定了选题之后,我们小组就开始了图书管理子系统的项目设计,我们参考数据库设计范例_成绩管理系统(04级软件陈文娇) 的例子,按照老师的数据库设计实验要求首先进行小组讨论和分工。根据数据库设计的步骤,我们首先进行需求分析,通过第一次小组讨论后,我们初步确定了此项目设计需要实现的功能,以及如何分工。之后更是不定期的大家出来讨论,汇报自各的进度,交流心得以及遇到的问题,讨论解决方法。 期间遇到了各类困难,例如:

1. 没有认识到图书借阅者的不同身份,即要将用户分为不同的 类型,如本科生、研究生、教师等,不同类型的人可以借阅的最大书的数目不同。不清楚书的ISBN号的作用,如何解决对每本书的标识与不同名书的标识。

2. 在E-R图建立初期,由于对图书馆图书的属性以及图书馆工作 的流程不明确,导致E-R图的建立不完善,直接导致后来的建表不完善,从而最后返工修改。

3. 在建立数据库的初期,由于对图书馆图书的属性以及图书馆 工作的流程不明确,图书信息之间的从属关系,表与表的联系分析不透彻,对于图书馆运行流程不清楚,导致关系模型不符合实际情况,从而要返工;

在这个过程中我们还遇到了很多问题,例如信息的冗余,不相容,从属关系,还有考虑不全面等问题,后来在成员们的讨论和老师的指导下,我们将其逐步完善。在功能的实现的问题上,刚开始时没把审计和统计功能考虑进去,在老师的提点下,我们将其完善。到了最后,就是代码实现的部分,在触发器的建立,视图的建立,功能语句的实现上我们都遇到了些问题,但都在大家相互讨论研究中解决。

但在我们的项目仍然有很多可以改进的地方,如下几点:由于技术没有设计出界面;有些小细节没有做好,像超出借阅时间的处理,图书的分类方面可以做得更加的细致;审计方面有时间的话可以做得更好更完善;索引方面也做得不够,这次项目我们组都是女生,遇到了较多问题,但我们大家都一起讨论和解决了,其间我们进步了很多,也发现了自身有很多的问题。不过在做项目过程中,大家互相鼓励,互相帮助,共同得到了进步。希望我们在以后的学习生活中也可以借鉴这次项目的经验,勇于面对困难,迎难而上,培养团队精神。

十、使用的参考资料

http://msdn.microsoft.com/zh-cn/sqlserver SQLserver联机开发人员中心

34

广东外语外贸大学 思科信息学院 计算机二班

王珊、萨师煊. 《数据库系统概论(第四版)》 高等教育出版社,2007

数据库设计范例_成绩管理系统(04级软件陈文娇)

网站 http://lib.gdufs.edu.cn/

实验报告

十一、自评

xxx 具体工作说明 1. 小组工作确定与分工 2. E-R图设计与编写 3. 触发器代码与实现 4. 安全性与统计 1.参与讨论系统功能 2.参与数据字典的设计 3.制作设计基本表 4.前台管理员功能代码的设计 5.SQL数据录入 1.需求分析 2.建表 3.采编部功能实现 4.文档排版整理,以及整体的 1.数据模型的建立 2.用户查询图书信息 3.用户查询已借阅图书信息 4.图书下架的处理操作 5.按类别统计书的数量以及书的总量 1.数据字典的建立和完善 2.建立图书馆数据并将数据录入SQL表中 3.写建表代码和有关用户信息修改的代码 4.整合自我总结和项目总结, xxx xxx xxx xxx xxx xxx

小组评分(10分) 9.0 9.3 35 广东外语外贸大学 思科信息学院 计算机二班

xxx xxx xxx

9.1 8.8 9.1 36

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务