《图书借阅管理系统数据库课程设计报告.doc》由会员分享,可在线阅读,更多相关《图书借阅管理系统数据库课程设计报告.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 数据库设计实验报告 实验课程名称: 图 书 借 阅 管 理 系 统 学 院: 信息科学与技术学院 班 级: 软件工程10-2 小 组 成 员:1001050227 王文波 1001050228 张灿松 1001050229 张 贺 完 成 时 间: 2013 . 06 目 录1. 绪论.3 1.1 研究背景.3 1.2 研究开发现状分析.3 1.3 主要研究内容.42. 相关技术与工具综述.53.需求分析.5 3.1系统功能分析.5 3.1.1系统用例图.6 3.1.2 主要用例的用例规约.7 3.2系统非功能分析.104.系统设计.11 4.1系统总体架构设计.11 4.2 系统静态结构设
2、计.12 4.3 数据库设计.13 4.4类的详细设计.205.数据库结构实现 5.1创建数据库.26 5.2创建视图.286.总结与展望.297.参考文献.301. 绪论 1.1研究背景 (1)一些农村中学图书室都藏书达六、七万余册,但其现行图书管理工作都是采用传统的手工管理,经过对其图书管理工作中的图书信息、读者管理及借阅管理工作做全面调查研究,其现行手工流程具体分析如下: 图书登记:对上级分配、学校购入和社会捐赠的图书进行图书信息登记; 读者登记:图书管理员根据学校档案室提供的教师花名册和学生花名册进行读者登记,然后填发借书证,学生毕业和教师调出时将其借书证注销。 借阅管理:读者特别是学
3、生读者持借书证到图书室借阅图书,图书管理员将借阅日期填写在书籍卡片上,将卡片夹在借书证中间,存放在图书室,学生看完后,送还所借书籍,收回借书证或另借其它书籍。 这种传统人工的管理方式存在着许多缺点,如:效率低、保密性差, 一方面导致教师、学生对学校图书室藏书情况不了解,图书室究竟有哪些图书也不知道;另一方面图书管理员对图书管理工作倍感头痛,因为时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,耗费劳动力大,难于避免错误的产生,如借书证挂失后,仍有少数学生冒用已挂失的借书证借出图书,造成图书外流。 (2)为了践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库
4、的创建、基本操作、程序系统的建立和调试以及系统评价。实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 1.2 研究开发现状分析我们已经学习了数据库系统概论和数据库设计以及sql server,对数据库已经有了一定的了解,并且已经做过了一些和数据库有关的项目,所以对这个课程设计应具备了一些相应的知识。图书管理对于我们来书来说并不陌生,我们经常去图书馆借书对其流程非常了解。利用计算机来管理
5、图书,其好处归纳起来,大约有以下几点: 1 可以存储学校图书室的图书信息、读者信息和借阅信息,安全、高效; 2 只需一名图书管理员即可操作系统,节省大量人力; 3 可以迅速查到所需信息,图书管理系统可以为学校教师和学生提供充足的信息和快捷的查询手段,让教师和学生能够及时查询图书信息,更好地为读者服务。因此计划在现行手工流程基础上开发图书管理系统,以适应现行图书管理工作的要求,提高工作效率。 1.3 主要研究内容开发工具开发工具开发工具开发工具:VB VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开
6、发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。VB具有以下特点:1、 面向对象。VB采用了面向对象设计思想,它基本思路是把复杂的设计问题分解为多个能够完成独立功能且相对简单的对象集合。所谓“对象”就是个可操作实体如窗体、窗
7、体中命令按钮、标签、文本框等,面向对象编程就是指程序员可根据界面设计要求直接在界面上设计出窗口、菜单、按钮等类型对象并为每个对象设置属性。 2、 事件驱动。在Windows环境下是以事件驱动方式运行每个对象的都能响应多个区别事件,每个事件都能驱动段代码事件过程,该代码决定了对象功能。通常称这种机制为事件驱动的编程机制。可由用户操作触发也可以由系统或应用触发例如单击个命令按钮就触发了按钮Click(单击)事件该事件中代码就会被执行,若用户未进行任何操作(未触发事件)则就处于等待状态整个应用就是由彼此独立事件过程构成。 3、 软件Software集成式开发。VB为编程提供了个集成开发环境,在这个环
8、境中编程者可设计界面、编写代码、调试直至把应用编译成可在Windows中运行的可执行文件,并为它生成安装VB集成开发环境,为编程者提供了很大方便。 4、 结构化设计语言。 5、 强大数据库访问功能。6、 支持对象连接和嵌入技术 7、 网络功能。 8、 多个应用向导。 9、 支持动态交换、动态链接技术 10、 具有联机帮助功能后台数据库:SQL ServerSQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点
9、可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。2. 相关技术与工具综述 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。3. 需求分析3.1
10、系统功能分析 (1) 读者管理:读者信息的制定、输入、修改、查询,包括种类、性别、借书数量、借书期限、备注等。 (2) 书籍管理:书籍基本信息制定、输入、修改、查询,包括书籍编号、类别、关键词、备注。 (3) 借阅管理:包括借书,还书,预订书籍,续借,查询书籍,过期处理和书籍丢失后的处理。 (4)系统管理:包括用户权限管理,数据管理和自动借还书机的管理 满足以上需求的系统主要包含有一下几个子系统(1)基本业务功能子系统:该系统中主要包含了借书还书和预订等功能。(2)基本数据录入功能子系统:该子系统主要包含有书籍信息和读者信息录入功能。(3)信息查询子系统:包含了多功能的查询书籍信息和读者信息。
11、(4)数据库管理功能子系统:主要包含了借阅信息管理功能,书籍信息管理功能和预订信息管理功能。(5)帮助功能子系统。下图为该图书馆管理系统的主要功能模块图: 图1:图书馆管理系统功能模块图3.1.1系统用例图图2:图书馆管理系统的用例图3.1.2 主要用例的用例规约用例规约: 用例名称:登陆用例ID:IBM_ESHOP_002.1角色:管理员用例说明:用例主要功能是实现登录,起始于普通用户的登录前置条件:启动程序,进入登录界面基本事件流:参与者动作系统响应 1. 管理员输入基本信息(登录名和密码),点击确定按钮2.系统查找数据库,看该用户是否在数据库中。若存在则进入主页面,若不存在,则进入2.1
12、.1;若未输入,则进入2.2.2其它事件流:无异常事件流:参与者动作系统响应2.1.1未输入用户名2.2.1用户名不存在2.1.2未输入密码2.2.2密码不正确2.1.1 提示用户名或密码不能为空2.2.2提示用户名或密码不正确。后置条件:登录成功用例名称:书籍管理用例ID:IBM_ESHOP_002.3角色:管理员用例说明:该用例主要实现的功能是用户实现对书籍的管理操作前置条件:进入主界面基本事件流:参与者动作系统响应对书籍进行添加,删除,查询,借出,归还等操作系统响应点击事件,跳转至“书籍管理”界面用例名称:读者管理用例ID:IBM_ESHOP_002.3角色:管理员用例说明:该用例主要实
13、现的功能是用户实现对读者的增加、删除操作前置条件:进入主界面基本事件流:参与者动作系统响应1.选择想要修改的联系人,然后点击“增加、删除”按钮3.用户对联系人姓名、性别、出生日期、Email、职务、固定电话、手机、住址、备注信息进行修改,点击“确定”按钮2.系统响应点击事件,跳转至“读者管理”界面5系统对用户的输入进行判断,若合法,则弹出对话框,提示“读者管理成功”用例名称:登录用例ID:IBM_ESHOP_002.1角色:读者用例说明:用例主要功能是实现登录,起始于普通用户的登录前置条件:启动程序,进入登录界面基本事件流:参与者动作系统响应 1. 用户输入基本信息(登录名和密码),点击确定按
14、钮2.系统查找数据库,看该用户是否在数据库中。若存在则进入主页面,若不存在,则进入2.1.1;若未输入,则进入2.2.2其它事件流:无异常事件流:参与者动作系统响应2.1.1未输入用户名2.2.1用户名不存在2.1.2未输入密码2.2.2密码不正确2.1.1 提示用户名或密码不能为空2.2.2提示用户名或密码不正确。后置条件:登录成功用例名称:查找书籍用例ID:IBM_ESHOP_002.2角色:读者用例说明:用例主要实现查看某一分组的组内联系人前置条件:进入借书界面基本事件流:参与者动作系统响应进入界面,用户点击“查找”按钮。2.系统响应点击事件,跳转至“查找书籍”界面其它事件流:无异常事件
15、流:无后置条件:查看书籍详细信息成功用例名称:预定书籍用例ID:IBM_ESHOP_002.2角色:读者用例说明:用例主要实现查看某一分组的组内联系人前置条件:进入借书界面基本事件流:参与者动作系统响应进入界面,用户点击“预定”按钮。2.系统响应点击事件,跳转至“预定书籍”界面其它事件流:无异常事件流:无后置条件:预定书籍成功用例名称:借书用例ID:IBM_ESHOP_002.2角色:读者用例说明:用例主要实现查看某一分组的组内联系人前置条件:进入借书界面基本事件流:参与者动作系统响应1. 进入界面,用户点击“查找”按钮。2. 找到所要借的书籍,点击“借阅”按钮2.系统响应点击事件,跳转至“借
16、阅书籍”界面其它事件流:无异常事件流:无后置条件:借阅书籍成功用例名称:还书用例ID:IBM_ESHOP_002.2角色:读者用例说明:用例主要实现查看某一分组的组内联系人前置条件:进入还书界面基本事件流:参与者动作系统响应点击“还书”按钮2.系统响应点击事件,跳转至“书籍管理”界面其它事件流:无异常事件流:无后置条件:还书成功3.2系统非功能分析 性能需求: 为了确保系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求: (1)系统处理的准确性和及时性。(2)系统的开放性和可扩充性。(3)系统的易用性和易维护性。(4)系统的标准性。(5)系统的先进性。(6)系统的响
17、应速度。 安全需求: 对于图书管理系统的图书量会非常大,所以在对这些图书导入和查询时要保证速度。 在图书借阅过程中又要保证事务的完整性。对于整个系统,需要完整的权限控制,防止某些人恶意攻击系统,修改原始记录,同时对于数据库中的数据需要定时备份,防止系统数据丢失。此外,系统要求用户在登陆时需要身份验证。 可靠性需求: 可靠性可以从安全性、事务性和稳定性三方面来衡量。 安全性与用户业务内容相关。如果开发的软件是信息安全级别很高的,如政府机构的办公文件,那么相应的安全性需求也会很高。事务的重要性在分布式系统和集成性系统中尤为重要。在小型系统中,事务性一般通过数据库本身的事务处理机制来保障,但在分布式
18、系统、集成应用系统中,由于系统中可能存在多个异构数据库,仅仅靠数据库本身的事务处理就远远不够了,这时应借助第三方事务中间件来保障。稳定性由故障的频率、严重性、可恢复性、可预见性、准确性和平均故障间隔时间等一些指标构成。判断软件是否失效的判断依据有:系统死机、系统无法启动、不能输入输出或显示记录、计算数据有错等。1.3 运行环境 1)硬件环境: 处理器:InterCR300以上 内存:128MB以上 硬盘空间:20M以上 2)软件环境: 系统开发平台:Eclipse 3.4 操作系统:windowsXP以上操作系统 数据库:SQL server2005 Java开发包:JDK 5.0以上4.系统
19、设计 4.1系统总体架构设计4.2 系统静态结构设计图3:图书馆管理系统的类图及关系4.3 数据库设计数据库概念设计1、数据库表设计 (1) 管理员表admin:管理员编号(admin_id),管理员姓名(admin_name),密码(admin_password),登录次数(logins),最后一次登录时间(lastlogin)和权限(right)。 (2) 读者表reader:读者编号(reader_id),读者姓名(reader_name),性别(sex),年龄(age),班级(class),最大借书量(maxborrowed)借书总量(amount)和权限(right)。(3)书籍表b
20、ooks:书籍编号(book_id),书名(title),作者(author),出版社(book concert),价格(price),出版时间(time),在库总量(amount),剩余量(remain)。(4)借阅信息表(borrow_information):书籍编号(book_id),读者编号(reader_id),借书时间(borrow_time),到期时间(end_time),归还时间(return_time).(5)预订信息表:读者编号(reader_id),书籍编号(book_id),预订时间(reservation_time),取消预订时间(reservationcancel
21、time).(6) 书籍类型表booktype:书籍类型编号(type_id),书籍类型名称(type_name).(7) 用户权限表right:权限(right)。2、图书管理系统个实体之间的E-R图图4:图书馆管理系统各实体之间的ER图3、基于powerdesigner的CDM数据库模型 (1)数据库概念数据模型CDM对象如下图,该图显示了各实体的属性及各实体之间的关系。图5:图书馆管理系统CDM建模(2)数据库物理数据模型PDM对象如下图,该图显示了各实体的属性及各实体之间的关系。图6:图书馆管理系统CDM建模数据库物理设计由概念模型生成物理模型的的数据库脚本文件为 图书管理.sql文件
22、,代码附下页。附:由PDM对象自动生成的数据库脚本文件代码如下:29/*=*/* DBMS name: Microsoft SQL Server 2005 */* Created on: 2013/6/15 星期六 10:34:13 */*=*/if exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(books) and o.name = FK_BOOKS_RELATIONS_ADMIN)a
23、lter table books drop constraint FK_BOOKS_RELATIONS_ADMINgoif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(books) and o.name = FK_BOOKS_BOOKTYPE_BOOK_TYP)alter table books drop constraint FK_BOOKS_BOOKTYPE_BOOK_TYPgoi
24、f exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(borrow_information) and o.name = FK_BORROW_I_REFERENCE_READER)alter table borrow_information drop constraint FK_BORROW_I_REFERENCE_READERgoif exists (select 1 from sys.sy
25、sreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(borrow_information) and o.name = FK_BORROW_I_BORROW_BO_BOOKS)alter table borrow_information drop constraint FK_BORROW_I_BORROW_BO_BOOKSgoif exists (select 1 from sys.sysreferences r join sys.sysobject
26、s o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(login) and o.name = FK_LOGIN_RELATIONS_ADMIN)alter table login drop constraint FK_LOGIN_RELATIONS_ADMINgoif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object
27、_id(login) and o.name = FK_LOGIN_RELATIONS_READER)alter table login drop constraint FK_LOGIN_RELATIONS_READERgoif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(reservation) and o.name = FK_RESERVAT_RELATIONS_READER)alt
28、er table reservation drop constraint FK_RESERVAT_RELATIONS_READERgoif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(reservation) and o.name = FK_RESERVAT_RESERVED_BOOKS)alter table reservation drop constraint FK_RESERV
29、AT_RESERVED_BOOKSgoif exists (select 1 from sysobjects where id = object_id(admin) and type = U) drop table admingoif exists (select 1 from sysobjects where id = object_id(book_type) and type = U) drop table book_typegoif exists (select 1 from sysindexes where id = object_id(books) and name = Relati
30、onship_5_FK and indid 0 and indid 0 and indid 255) drop index books.booktype_FKgoif exists (select 1 from sysobjects where id = object_id(books) and type = U) drop table booksgoif exists (select 1 from sysobjects where id = object_id(borrow_information) and type = U) drop table borrow_informationgoi
31、f exists (select 1 from sysobjects where id = object_id(login) and type = U) drop table logingoif exists (select 1 from sysobjects where id = object_id(reader) and type = U) drop table readergoif exists (select 1 from sysobjects where id = object_id(reservation) and type = U) drop table reservationg
32、oisql admin.sqlgoisql book_type.sqlgoisql books.sqlgoisql borrow_information.sqlgoisql login.sqlgoisql reader.sqlgoisql reservation.sqlgoalter table books add constraint FK_BOOKS_RELATIONS_ADMIN foreign key (admin_id) references admin (admin_id)goalter table books add constraint FK_BOOKS_BOOKTYPE_BO
33、OK_TYP foreign key (admin_id) references book_type (type_id)goalter table borrow_information add constraint FK_BORROW_I_REFERENCE_READER foreign key (reader_id) references reader (reader_id)goalter table borrow_information add constraint FK_BORROW_I_BORROW_BO_BOOKS foreign key (book_id) references b
34、ooks (book_id)goalter table login add constraint FK_LOGIN_RELATIONS_ADMIN foreign key (admin_id) references admin (admin_id)goalter table login add constraint FK_LOGIN_RELATIONS_READER foreign key (reader_id) references reader (reader_id)goalter table reservation add constraint FK_RESERVAT_RELATIONS
35、_READER foreign key (rea_reader_id) references reader (reader_id)goalter table reservation add constraint FK_RESERVAT_RESERVED_BOOKS foreign key (book_id) references books (book_id)go4.4类的详细设计系统的顺序图顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的。该图书馆管理系统主要含有以下几个重要的顺序图,其他对象的顺序图和这些也类似。(1) 借书顺序图(2) 还书顺序图(3) 罚款顺序图1、 借书顺序图图7:图书馆管理系统借书顺序图【顺序图说明】(1) login():登录系统。(2) checkstu_card():对读者信息进行验证,检查是否符合本图书馆借书条件。(3) showinformation():显示该读者的基本信息函数。(4) borrow():读者借书函数。