图书借还书数据库设计_第1页
图书借还书数据库设计_第2页
图书借还书数据库设计_第3页
图书借还书数据库设计_第4页
图书借还书数据库设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、学 号: 课 程 设 计题 目图书借还书数据库设计学 院计算机科学与技术学院专 业班 级姓 名指导教师唐祖锴2013年1月9日图书借还书数据库设计1、图书馆借还书系统介绍图书馆作为一个机构或组织的文化服务场所,提供了许多的文献检索与图书借阅功能。而如今大量的文献有人工进行管理已经很不现实了,所以需要一个有效的管理系统来进行图书管理。在图书管理系统中重点是实现图书的新增、修改、删除、借阅、归还,以及读者的管理、管理员的管理。要考虑各个实体之间的联系,设计出数据冗余最小、范式级别尽可能高的和健壮性强的图书管理系统。2、需求分析说明书 2.1数据库分析通过对本校图书馆的图书管理系统的功能分析和实际调

2、查,所设计的数据库系统包括以下几个数据库信息:(1) 管理员(adminstrator):工作号、密码、姓名、性别、电话、住址、备注(2) 读者(reader):学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码(3) 借还表(borrow):学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数(4) 图书(book):条形码、索引号、书名、作者、出版社、出版日期、简介、入库日期、馆藏地址、是否在馆、借阅次数、续借次数2.2数据库功能分析各模块的功能取决于用户的身份,以管理员登陆具有以下功能:(1) 增加新书(2) 删除无用、过期图书(3) 增加、修

3、改读者信息(4) 把图书借出给读者(5) 删除过期用户(6) 对图书逾期未换进行扣费以用户账号登录具有以下权限:(1) 查看正在借阅的图书(2) 查看已经借阅过的图书(3) 具有一次续借权限所有用户有以下权限:(1) 按不同条件查看图书信息(2) 查看借阅量前10名的图书图书馆借阅的业务流程图见下:借阅过程:还书过程:续借过程:2.3数据字典数据项数据项名数据类型长度值域范围说明工作号字符型20不为空密码字符型30不为空姓名字符型12不为空性别字符型1男或女联系电话字符型20住址字符型50备注ntext学号字符型20不为空姓名字符型12不为空性别字符型1男或女邮箱字符型30联系电话字符型20所

4、在系字符型20不为空生效时间时间型失效时间时间型密码字符型30不为空条形码字符型20不为空索引号字符型16不为空书名字符型50不为空作者字符型12不为空出版社字符型30出版日期时间型简介字符型200入库日期时间型馆藏地址字符型50是否在馆字符型1借阅次数整型续借次数整型借书日期时间型应还日期时间型是否归还字符型1归还日期时间型扣费浮点型数据结构编号:ID01 名称:读者 别名:简述:读者的基本信息组成:学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码编号:ID02 名称:图书 别名:简述:图书的基本信息组成:条形码、索引号、书名、作者、出版社、出版日期、简介、入库日期、馆藏

5、地址、是否在馆、借阅次数、续借次数编号:D03 名称:管理员 别名:简述:管理员的基本信息组成:工作号、密码、姓名、性别、电话、住址、备注编号:ID04 名称:借还 别名:简述:读者借阅图书生成的记录信息组成:学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数数据流编号:F101 名称:读者相关信息 别名:简述:读者的基本信息组成:ID01 ID02 ID03若为数据流来源:读者相关信息去向:借阅处理编号:F102 名称:借阅相关信息 别名:简述:借阅的基本信息组成:ID01 ID02 ID04若为数据流来源:借阅信息去向:借阅处理编号:F103 名称:归还相关信息

6、 别名:简述:归还的基本信息组成:ID01 ID02 IDO4若为数据流来源:借还相关信息去向:还书处理数据存储编号:S1 名称:借还记录 别名:简述:读者借书,续借,还书形成的记录组成:D01关键字: 记录长度:记录数:数据量:处理过程编号:P1 名称:借阅 输入信息:读者信息,图书信息数据存储:图书记录输出信息:图书记录 简要说明:读者借阅图书,输入读者信息和图书信息 编号:P2 名称:续借 输入信息:读者信息或图书信息数据存储:借书记录输出信息:借书记录 简要说明:读者续借图书,输入读者信息或图书信息,由系统判断是否能够续借,每本书用户一旦续借只可续借一次编号:P3 名称:还书 输入信息

7、:图书信息数据存储:借书记录输出信息:借书记录 简要说明:读者还书,输入图书信息判断是否超过期限,是否需要罚款,还书是否成功编号:P4 名称:是否允许借阅 输入信息:借书记录,预约记录数据存储:借书记录输出信息:借书记录 简要说明:读者确定要借的图书,由系统根据读者的借阅记录判断读者是否允许借阅编号:P5 名称:是否允许续借 输入信息:借书记录数据存储:借书记录输出信息:借书记录 :简要说明:读者所借图书是否能够续借编号:P6 名称:是否超过期限 输入信息:借书记录数据存储:借书记录输出信息:借书记录 简要说明:读者是借阅的图书是否超过了借书期限编号:P7 名称:罚款 输入信息:借书记录数据存

