DDBS学生借书管理文档.docx
- 文档编号:24692678
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:48
- 大小:1.10MB
DDBS学生借书管理文档.docx
《DDBS学生借书管理文档.docx》由会员分享,可在线阅读,更多相关《DDBS学生借书管理文档.docx(48页珍藏版)》请在冰豆网上搜索。
DDBS学生借书管理文档
分布式数据库课程设计与实现
——面向总分校区学生借书系统的设计与实现
学院:
计算机学院
组长:
郭金磊2620139012
组员:
孙少乙2620139013
王浩2620139014
杨志宇2620139024
日期:
2013年12月9日
1.多校区学生借书系统概述……………………………………………3
1.1背景介绍……………………………………………………………………3
1.2可行性分析…………………………………………………………………4
1.3系统目标……………………………………………………………………5
1.4小组成员和任务分配………………………………………………………5
2.需求分析………………………………………………………………………6
2.1用户需求概述………………………………………………………………6
2.2业务需求分析……………………………………………………………..7
2.3功能分析…………………………………………………………………..8
3.系统总体设计………………………………………………………………..9
3.1绘制用例图设计系统功能…………………………………………………9
3.2绘制系统流程图…………………………………………………………10
3.3系统开发环境……………………………………………………………12
3.4系统的运行环境…………………………………………………………13
3.5系统运行演示……………………………………………………………13
4.分布式数据库分析与设计…………………………………………..20
4.1数据库分析………………………………………………………………20
4.2数据库概念设计…………………………………………………………20
4.3数据库逻辑结构设计……………………………………………………21
4.4分片与位置分配设计……………………………………………………23
4.4.1站点通信模型……………………………………………………………23
4.4.2数据表的分片与位置分配设计…………………………………………23
5.编码实现……………………………………………………………………..24
5.1概述开发工具及编程脚本………………………………………………24
5.2脚本习惯说明……………………………………………………………25
5.3程序设计…………………………………………………………………26
5.3.1公共类设计………………………………………………………………26
5.3.1.1基本工具类……………………………………………………………26
5.3.1.2全局常量类……………………………………………………………27
5.3.1.3全局常量类……………………………………………………………28
5.3.2监听类设计………………………………………………………………29
5.3.3实体类设计………………………………………………………………29
5.3.3.1图书类的设计:
………………………………………………………29
5.3.3..2学生类的设计:
……………………………………………………30
5.3.3..3借阅图书类的设计:
………………………………………………32
5.3.4业务处理类的设计………………………………………………………34
6.测试…………………………………………………………………………….37
6.1测试原则及测试方法概述………………………………………………38
6.2软件测试结论……………………………………………………………40
7.收获……………………………………………………………………………41
8.参考文献……………………………………………………………………..42
1.多校区学生借书系统概述
1.1背景介绍
随着当前高校多校区现象的增多,多校区之间的学生信息的管理成为问题,并且不同校区往往存在各自的图书馆,图书馆资源的共同利用,在不同校区间图书的资源共享存在很大问题。
除了地理位置的原因外,问题还来自不同校区的信息管理系统和图书管理系统的不同与不统一。
在不同校区间借书的情况如:
一个大学在一个城市存在主分校,在主校区的一个学生想要去分校区的图书馆去借书,然而分校区的信息系统中并没有该学生的信息,该学生的信息在主校区数据库中,而书籍信息在分校图书馆数据库中,学生和书籍信息在不同数据库中,难以实现书籍的借阅。
而建立一个统一的管理系统又会存在大量的冗余信息,并且对非自己校区的书籍信息的访问量相对较少,所以在不同校区间建立一个分布式的学生-书籍数据库管理系统的实用价值很大。
1.2可行性分析
(1)经济可行性
图书馆资源是一个学术研究机构重要的信息获取途径,图书馆的建立就是为方便科学研究人员、教授和学生的研究学习,并且图书馆的建设要耗费巨大的经费,倘若书籍不能有效利用,就是对资源的巨大浪费,一个方便图书借阅与资源共享的信息系统,提高了借阅量也就是节约了资源,可以免去不同馆间重复购书。
而且方便借阅人员的同时,也方便了图书管理人员,提高了效率,少量的管理人员能够做更多的事,降低管理经费。
所以说在经济上,一个分布式书籍管理系统的建立是可行的。
(2)技术可行性
网络信息技术的发展,使得不同校区间的通信不存在问题,不同校区之间的数据通信可以以网络传输的形式进行,并且当前网络速率完全可以满足这样规模数据量的通信。
现在集中式数据库信息系统已经非常成熟,各个校区的信息系统在本校区数据进行操作时,就相当于访问自己的集中式数据库。
不同数据库间的互访,可以通过数据库事务处理功能,实现数据库间的同步。
通过图书馆信息系统中数据的分片将数据存放才不同地区的数据库中,使用网络通信和数据库事务处理实现数据库间的访问与同步,那么建立一个分布式的图书信息管理系统技术上是可行的。
(3)操作可行性
数据库信息的访问的逻辑操作在系统内部实现,呈现给用户的是一个可视化的用户界面,并且采用B/S模式可以方便用户的使用,免去安装客户端的麻烦,在操作上和集中式借阅系统基本相似,所以操作上是可行的。
1.3系统目标
该系统的广泛目标是方便不同校区之间图书信息的借阅,方便管理人员的操作,降低不同校区之间图书借阅的费用,使不同校区之间图书借阅成为可能,并且更加方便。
系统具体目标是建立一个统一的数据管理平台,数据库数据在不同馆间存储,系统负责实现数据的互访与同步,呈献给用户第一个透明的平台,操作起来就像是集中式数据库一样。
该系统是一个针对不同校区中学生和管理人员使用的图书馆管理系统,系统通过管理学生和书籍信息,将学校的不同校区逻辑上统一起来。
1.4小组成员和任务分配
任务分配
成员姓名
1)任务分配、组织调度
2)调查、明确系统的需求和业务流程
3)系统总体设计
4)系统的编码实现
5)设计文档的最终排版、审阅
郭金磊
1)建立实体-关系模型,E-R图的绘制
2)UML建模中的用例的分析设计、用例图的绘制
3)数据库分配与分片的概要设计,相关图例的绘制设
4)系统联合测试,调试等
孙少乙
1)调查、明确系统的需求和业务流程
2)基于SQLserver和Mysql的分布式数据库实现
3)系统的编码实现,调试等
王浩
1)基于SQLserver和Mysql的分布式数据库实现
2)系统的编码实现,调试等
3)汇报PPT制作,项目最终成果汇报
杨志宇
2.需求分析
2.1用户需求概述
下面是通过调查研究获得的关于多校区书籍借阅主要信息数据的需求分析结果:
(1)一般高校多个校区中有一个是主校区,而其他均为分校区,分校区归主校区管辖。
(2)多个校区都有各自的图书馆,学生可以借阅属于和不属于自己校区的书籍。
(3)学校主校区能够对所有校区的学生和书籍信息进行查阅与管理。
(4)分校区可以访问主校区和其他校区的书籍信息,并且可以实现跨校区借阅。
(5)各个分校区对自己数据库的操作不会影响到其他校区的数据库。
2.2业务需求分析
通过对书籍入库、书籍借阅、书籍归还流程的调查,得到下面的业务需求:
Ø用户登录模块,用户角色分为三类(老师,学生,管理员)。
不同的角色看到的网页不同。
Ø管理员不仅可以查询到本地的管理员还可以查询本地都有哪有书籍。
还可以查询到该校所有的图书信息。
Ø管理员可以对本地新购进书籍进行入库登记,加入自己校区的书籍库。
可以将遗失或因为其他原因损失书籍在本地数据库和总库中删除。
可以修改本地和全局已经存在的书籍信息。
Ø管理员还可以增删改查本校区和全局的学生信息。
Ø每个人都可以查询到书籍的信息查询,包括不同校区图书馆信息。
管理员查到的是学生或者老师都借了那些书籍,老师和学生可以查到自己借了全局的哪些书籍。
Ø能够针对归还书籍进行归还标记。
2.3功能分析
根据对系统的业务调查和用户的需求分析,结合计算机信息管理的特点,设计系统实现的功能如下。
(1)学生信息管理
学生信息管理包括学生的基本信息管理,实现的功能包括:
Ø增加学生信息操作
Ø修改学生信息操作
Ø删除学生信息操作
Ø查询学生信息操作
(2)书籍信息管理
书籍信息管理主要实现对书籍的采购入库、借阅、归还、删除信息进行管理,具体实现功能如下:
Ø购买图书后,图书入库登记操作
Ø可以对书籍信息进行修改
Ø针对不同校区馆藏书籍进行查询
Ø书籍遗失将书籍信息删除
(3)借阅信息管理
销售管理主要实现对商品的销售出库相关信息进行管理,具体实现的功能如下:
Ø学生或者老师借书后,将借阅信息进行登记
Ø学生或者老师书籍归还后,书籍归还入库
3.系统总体设计
3.1绘制用例图设计系统功能
系统设计包含学生和图书管理员两种用户角色。
1、学生具有登录系统和书籍查询、借阅、归还,其用例图如图3-1所示。
图3-1学生角色系统用例图
2、书籍管理员有登录、书籍入库、书籍修改、书籍删除操作,具体用例图如图3-2所示。
图3-2图书管理员角色系统用例图
3.2绘制系统流程图
1、整个系统分为学生模块和书籍管理员模块,不同用户对应不同的功能,具体流程如图3-2所示:
2、系统数据库采用分布式设计,所以在进行查询与交互时候,涉及到多个数据库,学生借书模块流程图,如图3-3所示:
图3-3系统主要功能流程图
3.3系统开发环境
软件环境:
操作系统:
Windows7
开发语言:
Java,Javascript
使用框架:
Struts,Hibernate
开发环境(IDE):
MyEclipse8.5
数据库:
MySQL5.5
Web服务器:
Tomcat6.0
硬件环境:
CPU:
inteli3
内存:
2G
3.4系统的运行环境
系统可以直接在WinXP,Windows7环境下运行。
系统预设的超级管理员用户名为“admin”,密码为“admin”。
3.5系统运行演示
分别在总校区和分校区建立两套界面,界面功能大致相同,程序启动,首先弹出如图3-4所示的“系统登录”登陆界面,登陆界面可以实现用户的登陆验证,只有输入正确的用户ID、登录密码才能进入系统能够。
图3-4“系统登录”界面
如果登录用户为超级管理员或管理员,会进入系统的主界面窗口,如图3-5所示。
图3-5系统的主界面窗口
如果登录用户权限为学生或者老师,则左边显示的frame应该只有学生的和老师的查看所有图书,和已借所有的图书的信息,而没有其他的查看他人所借图书的信息,如图3-6所示。
图3-6“权限选择”的Frame框架
用户登陆模块由于和后面的学生信息管理和图书信息管理很多相似之处,所以,没有具体的实现,在此,仅作说明。
初试测试用例如下:
图3-7分校区的学生初试测试用例
图3-8总校校区的学生初试测试用例
分布式数据库和集中式数据库最大的不同之处在于数据库的全局应用,在我们的设计里,充分的展示了全局的应用,局部的应用可以以后增加。
下面我们开始全局数据库的应用说明。
下面仅以图书管理员的应用为例进行全局的设计。
当点击
时,会显示出总校区和分校区所有的学生信息,服务器后台首先查询本地的所有学生的信息,之后用TCP协议去查询另一个校区的学生信息,查询的结果以list对象的方式放回,之后和本地查询出的学生信息,进行综合返回到前台显示。
具体如下图:
图3-7“查询总分校区所有学生”界面
在这个界面里,管理员可以对各个学生的信息,进行增删改查,如果更新或者删除的学生信息不在本地,那么就让本地发送一个消息,告诉哪一个数据库我要删除或者更新你的数据,请你更新,远程的数据库知道了相应的请求之后,执行相应的操作,并将操作结果返回给本地。
下面以删除学生为例。
如下图:
图3-8选中要删除的学生界面
假设我要删除一个分校区的学生BD和删除一个一个总校区的学生HHHHH,点击下面的删除学生按钮提交后,对总校和分校的学生信息进行删除,删除时,先删除总校的学生的学生信息,如果删除成功,则返回成功的标志,分校本地看到返回的信息是已经成功删除时候才会对删除本地学生的事务进行提交。
否则事务回滚,两边的信息都不删除,并回到提示error.jsp界面。
提交成功后的界面如下:
图3-9删除成功后的跳转界面
刚开始16个学生,删除两个学生后编程14个学生,删除成功后跳转到学生list界面。
更新学生信息,如果学生是本地的,就直接对学生的信息进行更改,如果学生的信息在远程,则首先从远程取到该学生的信息,返回本地的前台界面,如下图:
图3-10要更新的学生信息界面
如图我实在总校区,现在我要更新分校区的信息,则当我点击右边的更新链接时,会出现
图3-11点击更新后的界面
提示输入新的学生信息,上图中的数据是从分校区取回来的信息,并在本地前台界面显示,填入新的数据后,点击提交会将数据传送到分校区的数据库进行更新。
如下图:
图3-12输入新值后的界面
提交后显示界面如下:
图3-13输入新值提交后的界面
更新成功。
如果是点击新增学生,则默认是将新增的学生加到本地,例如点击上图中的新增学生,则出现下图:
图3-13点击新增学生后填入新值的界面
填入该新生的信息后点击提交,则会返回到先前的学生list界面。
如图所示:
图3-13点击上图总的提交后的界面
则新增学生信息成功。
图书模块和借书模块跟这个差不过,只是第一是当删除某个学生和图书时候,需要删除借书表中的相应学生和图书记录,第二,在新增图书或者新增学生时候,需要全局的唯一主键,该项目是采用了全局唯一主键变量来对全局的主键进行控制。
下面是如果是学生登录,则可以查询他都借阅了什么书籍,如下图所示:
图3-14点击上图中查看学生已借图书后的界面
当点击
后显示上图所以,此时可以填入学生的学号,来查看他所借阅的总校和分校所有借的书籍。
当提交11后显示如下:
图3-14点击上图提交后的界面显示所有借的图书
表示学号为11的学生总共借了四本书,并且都已经归还给了图书馆。
4.分布式数据库分析与设计
4.1数据库分析
系统为了实现的方便,同时考虑到系统设计是建立在自顶向下的方法上,所以这里采用了同构同质的书籍模型,即总校区数据库和分校区数据库同时使用MySQL数据库,这样在数据访问时会方便很多,同时不存在不同数据库访问语法不统一问题。
4.2数据库概念设计
多校区学生借书系统中,数据库设计分主校区数据库设计和分校区数据库设计,主、分数据库中存储信息不同,这根据不同的访问量对数据进行分片,其中包括水平分片和垂直分片。
Ø分校中的学生表,包括分校区中主要访问的学生信息,也就是只有学生基本信息,不包括不经常访问的其他信息,实体图如下:
Ø学生其他信息,这是由于分布式垂直分片的结果,具体如图:
Ø书籍信息,总校和分校书籍信息表一样,具体如图:
Ø书籍借阅信息,该信息在每个数据库中都有,且表属性相同,具体如下:
4.3数据库逻辑结构设计
数据库分为总校数据表和分校数据库表,两者存在相同信息,同时有各自不同信息。
(1)、总校数据库表有学生基本信息表、学生其他信息表、书籍表、借阅表,分别如下:
1、学生基本信息表:
2、学生其他信息表:
3、书籍表:
4、借阅表:
(2)、分校数据库表包括学生基本信息表、书籍表、借阅表:
1、学生基本信息表:
2、书籍表:
3、借阅表:
4.4分片与位置分配设计
4.4.1站点通信模型
该系统设计中,不同站点之间的访问不是直接连接到对方数据库,而是通过TCP通信后,向远程站点发送具体数据查询等命令,远程数据库执行语句后,根据执行的结果返回结果,或者是通知发送点执行失败,请求全局撤销事务。
4.4.2数据表的分片与位置分配设计
根据不同数据信息在不同站点的访问频率不同,将数据信息进行水平和垂直分片:
1、数据的水平分片
(1)在多数情况下,本校区的学生优先借阅自己校区的图书,并且借阅自己校区的频率远远高于借阅其他校区的频率,所以本地的图书信息全部放在自己校区的数据库中存储,这样可以有效的加快访问速率同时减少通信量,降低通信代价。
(2)学生信息的分配也是根据校区采取,不同校区各自存储各自的数据信息,这样,自己校区访问自己的数据时候就快很多,同时减少通信代价。
(3)图书借阅信息,采用书籍在哪里,借阅信息在哪里存储的策略,也就是本地数据库只存储本地书籍的借阅信息。
2、数据垂直分片
本系统中数据的垂直分片,只针对学生信息进行了分片,各个分校将学生的基本信息存储在自己数据库中,这样分校访问基本信息时候直接访问本地数据库就可以;而学生的其他信息在分校中访问较少,存储在总校之中,这样也即是总校中除了总校区学生的所有信息外,还有所有分校区学生的其他信息。
5.编码实现
5.1概述开发工具及编程脚本
本系统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE平台具有以下优点
1.简化结构:
J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。
EJB组件使编写应用程序更为简单。
尽管EJB体系结构复杂,但应用程序开发人员一般都必再编写访问系统服务的代码,EJB容器会实现系统级的服务,例如,事务、安全性等。
另外,J2EE还支持异构环境。
基于J2EE的应用程序不依赖任何特定操作系统、中间件或硬件,因此,设计合理的基于J2EE的程序只需开发一次就可以部署到各种平台,这在典型的异构企业算环境中是十分关键的。
J2EE标准还允许客户订购与J2EE兼容的第三方的现成组件,把其部署到异构环境中,节省了由自己制订整个方案所需的费用。
2.提高开发效率:
由于组件技术的使用,可以按照开发人员的技能对应用程序开发进行分工,并行开发,提供整体开发效率。
例如:
图形设计师创建JSP模板,商业逻辑由该领域的专家完成,JSP页面和EJB由Java工程师完成,应用程序的装配和部署由团队中其他的成员完成,其中许多工作可以同时进行,有助于加速应用程序的开发。
3.可移植性强:
除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。
4.重用性好:
由于在EJB模型中,各个软件组件都是严格分离的,因此,可以从现有的软件组件装配出服务器端应用程序,这与从现有的JavaBean可以装配出客户端应用程序一样,使软件能够重用。
5.易于维护:
基于组件的设计简化了应用程序的维护。
由于组件可以被独立地更新和替代,通过更新应用程序中特定的组件,新的功能可以被很容易地增加。
6.可伸缩性:
企业必须要选择一种服务器端平台,以便满足那些在它们系统上进行商业动作大批新客户。
基于J2EE平台的应用程序可被部署到各种操作系统上,例如,可被部署到高端UNIX或其他的大型机系统上。
J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。
7.被广泛接受:
主要的IT供应用商都采纳EJB体系结构,不同供应商的产品只要符合EJB体系结构,就都是可互操作的。
5.2脚本习惯说明
本系统对于系统中存在变量定义进行了严格的规范化,每个变量都按照J2EE的开发标准。
(一)类的命名规则。
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写,例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,例如:
XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
(二)方法的命名规则。
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。
例如:
sendMessage。
(三)参数的命名规则。
参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。
(四)实现接口的实现类的命名规则。
实现类的以"Impl作为结尾",如果有多个单词,每个单词头字母大写。
例如:
StudentInfoImpl。
5.3程序设计
5.3.1公共类设计
为了提高程序代码的开发效率,便于代码重用,在系统开发中,创建了一些数据操作类和控件扩展类。
5.3.1.1基本工具类
为了便于数据库的随时访问,减少代码量,实现高内聚和低耦合,通常建立基本工具类,比如JdbcUtil类专门用于访问数据,提交事务,事务回滚等的操作,JdbcUtil类的声明代码如下。
SocketUtilJdbcUtil
publicclassJdbcUtil{
publicstaticConnectiongetConnection(){
InputStreamin=JdbcUtil.class.getClassLoader().getResourceAsStream("util/config.properties");
config.load(in);
url=config.getProperty("url");
user=config.getProperty("user");
password=config.getProperty("pwd");
driver=config.getProperty("driver");
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
returncon;
}
closeConnection();
openTransaction();
commit();
rollback();
}
系统程序中主要用到了对远程数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DDBS 学生 管理 文档