您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第19章--客户服务器数据库设计
第19章客户/服务器数据库设计19.1客户/服务器的基本概念和体系结构19.2客户/服务器结构的数据库服务器19.3客户/服务器结构的客户应用程序第19章客户/服务器数据库设计返回主目录第19章客户/服务器数据库设计第19章客户/服务器数据库设计19.1客户/服务器的基本概念和体系结构19.1.1Client/Server的基本概念Client/Server结构包括连接在一个网络中的多台计算机,按照各自实现功能的不同,可将其分为客户机(Client)和服务器(Server)。1.客户机客户机是用来处理应用程序、请求服务的计算机。客户机主要是运行使用户产生其服务请求的程序,将数据库请求发送到服务器。客户机实现的功能主要包括:第19章客户/服务器数据库设计管理用户接口、从用户处接收数据、处理应用逻辑、产生数据库请求、向服务器发送数据库请求、从服务器接收结果并格式化接收到的结果。客户机执行的这些计算称为前端处理(Front-endprocessing),前端处理提供了对数据进行操作和与显示数据有关的所有功能。客户机的软件包括网络接口软件、支持用户需求的应用程序以及实现网络能力的实用程序。其中,网络接口软件用来提供各种数据传输服务;支持用户需求的应用程序主要用于执行具体的任务,例如生成电子表格和数据库查询等;实现网络能力的实用程序主要用于执行网络用户要求的标准任务。第19章客户/服务器数据库设计2.服务器服务器是用来处理数据库的计算机。服务器主要用来接收客户机的请求和传送结果。服务器实现的功能主要包括:从客户机接收数据库请求、处理数据库请求、格式化结果并传送给客户机、执行完整性检查、提供访问控制、执行恢复以及优化查询和更新处理。在服务器上执行的这些计算称为后端处理(Back-endprocessing),后端处理主要提供管理数据资源和存储数据、维护数据以及对数据进行操作等数据库引擎功能。服务器的软件既包括OSI或其他网络结构的网络软件,也包括提供给客户机的应用程序和服务软件。第19章客户/服务器数据库设计3.中间件一般来说,客户机通常是比较便宜的PC机,而服务器是功能强大、运行可靠的大型机或小型机。在数据库环境下,二者通过中间件进行交互。中间件(Middleware)是一种程序设计公共接口,在网络数据库编程中它们也依靠于服务器的扩展程序。它们的作用是提供应用程序和数据库中间的连通性,可以使开发人员在应用程序开发过程中避免受各种通信协议、操作系统以及数据库管理系统的影响。最常见的中间件类型有应用程序设计接口、远程过程调用、网络通信、数据库访问以及计算机辅助软件工程工具。第19章客户/服务器数据库设计中间件是一种相当模糊的客户机/服务器软件类型,其中“SQL中间件”是我们最为关心的一种。SQL中间件是一种设计用来消除各种不同的SQL服务器之间差异性的软件,它提供了一个通用的SQL接口,能被客户程序用来访问所支持的服务器上的数据。SQL中间件的任务是定位被请求的数据,将SQL请求翻译成能被该服务器所理解的形式,转发请求,取得结果数据,将数据送回到客户应用程序。第19章客户/服务器数据库设计19.1.2Client/Server的体系结构1.Client/Server的体系结构Client/Server的体系结构如图19.1所示,客户端的请求经过客户数据库引擎和SQL中间件后传递给客户网络协议,经过客户网络协议解释后经网络传输给服务器。服务器响应请求的过程与以上的顺序正好相反。从Client/Server的体系结构图中可以看出,SQL中间件在Client/Server数据库应用程序中起着非常重要的作用。2.Client/Server的分层体系结构设计客户机/服务器系统的一种方法是集中注意于清晰定义了的应用程序体系结构层次,分层的基本原则是使各层彼此独立,即:第19章客户/服务器数据库设计图19.1客户/服务器体系结构客户端应用程序客户数据库引擎SOL中间件客户网络协议物理网络服务器网络协议服务器数据库引擎服务器数据库第19章客户/服务器数据库设计(1)每层必须有一个被清晰定义的问题领域。要恰当地设计层次,每层的任务和责任应被详细、明确地规定。(2)层次应当各司其责。如果一层负责与用户交互,那么就只有该层被允许与用户通信,其他层需要从用户处得到信息时也必须由该用户界面层完成这一工作。(3)为各层之间交互,应建立被清晰定义的协议。各层之间的交互仅通过这些协议发生。根据上述原则,比较典型的分层体系结构方案通常可以分为两层体系结构和三层体系结构。在两层体系结构中,应用程序被分为应用层和数据结构层。第19章客户/服务器数据库设计(1)应用层:负责用户与之交互的GUI(GraphicalUserInterfaces)的设计(“表示逻辑”)以及业务规则和政策(“应用逻辑”——程序代码中确定一个顾客是否已超过了其贷款限额、一次订货是否符合优惠条件等问题的部分)的实现。应用层也可以处理“事务逻辑”(将数据库更新操作分组成事务,并确保同一事务内的所有更新操作被完成的代码)。(2)数据库层:支持应用程序的底层数据库引擎。该层负责维护数据库的完整性,事务逻辑的部分或全部可在该层实现。第19章客户/服务器数据库设计在两层模型中,应用层通常被作为客户程序实现,用PowerBuilder、Delphi、VisualC++等可视化程序设计工具来开发。数据库层则用SQLServer、Oracle或MySQL等关系数据库系统建立。由于应用层与数据库层之间的划分常常不很明确,且出于性能上的考虑,事务逻辑常常以存储过程的形式转移到数据库服务器中,业务规则也常常以触发器的形式在服务器上实现,所以,三层体系结构就显得十分必要。在三层体系结构中,增加了一个附加层来专门处理业务规则,顶层只负责用户界面。(1)用户界面层:GUI表示逻辑的设计。(2)业务规则层:必须被系统实现的业务规则和政策。第19章客户/服务器数据库设计(3)数据库层:支持应用程序的底层数据库模型,负责维护数据库的完整性。为业务规则建立单独一层的作法,允许将业务规则从数据库设计和GUI表示逻辑中分离出来。在不更改用户界面层和数据库层的情况下,只需改变业务规则层即可适应业务规则的变化。一般来说,两层结构体系即可满足业务规则不是很复杂的客户机/服务器设计。下面通过具体的例程介绍开发客户/服务器数据库系统的方法。第19章客户/服务器数据库设计19.2客户/服务器结构的数据库服务器19.2.1数据库的关系设计1.设计原则在设计应用数据库结构中要遵循以下原则:(1)充分了解目标数据库的使用。(2)数据表中数据字段(项)不宜过多,要考虑数据库的I/O单位。(3)选择合理的数据项类型,是整数类型就不要改为浮点类型。第19章客户/服务器数据库设计(4)权衡利弊确定索引项,索引过多会降低服务器的效率。系统运行中,不要轻易改动索引项。(5)慎重使用SQLServer中的簇索引,只有值是惟一的、顺序产生且固定不变的索引项才可以定义为簇索引。2.设计举例专业的图像数据库要求对大量、庞杂的图像进行科学的管理。为了解决数据项的关系逻辑错误和最小冗余问题,达到快捷、准确、安全的目的,必须运用关系数据库模型建立满足第三范式(3NF)要求的库结构。经过有关专家提议和根据用户的需求,一般来讲,专业的图像数据应具有以下的字段:第19章客户/服务器数据库设计目标类型、背景类型、天气、季节、目标极性、目标大小、入库时间、清晰度、波段、对比度、平均灰度、方差、最大密度和备注信息等。根据关系数据库的模式规范化理论,将图像数据进行分组管理,适当增加有关字段,以便于关系运算。在SQLServer中创建数据库Image_Data,并建立表19.1~表19.4。另外,在服务器端创建用户帐号管理数据库表单(见表19.5),用于用户登录数据库的验证参考,并作为数据库安全的一个重要环节。同时,在此表单中,用户被设置成具有不同的操作权限,从而有效地维护了数据库的安全。第19章客户/服务器数据库设计第19章客户/服务器数据库设计第19章客户/服务器数据库设计第19章客户/服务器数据库设计第19章客户/服务器数据库设计第19章客户/服务器数据库设计19.2.2服务器的数据安全1.数据访问安全一般来说,服务器的数据安全主要依赖于四个环节,它们分别是:服务器的操作系统、数据库管理系统(DBMS)、关系数据库本身和数据自身的加密。图19.2给出了以SQLServer作为数据库管理系统的数据访问流程:局域网上的用户在访问SQLServer服务器的数据之前,必须通过四个层次的安全等级检查,即先登录操作系统(WindowsNT),再登录SQLServer,然后以数据库的不同管理身份登录访问数据库,最后获得用户数据。由于用户数据可能采用了某些加密手段,用户必须持有密匙才能够得到真正的数据内容。第19章客户/服务器数据库设计图19.2数据安全保障流程操作系统DBMS数据库数据第19章客户/服务器数据库设计2.数据备份/恢复数据备份/恢复机制保证系统在任何情况下发生故障时,数据库都最大限度地恢复到事故发生之前的状态。每个数据库服务器都要具备数据库备份和恢复机制,可以每次都只对数据库数据进行备份,也可以备份一次数据库数据,然后在某段时间内仅对事务日志进行备份。数据库的数据备份应该是经常性的,尤其是当数据库的数据更新时,数据的备份工作更应当及时,以保证数据的完整性。数据备份/恢复是在服务器端进行的,由系统管理员sa完成。图19.3是SQLServer作为数据库服务器的层次结构图。第19章客户/服务器数据库设计服务器名SQLServer数据设备集Image_Data(图像数据库数据设备)备份设备集Image_bak(图像数据库数据设备)…数据库集Infrared(图像数据库)用户组/用户对象集表集Item(dbo)(组图像公用信息表)Target(dbo)(组内图像信息表)Target_Code(dbo)(目标代码表)Back_Code(dbo)(背景代码表)Power(dbo)(用户帐号信息表)登录用户集sa(SQLServer数据库系统管理员)2-image_1999-8-1516789pages(数据备份2)1-image_1999-7-1516773pages(数据备份1)图19.3服务器端层次结构图第19章客户/服务器数据库设计19.2.3服务器的进程客户/服务器中分客户和服务器,它们物理上是两台机器,运行两套系统程序和两套应用程序。原则上说,数据库服务器也是应用程序。不论在客户端还是在服务器端,运行部件上执行的程序单位都是进程,客户进程与服务进程之间的通信由中间程序和网络程序实现。1.客户进程运行客户进程负责执行客户应用程序,具体过程是:(1)接收用户请求;第19章客户/服务器数据库设计(2)向服务器发连接(初始化)请求,提供用户帐号和用户口令;(3)向服务器发SQL命令;(4)接收服务器返回信息。2.服务进程运行服务器上运行的进程一般分两类:前台进程和后台进程。前台进程用于处理客户请求,随客户连接的多少增加进程或减少进程。在服务器CPU上始终维持的另一组服务进程,它们平时处于等待状态。这些进程包括:第19章客户/服务器数据库设计(1)调度进程:负责将客户请求进程排队,并将应答队列上的结果送客户进程。调度进程应属于前台进程。(2)数据库后台服务进程:后台完成数据库的服务任务。(3)数据库写入进程:负责将内存缓冲区中的数据写入磁盘数据库文件,相当于磁盘I/O进程。(4)日志写入进程:将数据库的所有事务活动记录在事务日志中。(5)转储进程:当事务日志文件写满时,自动对事务日志进行备份。(6)系统监视进程:执行系统内部操作,包括分配/回收内存空间及其他空间管理。要保证该进程的开销最小,平时应处于睡眠状态。第19章客户/服务器数据库设计(7)性能监视进程:监视并统计系统性能,也要保证该进程的开销最小。(8)进程监视进程:用于清除非正常死亡的进程,检查死锁。该进程始终处于活动和睡眠交替状态。
本文标题:第19章--客户服务器数据库设计
链接地址:https://www.777doc.com/doc-7534789 .html