8、储:借书记录,罚款金额输出信息:借书记录 简要说明:读者是借阅的图书超过了借书期限需要罚款3、概念设计E-R图密码姓名管理员读者图书借还管理管理学号所在系联系电话生效时间失效时间条形码索引号书名出版日期是否在馆工作号密码姓名扣费借书日期应还日期借阅次数4、逻辑结构设计管理员(adminstrator):工作号、密码、姓名、性别、电话、住址、备注读者(reader):学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码借还表(borrow):学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数图书(book):条形码、索引号、书名、作者、出版社、出版日期

9、、简介、入库日期、馆藏地址、是否在馆、借阅次数、续借次数说明:下划线为主键,黑体字为外键5、物理结构设计管理员:读者:图书:借阅:6、系统主要查询功能及SQL语句应用程序的界面及功能如下:开始界面:此界面是起始界面,没有用到任何数据源。读者空间:此界面是读者登录界面,数据源是reader,通过输入的“用户名”和“密码”与表中的“学号”和“密码”进行对比,如果匹配成功则可以进入读者用户界面,否则,提示用户名或密码输入错误。当前正借阅的书:此界面是读者用户界面,通过对borrow表进行检查,对已往借过的图书和正在阅读的图书进行分类,并且可以对正在借阅进行续借,但是续借是有条件的,一个用户借的每本图

10、书只有一次续借的机会。以往借过的书:续借:管理员空间:采用多选项卡的界面:管理员具有最多的权限。管理员管理着图书、读者,可以对这些表的信息进行增、删、改操作,并进行硬件的管理。硬件管理:书目按多条件查询:最受欢迎的图书:重要的查询语句:按照书名进行模糊查询:select 条形码,索引号,书名,作者,出版社,出版日期,简介,入库日期,馆藏地址,是否在馆,借阅次数,续借次数 from book where 书名like '%" + textBox1.Text.ToString() + "%'"查询借阅数量前10的图书:select distinct 书

11、名,作者,book.条形码,索引号,馆藏地址,是否在馆,cs2.借阅总次数,cs2.续借总次数,cs2.总借阅次数 from book,borrow,(select top 10 borrow.条形码 as 条码,sum(借阅次数) as 借阅总次数,sum(续借次数) as 续借总次数,sum(借阅次数)+sum(续借次数) as 总借阅次数 from borrow group by borrow.条形码 order by 总借阅次数 desc)cs2 where cs2.条码=book.条形码 and book.条形码=cs2.条码这句查询语句重点在于利用了top n来查询前n个数据。这条

12、语句涵盖了整个程序的重点查询,所以其他语句不再赘述。7、总结通过这次课程设计,加深了我对数据库知识的理解,提高了应用能力,也对C#语言的掌握更深了一步。原来总是写一些控制台程序,也总是在与黑框程序打交道,最多涉及文本存储,没有涉及数据库的存储管理的程序,更不知道如何连接数据库。通过这次一个星期的课程设计,我掌握了ADO.NET的基本应用,能够对数据库进行查找、增加和删除,对数据库的应用有了一定的了解,能够熟练的应用SQL Sever等工具进行数据库创建和开发。在开始进行这个系统的初步规划阶段,我对我们学校的图书馆管理系统进行了细致的观察,并结合平时自己使用图书馆网站的习惯,对这个系统的功能做了

13、设计,我就是想要把网站做成单机版的应用程序,后来在进行数据库的建立过程中,我结合本校图书的管理模式进行了逻辑分析,后来决定用4个表对信息进行存储,在应用程序实现过程中,对单表的增、删、改操作没有出现太大问题,但是对多表进行操作时确实花了许多的精力,比如列出借书次数排名前10的图书的信息就设计borrow表、reader表,其中还用到group by 进行分类,再者,在C#中将SQL语句变成一串字符串,还涉及textBox,comoBox中的文字,对引号,空格的掌握实在有些繁琐。后来在基本功能完成之后,在测试过程中发现每次这样输入图书编号、学号太麻烦,我又想到近期做的一个项目中用到RFID读写器,所以就在程序中加了硬件实现代码,把C语言实现的硬件代码进行了移植,后来发现能够很好地完成工作。在这个系统中当然也存在一些问题需要没来得及解决,其中在调试过程中发现对时间类型的操作,比如在1月31日借的图书,在一个月后还,这个系统只是将月份加1,那么就到2月31日,把这个日期类型存到数据库就会出现问题,我已经初步想好了如何解决这个问题,采用最繁琐方法就是每个月份就行判断,1、3、5、7、8、10、12月是有31天的,闰年二月29天,准备采用一个switch语句进行处理,其中具体过程还没来得及在程序中反应,但我相信这个方法可以完成这个功能。通过这个课设

温馨提示

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

评论

0/150

提交评论