数据库课程设计-图书管理系统_第1页
数据库课程设计-图书管理系统_第2页
数据库课程设计-图书管理系统_第3页
数据库课程设计-图书管理系统_第4页
数据库课程设计-图书管理系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南工业大学课 程 设 计资 料 袋 理 学院(系、部) 2012-2013 学年第 一 学期 课程名称 数据库原理和技术 指导教师 职称 讲师 学生姓名 专业班级 学号 题 目 图书管理系统 成 绩 起止日期 2012 年 12 月 31 日 2013 年 01 月 06 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计源代码12课程设计说明书13课程设计任务书1张456 湖南工业大学课程设计任务书201 201学年第 学期 理 学院(系、部) 信息和计算科学 专业 1002 班课程名称: 数据库原理和技术 设计题目: 图书管理系统 完成期限:自 2012 年 12 月 31 日至 2013 年 01月 06 日共 1 周任务及内容任务:设计一个图书馆管理系统。1.分析设计图书馆管理系统所要使用的功能,正确做出分析设计图。运用所学识和相关资料的查询,上机编写及调试源程序,进一步提高编程技巧及调试程序能力。2.所设计的系统能够正确的运行,且认真书写课程设计说明书。3.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成。内容:1.管理员基本信息:包括图书ID、密码等。2.图书信息:包括图书ID、图书名称、作者、出版社、单价、入库时间、图书总量、现存总量。3.借书信息:包括借书号、借阅卡号、所借图书的名字、借书日期。4.借阅卡信息:包括借阅卡号、读者姓名、性别、出生日期、家庭住址、身份证号码、电话号码、现借书总数。进度安排起止日期工作内容2012.12.31分析设计题目2013.01.03数据库设计,并创建数据库2013.01.04界面设计2013.01.05心得和体会2013.01.06整理文档和报告书主要参考资料指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日9( 数据库原理和技术 )设计说明书图书管理系统起止日期: 2012 年 12 月 31 日 至 2012 年 01 月 06 日学生姓名 颜琰 班级信计1002班学号10411100211成绩指导教师(签字)理学院 2013 年01 月06 日目录1 概述12 需求分析13系统设计23.1 总体设计框架 23.2 系统流程分析 23.3 数据库设计 3 3.3.1 系统主界面设计及新书登记数据库设计 3 3.3.2 借书还书查询书籍借阅信息数据库设计 33.3.3 借阅证管理和系统管理数据库设计 34系统实现过程44.1系统主界面设计及新书登记 44.2借书、还书、查询书籍及借阅信息 44.3借阅证管理、系统管理 65 总结 306 参考文献 311 概述 随着人们知识层次的提高图书馆成为日常生活中不可缺少的一部分。而图书馆的存书量和业务量庞大,仅仅靠传统的记账式管理式不可行的。图书馆管理系统应运而生,逐渐成为信息化建设的重要组成部分。图书馆管理系统为学校或者社会型图书馆的管理员提供所有借阅者的详细信息,以及馆内库存的详细情况,对借书和还书两大功能进行合理操纵并登记。我主要负责l 数据库设计 1、对系统进行需求分析。 2、对系统进行概念结构设计。画出局部和全局E_R图 3、对系统进行逻辑结构设计转换成关系模型 4、对系统进行物理结构设计要求有: 1、用T-SQL语句创建数据库 2、用T-SQL语句创建所有的表及设置主键 3、用T-SQL语句给需要设外键的表设置外键 4、用T-SQL语句给表加上check约束、UNIQUE约束、DEFAULT约束 5、使用insert语句初始化数据库给每个表至少插入5条记录 l 用T-SQL语句完成以下题目内容要求把题目和代码都写上。1、流程控制语句和函数 2、用上while 语句 3、用上ifelse 语句 4、用上case函数 5、用上substring函数 6、用上datediff函数 7、自定义一个标量函数并调用它 l SELECT查询 1、用上selectfromwhere语句 2、用上distinct 关键字 3、用上top 关键字 4、用上in 子句 5、用上 between 子句 6、用上like 子句 7、进行多表连接8、用上into子句 9、用上update 语句 10、用上delete 语句 11、用上count函数 12、用上order by 子句 13、用上group by子句 CREATE DATABASE db_Library ON PRIMARY(/*-数据文件的具体描述-*/NAME = LibraryMs_data, - 主数据文件的逻辑名称FILENAME = E:YYLibraryMs_data.mdf, - 主数据文件的物理名称size = 30MB, - 主数据文件的初始大小maxsize = unlimited, - 主数据文件增长的最大值filegrowth = 10 - 主数据文件的增长率)Log ON(/*-日志文件的具体描述,各参数含义同上-*/NAME = LibraryMs_log,FILENAME = E:YYLibraryMs_log.ldf,size = 1MB,maxsize = 100MB,filegrowth = 2MB)Use db_Library-=- 管理员登陆表-=CREATE TABLE tb_admin(a_id varchar(50) not null primary key, -管理员编号a_name varchar(50) not null, -管理员登陆名a_pwd varchar(30) not null -管理员密码)insert into tb_admin values(YY2314,yanyan,123456);insert into tb_admin values(HLZ531,huangzhuli,123456);insert into tb_admin values(MSL864,moshanlan,123456);insert into tb_admin values(ZS7684,zhangshan,123456);insert into tb_admin values(LS9512,lisi,123456);-=- 书架信息表-=CREATE TABLE tb_bookcase(/*-描述书存放的位置-*/c_id varchar(30) not null primary key, -书架编号c_name varchar(30) not null, -书架名称)insert into tb_bookcase values(GL1457,信息)insert into tb_bookcase values(WX3186,文学)insert into tb_bookcase values(TW7866,天文)insert into tb_bookcase values(DL6581,地理)insert into tb_bookcase values(WL8645,物理)-=- 图书类型信息表-=CREATE TABLE tb_booktype(t_id int IDENTITY (1,1) not null primary key, -类型编号t_name varchar(30) not null, -类型名称t_days int not null, -可借天数)insert into tb_booktype values(数据结构,30)insert into tb_booktype values(数学,30)insert into tb_booktype values(散文,30)insert into tb_booktype values(地理,30)insert into tb_booktype values(物理,30)-=- 管理员权限表-=CREATE TABLE tb_purview(p_id int IDENTITY (1,1) primary key not null, -编号a_id varchar(50) not null foreign key (a_id) references tb_admin(a_id), -管理员编号p_sysset varchar(6) not null, -系统设置权限p_readset varchar(6) not null, -读者管理权限p_bookset varchar(6) not null, -图书管理权限p_borrowback varchar(6) not null, -图书借还管理权限p_sysquery varchar(6) not null -系统查询权限)insert into tb_purview values(YY2314,true,true,true,true,true)insert into tb_purview values(HLZ531,true,true,false,true,true)insert into tb_purview values(MSL864,false,true,true,false,true)insert into tb_purview values(ZS7684,true,false,false,true,true)insert into tb_purview values(LS9512,true,false,true,true,false)-=- 读者类型表-=CREATE TABLE tb_readertype(rt_id int IDENTITY (1,1) not null primary key, -编号rt_name varchar(30) not null, -类型名称rt_num int not null -可借数量(如类型是老师,则可以可借本,学生:本,其他:本))insert into tb_readertype values(教师,3)insert into tb_readertype values(学生,2)insert into tb_readertype values(其他,1)-=- 图书信息表-=CREATE TABLE tb_bookinfo(b_id varchar(30) not null primary key,-图书编号(条形码) b_name varchar(30) not null,-图书名称t_id int not null foreign key (t_id) references tb_booktype(t_id), -图书类型b_author varchar(30) not null,-图书作者b_translator varchar(30) null,-图书翻译者b_pubName varchar(60) not null,-出版社b_price money not null,-价格b_page int null,-图书页数c_id varchar(30) not null foreign key (c_id) references tb_bookcase(c_id), -书架b_storage int not null,-数量b_time datetime not null,-入图书馆时间b_borrownum int null,-借出总次数)insert into tb_bookinfo values(25415,C+数据结构,1,YY,YY,YY,50.00,100,GL1457,20,2013-1-2,3)insert into tb_bookinfo values(76524,鲁迅文集,1,YY,YY,YY,50.00,100,WX3186,20,2013-1-2,3)insert into tb_bookinfo values(98651,太阳系,1,YY,YY,YY,50.00,100,TW7866,20,2013-1-2,3)insert into tb_bookinfo values(45682,挖煤,1,YY,YY,YY,50.00,100,DL6581,20,2013-1-2,3)insert into tb_bookinfo values(35641,撞击原理,1,YY,YY,YY,50.00,100,WL8645,20,2013-1-2,3)insert into tb_bookinfo values(63524,杠杆原理,5,YY,YY,YY,50.00,100,WL8645,20,2013-1-2,3)-=- 读者信息表-=CREATE TABLE tb_reader(r_id varchar(30) not null primary key, -读者编号r_name varchar(50) not null, -读者名字r_sex char(2) not null, -性别r_type int not null foreign key (r_type) references tb_readertype(rt_id), -读者类型r_birthday datetime not null, -出生日期r_paperType varchar(20) not null, -证件类型r_paperNum varchar(30) not null, -证件编号r_tel char(13) not null, -电话号码r_email varchar(50) null, -邮箱r_createDate datetime null, -创建日期r_oper varchar(30) null, -别名r_remark text null, -备注r_borrownum int null, -当前借阅数量r_num int null -借阅数量记录)insert into tb_reader values(YY1212,yanyan,女,2,1993,身份证,XXXXXXXXXXXXXX,2013-1-2,YY,减肥ing,1,4)insert into tb_reader values(ZS1212,huangzhuli,女,2,1993,身份证,XXXXXXXXXXXXXX,2013-1-2,YY,减肥ing,1,4)insert into tb_reader values(HZL212,zhangshan,男,2,1993,身份证,XXXXXXXXXXXXXX,2013-1-2,YY,减肥ing,1,4)insert into tb_reader values(LS1212,lisi,男,2,1993,身份证,XXXXXXXXXXXXXX,2013-1-2,YY,减肥ing,1,4)insert into tb_reader values(MSL1212,moshanlan,女,2,1993,身份证,XXXXXXXXXXXXXX,2013-1-2,YY,减肥ing,1,4)-=- 借还图书信息表-=CREATE TABLE tb_borrowandback(w_id int IDENTITY(1,1) primary key not null, -编号r_id varchar(30) foreign key (r_id) references tb_reader(r_id) not null, -读者编号b_id varchar(30) foreign key (b_id) references tb_bookinfo(b_id) not null, -图书编号w_borrowTime datetime not null, -借出时间w_ygbackTime datetime null, -应当归还时间w_sjbackTime datetime null, -实际归还时间w_borrowoper varchar(50) foreign key (w_borrowoper) references tb_admin(a_id) null, -借出操作员w_backoper varchar(50) foreign key (w_backoper) references tb_admin(a_id) null, -归还操作员w_isback bit null -是否归还)insert into tb_borrowandback values(YY1212,25415,2013-1-2,2013-2-2,YY2314,YY2314,)insert into tb_borrowandback values(ZS1212,25415,2013-1-2,2013-2-2,YY2314,YY2314,)insert into tb_borrowandback values(HZL212,25415,2013-1-2,2013-2-2,YY2314,YY2314,)insert into tb_borrowandback values(LS1212,25415,2013-1-2,2013-2-2,YY2314,YY2314,)insert into tb_borrowandback values(MSL1212,25415,2013-1-2,2013-2-2,YY2314,YY2314,)-=- 流程控制-=-while根据超过日期计算应缴罚金declare money moneydeclare day int set day =0while daydatediff(day,2013-1-1,getdate()begin set day=day+1set money=day*1end select fare=money-case函数获取读者年龄select r_name,age=case when year(getDate() - year(r_birthday)=20 then 小屁孩when year(getDate() - year(r_birthday)between 20 and 40 then 成年else 老年endfrom tb_reader-substring()使用select b_id as 图书编号, substring(b_name,1,2) as 截取后的字符串from tb_bookinfo where b_id = 63524-datediff的使用select r_name,age=case when datediff(year,r_birthday,getDate() =20 then 小屁孩when datediff(year,r_birthday,getDate()between 20 and 40 then 成年else 老年endfrom tb_reader-定义一个标量函数来查询图书类型为“数据结构”的书本数量create function dbo.Sumbook()returns intasbegin declare y int select y=count(*) from tb_bookinfo,tb_booktype where tb_bookinfo.t_id=tb_booktype.t_id group by tb_booktype.t_name having t_name=数据结构return yendselect dbo.Sumbook()-=- SELECT查询-=-单表查询select * from tb_reader -读者查询select * from tb_borrowandback-借还图书查询select * from tb_bookinfo -图书信息查询-多表查询/*查询读者编号为YY1212借阅图书的信息图书编号、图书名字、图书作者、出版社、价格*/select tb_bookinfo.b_id,b_name,b_author,b_translator,b_pubName,b_price from tb_reader,tb_borrowandback,tb_bookinfo where tb_reader.r_id = tb_borrowandback.r_id and tb_borrowandback.b_id = tb_bookinfo.b_id and tb_reader.r_id=YY1212-TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,TOP 子句是非常有用的/*图书借阅排行榜,由ORDER BY和TOP配合能实现排行榜的*/select top 10 b_id,b_name,b_author,b_translator,b_pubName,b_price from tb_bookinfo order by b_borrownum/*读者借阅排行榜,由ORDER BY和TOP配合能实现排行榜的*/select top 10 r_id,r_name from tb_reader order by r_num/*查询价格在-30之间图书between.and.*/select b_id,b_name,b_author,b_translator,b_pubName,b_price from tb_bookinfo where b_price between 40.00 and 60.00/*对图书的模糊查询like*/select b_id,b_name,b_author,b_translator,b_pubName,b_price from tb_bookinfo where b_name like %数据%/*对多个读者同时查询其借阅情况In*/select tb_reader.r_name,tb_bookinfo.b_id,b_name,b_author,b_translator,b_pubName,b_price from tb_reader,tb_borrowandback,tb_bookinfo where tb_rea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论