ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:442.33KB ,
资源ID:11437900      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11437900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库课程设计文档.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库课程设计文档.docx

1、数据库课程设计文档数据库系统原理课程设计报告题目名称: 图书管理系统 班 级: 计093-2 组长学号: 200925503201 姓名: 李帅 成绩: 组员学号: 200925503235 姓名: 周福智 成绩: 组员学号: 200925503249 姓名: 陈春茹 成绩: 2011年7月14日第一章引言本设计为一个基本的图书管理系统,系统对图书馆中常见的借 书、还书、预定等活动以及相关的读者和管理员等基本信息进行管理。 整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发, 完成借书、还书、预定管理的全过程,包括读者的增添、删除、修改 和查询,新书入库、借出图书的录入、统计与查询,

2、以及库存的统计 等。经过实际使用证明,本文所设计的图书管理系统可以满足图书馆 读者、图书管理方面的需要。通过对系统的初步调查,明确了系统开发的目标为:按照管理信 息系统的原理和方法,采用成熟、先进的信息技术和手段, 支持图书 馆读者、图书管理工作的全过程,加强图书管理活动中的各种信息资 源的管理和应用,实现图书管理现代化,及时、准确地提供各种信息。第二章系统分析2.1现行系统的总目标通过对图书馆工作流程的研究和详细地询问有关人员,对图书馆的各个方面的工作流程有了具体的了解, 经过和图书馆的相关人员协商后,最终确定在图书管理系统中要具有以下几方面的内容:主要实现的功能:管理员:1、 读者类型的增

3、加、查询、修改、删除2、 读者的注册、查询、修改、删除3、 图书类型的增加、查询、修改、删除4、 图书的入库、查询、修改、删除5、 图书预订记录的查看6、 图书的借阅和换回、七廿读者:1、 图书的查询、预订2、 读者密码的修改3、 预订记录的删除第三章系统概要设计3.1数据库设计数据库设计是开发数据库及其应用系统的技术,也是信息系 统开发和建设的重要组成部分。具体的说,数据库设计是要在一 个给定的应用环境中,通过合理的逻辑设计和有效的物理设计, 构造较优的数据库模式,建立数据库及其应用系统,满足用户各 种信息需求。在系统的数据库设计中,首先对系统分析得到的数据字典中的数 据存储进行分析,分析各

4、数据存储之间的关系,然后得出系统的关系 模式。本系统用实体-联系图(简称E-R图)来描述系统的概念模型。 E-R图由实体、属性、联系三部分组成,其符号如图 4.6所示:实体 属性 联系E-R图例3.2实体描述 本系统中所涉及的实体有6个,其结构如下:管理员(管理员姓名、管理员密码、类型号)读者(借书证号、姓名、性别、密码、单位、发证日期、所属类型)图书(图书编号、类型号、图书名称、出版作者、剩余、单价、总量、 进库日期、状态、备注)(状态有0、1两个值,0代表没有被预订, 1代表被预订)管理员类型(类型号、类型名称)读者类型(类型号、类型名、借期、借阅册数)图书类型(类型号、类型名)五个关系:

5、借阅记录(编号、图书编号、借书证号、借阅日期、归还日期、借阅 次数、状态)(状态有0、1、2三个值,0代表未还,1代表正常还回, 2代表超期)图书预定(编号、借书证号、图书编号、预订日期、状态)(状态有0、1两个状态,0代表该预订的书没有被取走,1代表该预定的书已经 被取走)读者和读者类型(读者类型、读者类型类型名) 管理员和管理员类型(管理员类型号、管理员类型类型号) 图书和图书类型(图书类型名、图书类型类型名)3.3联系描述本系统中实体之间有5个联系,其关系如下:(1) 图书预订关系:读者与图书之间的关系是 1:N,因为一个 读者可以预订多本图书,一本图书只能被一个读者预订;(2) 图书借

6、阅关系:读者与图书的关系是 1:N,因为一个读者 可以借阅多种图书,但一本图书只能被一个读者借阅;(3) 管理员与管理员类型:关系是 N:1,因为一个管理员只能 对应一个类型,一个类型可以对应多个管理员;(4) 读者与读者类型:关系是N:1,因为一个读者只能对应一 个类型,一个类型可以对应多个读者;(5) 图书与图书类型:关系是 N:1,因为一个图书只能对应一 个类型,一个类型可以对应多个图书;实体关系图第四章系统详细设计4.1数据库的逻辑设计数据库的逻辑设计的任务就是把概念结构设计阶段的基本 E- R图转化为与选用具体机器上的 DBMS产品所支持的数据模型相符合 的逻辑结构,首先要实现的是

7、E-R图关系模型的转化。而为此要解 决的问题是如何将实体和实体之间的联系转化为关系模式, 如何确定这些关系模式的属性和码。对于实体,将每个实体转换为一个关系, 实体的属性即为关系的属性,实体的码即为关系的码。对于实体间的联系,可以分成三种情况:1) 若实体间的联系是1:1,可以在两个实体转换成的两个关 系中任意一个关系的属性中加入另一个关系的码。2) 若实体间的联系是1: n,则在n端实体转换成的关系中加 入1端实体转换成的关系码。3) 若实体间的联系是n: m,则将联系转换为关系,关系的属 性为诸个实体的码加上联系具有的属性,而关系的码则为诸实 体的码的组合。4.2数据库的实现按照数据字典中

8、的数据元素说明确定每个数据项的类型和长度, 使每个关系都对应一个数据库表:1)读者表(reader)主码字段代码字段名称数据类型长度小数位数可否为空*CerlD借书证号in tegerNot nullreader name姓名Varchar15Not nullsex性别Varchar2password密码Varchar15un it单位varchar15acctime发证日期datetimereadertype所属类型varchar102)读者类型表(readertype )主码字段代码字段名称数据类型长度小数位数可否为空*Typeid类型号varcharNot nullType name类型

9、名Varchar10Not nullDatelimit借期in tegerNot nullborrowlimit册数in tegerNot null3)管理员表(adminer)主码字段代码字段名称数据类型长度小数位数可否为空*user name姓名varchar15Not nullpassword密码Varchar25Not nulladm in type类型号in teger4)管理员类型表(adminertype )主码字段代码字段名称数据类型长度小数位数可否为空*Typeid类型号In tegetNot nullType name类型名Varchar10Not null5)图书表(bo

10、ok)主码字段代码字段名称数据类型长度小数位数可否为空*Book_id图书编号In tegerNot nullType图书类型varchar15Book name图书名称varchar25Not nullBook author出版作者varchar15Publisher出版社varchar30Price单价In teger0Sum总量In teger2have剩余量In tegerin timer进库时间DatetimeFlag状态In tegerRemarksr备注varchar1006)图书类型表(booktype)主码字段代码字段名称数据类型长度小数位数可否为空*Typeid类型号In

11、tegetNot nullType name类型名Varchar15Not null7)图书借阅表(borrowrecord )主码字段代码字段名称数据类型长度小数位数可否为空*ID编号In tegetNot nullBOOK ID图书号In tegetNot nullCERID借书证号In tegetNot nullborrowTime借阅时间In tegetNot nullreturnTime还书时间datetimeNot nullSum借阅次数In tegetFlag状态In teget8)图书借阅表(bookrecord )主码字段代码字段名称数据类型1长度小数位数可否为空*ID编号I

12、n tegetNot nullBOOK ID图书号In tegetNot nullCERID借书证号In tegetNot nullbookTime预订时间datetimeNot nullFlag状态In tegetNot null4.3系统角色活动设计管理员功能4.4功能逻辑设计读者/管理员注册点击读削骨.理処堆护+7W读者/管理员信息修改选崔个人密码修改新书入库V,可;评;討卜J图书查询图书维护V点击ffi: I (借书X件询們阅记求还书4.5关于预订、借书、还书、删除预订记录的数据库操作说明1、 预订:预订的前提条件是该书的剩余量为 0,切该书没有被预订过(目 前一本书只能被预订一次)。

13、否则点击预订,则会提示相应的信息。 预订时分别对数据库中的 Book表和BookRecord表进行操作,在Book 表中把Flag的值设为1,表示该书已经被预订了,同时在BookRecord 表中插入一个相关的记录。2、 删除预订:删除预订是预订的逆过程,首先删除BookRecord表中的相关的 记录,然后把Book表中的相应的记录的Flag的值设置为0。3、 图书借阅:图书借阅分别和3个表有关。首先借阅之前要查询,这本书是 不是被该读者预订过,若是,则把预定表中的 Flag的值设置为1,代表该预订的书已经被取走,再查看该书的剩余量是不是 1,若是1则提示此书已被预订,如果不是还得统计该读者现

14、在借了多少书, 书的数量是不是等于他的类型规定的借阅册数, 如果是,提示借阅册数已满,如果不是,则在 BorrowRecord表中插入一条记录,最后书的 剩余量减1。4、还书还书时首先将现在的日期和 BorrowRecord表中的换书日期做 比较,如果现在的日期在表中的还书日期的后面, 则说明这本书超期 了,这时就把Flag设置为2,代表超期,如果没有超期,则设置为1, 代表该书已经被换。同时在 Book表中的对应的记录的Have加1。说明:这四个操作都涉及到了多个表的操作,为了保证数据的一致性, 均采用了事物,如果一系列操作中的一个不成功,那么就回滚。(1)管理员模块:读者模块:4.6人机界

15、面的设计用户界面是指软件系统和用户交互的接口, 良好的用户界面往往可以提高用户使用系统的热情,并刺激他们的积极性。461登录界面设计为了保证系统的安全性,进入系统之前必须经过必要的安全性, 简洁、清晰、友好是此设计的风格,如图所示:用户登录界面如果输入的用户名或者密码错误,就会弹出下面的窗口,见图所示:错误信息如果输入的用户名或者密码正确, 就会弹出下面的窗口,见图所示:提示信息462系统基本信息界面设计输入正确的用户名和密码后,即进入系统。系统的基本操作界面分读者和管理员:1、读者相关界面按书号查洵ID; 4 用户宕;李帅读者主界面读者预订管理界面按书号查找图书(按书名查找和它类似)弟 JW

16、A 火囘如匣 5lffl 呻耳 罔图书模糊查询界面读者我的信息界面读者修改我的信息界面2、管理员相关界面管理员主界面类型管理主界面类型添加界面类型查询界面类型详细信息界面类型修改界面查看全部界面预订管理界面借阅管理界面图书管理界面图书类型管理界面读者管理界面余下没有列举的界面基本和类型管理的界面相同,这里就不截图了第五章 小结(分个人)5.1概述图书管管理信息系统是一个典型的信息管理系统 (MIS),其开发主要包括后 台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立 起数据一致性和完善性强,数据安全性好的库,而对于后者则要求应用程序功能 完善,易使用等特点,经过考虑,我使用

17、JAVA开发,因为JAVA用起来比较 方便,而且之前有过用JAVA连接数据库的经验。5.2系统的功能经过半个月左右的设计和开发,图书管理系统基本实现了之前确定的功能,基本满足对图书的管理5.3系统的特点本系统的每一个管理子系统均做到内容详备合理、界面安排真观、查询检索 功能强大。采用数据累计保存,满足用户对历史资料的查询等优点。系统登录,需要使用者键入用户名和口令,以防止XX的用户查询修改 数据。5.4系统开发的体会李帅200925503201:经过6天的努力,终于把数据库课程设计做完了。终于 可以送一口气了,尽管结果还是未知,但是过程比结果重要,通过课程设计,不 仅使自己更加熟悉了课堂上学到

18、的东西, 而且还学到了很多课堂上没有学到的东西。在开始写代码之前,就想要往程序里面加触发器、加事物,但是自己对触发 器一窍不通,对事物也是一知半解。为了加上触发器,去网上参考了很多例子, 逐渐了解了触发器的一些写法,最终写出了一个 insert触发器和一个delete触发 器。事物对于这次课程设计很重要,因为在预订、删除预订、借书、还书四个过 程中都涉及了多个表的操作,为了保证数据的一致性,就必须用到事物。最后通 过一个java的视频,学会了使用事物。并且实现了预订、删除预订、借书、还 书的4个事物,同时也更加熟悉了数据库的基本操作语言。代码的编写参照了尚学堂网上商城的代码编写的方式, 采取了

19、面向对象的策略,把各种需要用的功能都封装成了不同的方法, 而且分成了后台和前台两个部分,两个全部编写完成后进再进行集成测试。 通过接近1万行代码的编写,使自 己更加深刻的理解了参考代码中分层封装的思想, 使自己编写代码的水平有了些还有一个就是团队的合作。这次课程设计的数据库是大家共同讨论确定的, 功能也是共同讨论确定的,所有功能都确定后大家进行了分工, 周福智做管理员 和管理员类型的部分,包括后台和前台,陈春茹做读者和读者类型的部分, 包括 前台和后台,我则做图书、图书类型、预订和借阅的部分,也是前台和后台。因 代码的编写同意要求是参照晚上商城的项目的编写风格,这个对我来说不太难, 因为之前的

20、软件工程的课程设计就是参照那个写的,思想上已经很容易接受了。 但是对其余两个人来说那种思想还是很难接受的。 但是最终他们都把代码写了出 来,按着参考代码的风格,并且代码质量非常高,他们肯定付出了很多的努力。 而且当我纠结图书预订、借阅、还书的限制条件时,其他人总是能展开头脑风暴 式的讨论,把自己能想到的全部说出来,最终我们确定了每个活动对应的逻辑, 并用代码实现了,这些都让我非常感动,这就是合作的力量,这就是团队的力量。通过课程设计,让我深深地明白了一个道理,世上无难事只怕有心人,遇到 困难,只要肯干,就一定能把苦难解决。周福智200925503235由于本系统开发时间的仓促和本人对开发工具的

21、认 识水平有限,在没有真正理解需求之前就匆忙开始制定开发计划, 设计数据库表的的结构并进行一些表单窗口的设计, 造成了程序和文档有差错和出入。 在修改 并完善E- R图后,再重新进行数据库表的结构和表单、 菜单、报表的设计修改,造成了时间的浪费,反而得不偿失。而且图书预订一种书只能一个人预订, 不能 实现多人预订同一种书。同时在还书等需要查询的界面,没有对查询结果为空时 的提示。还有就是界面没有经过美化,很不人性化,在做触发器的时候,刚开始 想的很简单,就是一个简单的逻辑集合,整体完成受局部条件的约束,局部条件 要是完成不了,那么触发器里面的所有语句全部不执行,同时在考虑触发器里面 执行语句的

22、时候,发现一个系统的好坏在于它的细节体现的方面, 比如:再删除一本图书的信息的时候必须先删除这本书的借阅信息, 预订信息,借阅记录,然后才能删除概述的全部信息,同时发现,如果要删除一个读者的信息,执行过程 要比删除一本书得信息要复杂的多, 首先得先改变自己现预订书的状态 (恢复没 有预定的状态),触发器里面的事物就会再多一点,还有就是敲代码的时候得细 心,代码的拼写错误很容易发生,但是改掉这个错误就是非常纠结,真的非常纠 结,但是还是在同学的帮助下改了出来。同时觉得团队合作对小组的效率的影响是非常关键的, 甚至起着决定性的作用,看到好多同学小组内的纷争多起, 觉得应该首先处理好小组关系, 然后

23、再确 定分工,毕竟小组内每个同学都有自己的长处, 这个会跟快跟好的处理所遇到的 实际的问题,遇到一些需要建议和见解的问题小组内部的商议非常重要, 关键时刻的一点小小的建议可能会改变真个软件体系的设计方案, 因为软件的好坏总是从细节方面体现出来的。最后通过数据库课程设计的过程中发现我们所掌握的知识是那么的贫乏, 以 至于再设计的时候要考虑到在代码执行过程中是否能具体的实现, 还有在体系结 构和框架设计的时候的考虑方面的欠缺, 觉得应该多一些练习才是,我觉得最重 要的是细节,不管哪个方面,细节是造就完美的重要因素。陈春茹200925503249在这次课程设计中,经过讨论了整个系统要实现的 内容,抽

24、象好数据库后,经过分工,我主要抽象了两个表,有读者,读者类型。 写了相关的接口,并且实现,及方法的封装。然后,又写了相关的界面,并且实 现了界面的增删改查的功能。在此次管理信息系统的开发的过程中,遇到了很多 问题。比如,最初抽象数据库确定好实体后,对实体的属性确定时,按照自己的 想象对属性的数据类型进行了确定, 但是在后来实现时,数据库连接后,没办法 实现数据的操作,最后牵一发而动全身,改了很多东西,在这个过程中,浪费了 很多的时间,也明白了在真正动手做之前,应该对系统分析透彻,思考严谨,尽 量减少不必要的错误。在后来的界面的设计中,对按钮的事件监听,对事件的处 理不是很完整,最后在同学的帮助

25、下,终于找到了遗漏点,也逐渐明白了团队的 协作的重要性。通过这次的课程设计,对这两年的学习进行了全面的回顾与总结。 发现自己 真正掌握的知识很有限,需要学的东西太多太多,在以后的学习中,我们眼界不 至于只局限于一个特定的框架体。 对数据库的认识也有了一定的改变, 有了一定 的认识。5.5致谢在本次毕业设计中,指导老师无论在理论上还是在实践中, 都给予我很大的帮助,为我们提供了许多不可多得的珍贵意见,还有同学帮我解决了很多的问题, 指出了设计的不足,并且提出了很多很可行的建议。 为此,我由衷的对老师的悉 心指导和同学的帮助表示深深的感谢!附录:1、图书预订、删除预订、借书、还书代码package

26、 nmgs.util;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import java.sql.Timestamp;import java.util.Date;import java.util.Iterator;import java.util.List;import javax.swing.JOptionPane;import nmg.ls.book.Book;import nmg.ls.book.BookMgr;import nmg.ls.bookrecord.Book

27、Record;import nmg.ls.bookrecord.BookRecordMgr;import nmg.ls.borrow.Borrow;import nmg.ls.borrow.BorrowMgr;import nmg.ls.db.DB;import ccr.reader.Reader;import ccr.readertype.ReaderT ype;import ccr.readertype.ReaderT ypeMgr;public class UtilSQLServerDAO implements UtilDAO Overridepublic void yvDingBook

28、(Reader reader , Book book) / TODO Auto-generated method stub BookMgr bookMgr = new BookMgr();Book tempBook = new Book();BookRecordMgr bookRecordMgr = new BookRecordMgr();List book_List = null;BorrowMgr borrowMgr = new BorrowMgr();Connection conn = null;Statement stmt = null;book_List = bookMgr.selectBylD(book.getBook_id();lterator i = book_List.iterator(); while (i.hasNext() tempBook = (Book) i.next(); if (book.getHave() 0) JOptionPane.showMessageDialog(null,此书有剩余,您可以直接借取!”); else if (bookRec

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

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