分布式多层数据库系统的应用
目 录
第一部分 引言
1.1 任务或问题:
1.2 实际背景:
1.3 我的工作
1.4 特色(创新)
第二部分 毕业设计课题
2.1 设计课题
2.2 设计时间
2.3 设计人员及任务
2.4 指导老师
2.5 设计内容
第三部分 系统方案论证
3.1 软件定义
3.2 体系结构规划
第四部分 毕业设计内容
4.1分布式多层数据库开发简介
4.2 服务器端程序的建立
4.3 客户端程序的建立
4.4 客户端实现 查询
4.5 动态连接应用程序服务器的实现
4.6 图书管理功能的实现
第五部分 毕业设计心得体会
第六部分 附录
8.1 代码部分
参考资料
摘要
本次毕业设计任务是通过开发一个分布式多层数据库图书管理系统,学习用 开发分布式多层数据
库系统。采用 和 等软件为开发工具;通过对计算机硬件和软件解决方案的
论证;对应用领域进行调查分析;参考各种资料和进行数据库编程实践。在指导老师的帮助下,已经基本
上成功地实现了设计任务书的要求。使得设计的数据库系统能够实现一般数据库的管理。我们研究了数据
库的查询优化问题。
第一部分 引 言
1.1 任务或问题:
开发一个分布式多层图书管理系统,可以实现动态的连接应用程序服务器,只要对配置文件进行配置 ,
就可以像网上邻居一样选择所要连接的应用程序服务器。并提供借书还书,图书和期刊检索等查询功能。
1.2 实际背景:
随着社会发展,人类的生产、生活越来越离不开信息。谁拥有了更多更有效的信息,谁就将在竞争中
处于有利地位。信息产业正在成为一个国家的支柱。数据作为信息的载体,其管理工具数据库对于信息技
术的重要性,正日益得到人们的重视。只有拥有了先进的数据库技术,才能有效地管理好浩如烟海的数据 ,
并从中提取出对自己有用的信息来加以利用。
年代,人们开发 系统大都采用客户机服务器结构,客户机服务器结构既是硬件结构又是软
件结构。即数据放在服务器上,程序在客户机上。进行数据访问时,由客户机提出请求(一般是 语
句),服务器执行并给出结果。客户机服务器对于优化了网络,提高了系统的利用率。客户机 服务器体
系结构的发展经历了从二级体系结构模式到三级体系结构模式。
1.3 我的工作
设计系统框架,设计数据库,编写代码,测试数据等。
1.4 特色(创新)
可以像网上邻居一样选择所要连接的应用程序服务器。
第二部分 毕业设计课题
2.1 设计课题
漳大图书馆管理系统
2.2 设计时间
二○○四年 月至二○○四年 月
2.3 设计人员及任务
王东凯 动态连接服务器模块的实现及帮助件功能模块的实现
王开斌 分布式多层数据模块的实现
王杰林 图书管理功能模块的实现
陈庆辉 数据库的分析及表的设计
2.4 指导老师
苏绿园
2.5 设计内容
利用 和 为主要开发工具,以 为开发平台。设计出分布
式多层应用的图书馆管理系统。可以实现动态的连接应用程序服务器,只要对配置文件进行配置,就可以
像网上邻居一样选择所要连接的应用程序服务器。实现与应用程序服务器快速而准确的连接。
第三部分 系统方案论证
3.1 软件定义
数据库设计所要的解决的问题是:对于一个给定的应用领域,设计优化的数据库逻辑和物理结构,使
之满足用户的信息管理要求和数据操作要求,有效地支持各种应用系统的开发和运行。数据库设计的目标
是为用户和各种应用系统提供一个高效的运行环境。而数据库的设计可以视为如下的优化问题。
() 计算机的软硬件环境;
() 数据库管理系统的能力;
() 用户的操作要求与信息要求;
( ) 完整性和安全性约束。
3.2 体系结构规划
本次设计的系统采用 三层″客户服务器″体系,为了便于理解,我们先从二层″客户服务器″体系结构
来阐述:
客户服务器是在网络基础上,以数据库管理为后援,以计算机为网上工作站的一种系统结构。该结
构的关键在把网络环境上的数据库存取和应用程序一分为二,分别由网上的数据库服务器和网上客户来执
行。虽然本系统客户服务器是建立在 !" 的基础上,但它比以往的文件服务系统有了很大的改进。首先,
它消除了不必要的网络传输负担;其次,它可以使作为数据库服务器的计算机被高度优化,以适应数据处
理的需要。客户服务器已经能够应用于复杂的网络上,并使之能够更有效地进行选择、检索、索引排序
等数据处理。作为一种高级的分布式计算机环境、客户服务器有足够的能力把处理后的结果(不是整个
文件)通过网络传输出去,并根据用户需求灵活地配置各种大、中、小型计算机系统。
3.3 系统设计
数据流图
管理要求 查询要求
管理结果 查询结果
(顶层数据流图)
数据库设计过程
数据库的设计过程如下图所示。在数据库设计过程中,需求分析和概念设计可以独立
于任何数据库管理系统进行。逻辑设计和物理设计与具体的数据库管理系统密切相关。由
于需求分析比较重要。我们在设计的时候,花了比较多的时间。在获得这些资料之后,进
行分析。从中提取有用的部分。分析各种用户的权限。
需求分析说明书
概念数据库模式
独立于数据 (高级数据模型)
库管理系统
与数据库管
图书
管理系统
管理
人员
用
户
现实世界
需求分析
概念数据库设计
理系统相关
逻辑数据库模式
(特定数据模型)
物理数据库模式
(特定的物理存储结构和存取方式)
图:数据库设计过程
第四部分 毕业设计内容
4.1 分布式多层数据库开发简介
提出的 !(#$%&$'#$!()$(#$ 多层分布式应用服务
器组),是把原来 &%& 数据连接放到了服务器端的 *+ 组件上,客户端只剩下了执行文件和
!,前台和服务器上的 *+ 组件,通过 *+ 机制互相沟通。
这个多的一层,称为应用程序服务器(!()$),或者称为中间件。整个工作机制见
下图:
这种多层分布式工作机制,主要基于这样几点考虑:
) 减少客户机的维护量,因为前台程序比较简单;
把企业逻辑封装在通用的中间件应用服务器中,不同的客户都可以共享同一个中间层(包括
'),而不必每个客户都单独实现企业规则,避免了重复开发和维护的麻烦。由于客户程序相当瘦
(这就是现在流行的瘦客户机概念),无论是开发还是发布,都变得简单了。
) 便于升级,当中间件升级的时候,客户程序可能不需要变化;
) 实现了分布式数据处理,把一个应用程序分布在几台机器上运行,可以提高应用程序的性能,
也可以把敏感部分封装在中间件,为不同的用户设置不同的访问权限,增强了安全性。
) 减少直接连接数据库的用户数目,减少费用。
逻辑数据库设计
物理数据库设计
在 上,在原来的 ! 基础上,发展了 )$)) 技术,在很多细节方面,它提供了
原来 ! 所没有的许多功能,使用上更加方便了。
)$)) 主 要 提 供 客 户 端 和 中 间 件 之 间 的 通 信 , 不 但 支 持 *+, 技 术 也 支 持 &* 或者
*+-.!,它们使用类似的界面和方法,其结果由程序自动完成,这就大大扩充了它的应用范围。
必须要提醒的是,前台机器上除了应用程序以外,还必须把一个 ! 文件复值到前台机器上,
这个文件在服务器的 ""&/0$1 目录下。
4.2 服务器端程序的建立
服务器端程序实际上是个 *+工程,它本身连接数据源,再通过接口与客户端联系,这个 *+工程
必须注册在服务器上。
首先建立一个空白的工程,在工程里放置一个 !(($ 组件。然后再建一个远程数据模块
2%3"%3+$%3#$$%3-1$)$)#4远程数据模块5。 *()")16
',$)(76执行模式,大部分用 #$$)((多重实例)8&)7:
线程模式,建议用 !)$1$(单元)8产生一个窗口,在这个窗口里,可以放入数据控件。
在 9%3&0')0中,我们可以看到这个 *+的一些特性。我们也可以记下系统提供的
:; , 以 备 后 来 使 用 。 加 入 一 个 !+&)' , 并 设 置 其 指 向 一 个 数 据 库 。 再 设 置 一 个
)$)$4在 )$)!(( 页5指向 !+&)'8这就完成了服务器端的程序设计。
保存,编译,注册(注意,只要运行就自动在本机注册了)。
4.3 客户端程序的建立
在 &%& 模式中,客户端4*$5程序是直接和服务器的数据源相连的,而 #$%& 模式,多个
客户端连接的是一个应用程序服务器,因为收费是按客户端数计算的,所以,数据库的使用费用比较低。
)建立一个普通的工程。
)放置一个 &*+*($ 控件(在 )$)) 页),属性:在本机注册时,可直接设置以
下属性:")16应用程序服务器注册名(') 8*($<$#。这时你可以
看到服务器端的 *+程序被激活了。如果在网络上调试,需要给出服务器名6*1#$")1:服务器
名(自动给出网上邻居)注意: :; 的 :; 值是自动给出的。
) 放 置 一 个 &*$)$)$ 控 件 ( 在 )$) !(( 页 ) , 属 性 -1$<
*+*($8")16<)$)$(服务器端将被激活)8!($<$#(激活
后将能正常连接)
)放置 &)$)#(,属性:)$)$6指向 (*#$1。
这样一个客户端程序就建立好了8其余犹如普通的数据库设计。
4.4 客户端实现 SQL 查询
由于在客户端不存在 � 控件,似乎客户服务器模式是无法做 查询的。但是, 很好的
解决了这个问题。事实上,只要客户端连接上服务端应用程序,客户端的 &*$)$)$ 就包含了一个
名 字 为 的 属 性 , 对 应 到 服 务 器 端 )$)$ 的 所 有 默 认 属 性 和 方 法 , 其 中
)$)$ 有 一 个 +$ 属 性 , 只 要 让 其 中 的 !*11)&=$<$# , 那 么 ,
)$)$ 的 !*11)&=$ 就可以接受前台来的 命令,并传送给 �。
可以看出,真正传递数据的是 )$)$ 的接口,所以,用这个接口搭建传递 的桥梁是
必需的。客户端进行 查询的方法是: