三层C/S数据库

2024-08-21

三层C/S数据库(共7篇)

三层C/S数据库 篇1

1 引言

传统的2层C/S结构数据库应用中,系统的业务规则几乎都要在客户端进行,随着系统规模的不断扩大,企业逻辑日趋复杂,客户端将不堪重负。为了解决2层C/S结构存在的问题,多层结构应用体系应运而生。多层结构的典型是三层结构,其基本思想是把用户界面和企业逻辑分离,在传统的2层C/S结构中放入应用服务器。整体结构如图1。

2 Delphi开发三层C/S数据库应用程序方法

Delphi是一种可视化开发工具,支持面向对象开发方法,它提供数据库引挚BDE、丰富的数据库访问和操作控件以及数据库报表工具,大大提高开发数据库应用系统的效率。使用Delphi开发一般可以分成3个步骤:1)在数据库服务器上建立需要的数据库;2)建立应用服务器;3)建立客户端应用程序。

数据库服务器主要由专门的数据库管理系统实现,使用数据库引擎BDE来建立应用服务器与数据库服务器的关系。客户端和应用服务器端的连接通过DataSnap技术来实现。DataSnap提供了很多种客户端和应用服务器的连接方法,如Scokect,DCOM,Corba等,分别通过SocketConnection、DCOMConnection、WebConnection三个组件来实现TCP/IP、DCOM、HTTP三种传输协议。

3 基于DCOM协议的三层C/S数据库应用程序开发

建立三层结构应用程序,必须先建立应用程序服务器,并运行注册之,再建立客户端。下面通过在客户端建立一个浏览“学生.MDB”数据库中的“学生信息表”的应用程序来说明建立一个基于DCOM协议的三层结构数据库应用程序的开发方法(假设在应用服务器上已经设置好BDE连接,并连接到数据库服务器)。

3.1 建立应用程序服务器

1)新建一个应用程序,在Form1窗体上放置Table1,DataSource1和DataGrid1三个组件,并按照表1设置组件属性,Form1的设计界面如图2。保存窗体和应用程序,窗体单元取名为“ServerUnit”,项目文件取名为“DcomAppServer.dpr”。

2)增加一个远程数据模块,设置它的CoClassName为XSGL,保存取名为“XsglUnit”。并在XsglUnit单元的implementation部分中添加语句:uses ServerUnit;

3)在XSGL模块中加入一个TDataSetProvider组件,设置它的DataSet属性值为Form1.Table1。此时XSGL远程数据模块的设计界面如图3。

4)在Form1的OnCreate事件中编写如下程序:

5)保存并运行,运行界面如图4。系统自动将该应用服务器进行注册,当客户程序运行时,系统自动启用应用服务器。

3.2 建立客户端程序

1)新建一个应用程序,设置Form1的Caption属性为“学生信息表-客户端”。

2)建立数据模块,并添加TDCOMConnection,TClientDataSet,TDataSource和TDBGrid组件,它们的名称分别为DCOMConnection1,ClientDataSet1,DataSource1和DBGrid1。程序设计界面如图5。

3)设置DCOMConnection1,ClientDataSet1,DataSource1和DBGrid1的属性,其属性设置见表2。

4)在Form1的OnCreate事件中添加如下代码:

5)保存并运行,程序运行界面如图6。

4 结束语

在Delphi中可以通过基于DCOM协议、基于TCP/IP协议和基于HTTP协议3中方法来开发三层结构数据库应用程序,分别通过DCOM-Connection、SocketConnection、WebConnection三个组件来实现。其中DCOMConnection组件提供的功能最为完善,配置比较简单,而且执行效率较高,安全性也比较好。

摘要:讨论分析了Delphi中实现三层C/S数据库应用程序的方法,并举例进一步介绍基于DCOM协议来建立三层结构中的应用服务器和客户端应用程序的步骤。

关键词:Delphi,三层C/S数据库,DCOM协议

参考文献

[1]王春红Delphi7程序设计[M].北京:清华大学出版社,2004.

[2]侯太平,童爱红.Delphi数据库编程[M].北京:清华大学出版社,2004.

[3]吴小林,蒋先刚,高艳锦.基于Delphi的多层数据库应用系统连接技术的研究[J].华东交通大学学报,2005,1(22):66-70.

[4]李文生,叶宁.采用Delphi实现三层客户/服务器数据库应用程序[J].计算机工程,2000,7(26):170-173.

三层C/S数据库 篇2

关键词:医院信息系统,C/S结构,PowerBuilder,SQL Server

0 引言

医院信息系统(HospitalI nformations ystem,HIS)也被称作为临床信息系统(ClinicalI nformation System,CIS),是一个高度集成化的医院计算机信息管理系统。目前作为医学信息学(MedicalI nformatics)的重要分支,大家普遍接受的HIS定义为:应用先进的计算机和通信设备,为医院的各部门提供患者医疗信息和行政管理信息的收集、整理、处理、提取和分析能力,并满足所有授权用户的功能需求[1]。

随着微电子、计算机和通信等信息技术在医疗领域中的迅速发展,发达国家已通过计算机网络将医院信息系统、医疗信息服务系统及医学图像存储传输系统连接起来,并在医院普及并应用,产生了巨大的社会效益和经济效益,促进了医学、计算机和信息技术的发展,医疗卫生事业进入了崭新的信息时代。我国从20世纪70年代开始就关注着国际上医院信息系统的建立和应用,到20世纪90年代中期,已正式推出国家医疗卫生信息网,即“金卫工程”[2]。随着医院管理功能、管理需求的不断拓宽,医院信息系统已成为医院现代管理和决策不可缺少的技术手段和保证,在医院管理活动中发挥着巨大的潜能和作用。

本文结合深圳某医院信息化项目,针对该医院的实际需求,采用三层C/S结构设计,使用目前流行的开发工具PowerBuilder和SQLS erver2 000数据库平台,设计开发了医院信息系统。

1 医院信息系统业务流程及特点

医院信息系统的功能是围绕着患者来医院就诊的步骤实现的,其业务流程图如图1所示。患者来医院后首先会去挂号台挂号并登记付费。登记的项目包括患者的基本信息、就诊信息、挂号的科室、看病的类型、以及相关费用。挂完号后,患者将直接去相关科室等候医生检查。医生检查诊断的信息通过门急诊管理系统的医生工作站输入到HIS中。这些处理的信息包括门诊病历书写、处方书写、检查申请和住院申请等。对于非第一次来院的患者,医生可以直接在工作站调阅以前的就诊信息。当医生填写检查、诊断、处方、检查申请、住院申请等项目时,相关的信息会直接传递到相关的功能系统。例如,费用的合计会发往门诊收费系统,相关的病历记录传送到病历管理系统等。作为就诊的下一步环节,患者会来到门诊收费处。根据医生工作站传来的信息,相关的费用包括处方药、检查费等会被统计出来。交纳完相关的费用后,患者去相关的部门如药房提药,实验室验血,影像室拍片等等,完成最后的步骤[3,4]。

2 系统结构设计

2.1 总体设计思路

通过先进的计算机技术和信息技术,将医院的各项业务流程、各方面临床工作内容、各层面管理要求、患者诊疗的各个环节以及医院的各种医疗设备等方方面面的资源有效地整合在一起,以临床为主线,以患者为中心,以管理为目的,优化医院工作流程、科学配置、医疗资源,加强医疗质量控制,挖掘信息数据价值,最终实现各种信息网络共享,业务流程科学化和自动化、临床工作无纸化电子化,患者就诊透明化和高效化,医院管理信息化和数字化。

2.2 三层C/S结构设计

2.2.1 三层C/S结构系统描述

医院信息管理系统多采用C/S模式,两层结构的C/S应用程序对网络和服务器的依赖性较大,延展性差,程序的发布也较麻烦。对于上述存在的问题,解决的方法就是在客户端和数据库服务器之间加入企业逻辑(Business Logic)层,该层通常存放在另一台被称为应用服务器(Application Server)的机器上。三层C/S逻辑结构如图2所示[5]。

2.2.2 三层C/S结构的优点

与两层C/S结构相比,三层结构具有以下优点[6]:

(1)安全性加强。

应用服务器把客户与数据库服务器分开了,客户端不能直接访问数据库服务器。应用服务器可控制哪些数据被改变和被访问,以及数据更改和访问方式。另外,对应用和数据的存储权限可以分层进行设定,这样,即使外部的入侵者突破了客户端的安全防线,则在应用服务器和数据库服务器中备有另外的安全机构,系统也可以阻止入侵者进入其他部分。

(2)效率提高。

三层C/S结构中,客户端与应用服务之间的链接实际上只是一些简单的通信协议,而与数据库服务器打交道所需要的设置或驱动程序,均由应用服务来承担,这既减轻了客户端的负担,也降低了数据库服务器的链接代价,使数据库服务器专心于数据服务而不是频繁地与客户端的应用程序交流。各层的逻辑关系清晰明了真正做到了“瘦客户”。

(3)易于维护。

由于应用逻辑被封装到了应用服务器中,因此当应用逻辑发生变化时,仅需修改应用服务器中的程序,客户端的应用程序不必更新,维护的代。

(4)可伸缩性。

三层结构是明确进行分割的逻辑上各自独立,并且能单独实现。由于它们是逻辑划分的,与物理位置不一定相对应,因此它们的硬件系统构成是很灵活的,各部分可以选择与其处理负荷和处理特性相适应的硬件。三层既可以在一台计算机上,也可以在2台,甚至更多的计算机上,只要它们在体系上遵循三层结构就可以。

(5)可共享性。

单个应用服务器可以为处于不同位置的客户应用程序提供服务,即应用系统只写一次可以用于各个环境。

(6)开放性。

由于应用服务器的每个组件都有标准的接口,用户可以重写自己的客户端程序和自己的浏览器程序。

2.3 软件子系统设计

结合该医院的实际情况,设计其医院信息系统包括以下10个子系统,如综合查询子系统、门急诊管理子系统、多媒体导诊子系统、设备管理子系统、住院管理子系统、药品管理子系统、器材管理子系统、人员管理子系统、财务管理子系统、系统维护子系统。医院信息系统子系统划分如图3所示[7,8]。

由于篇幅所限,下面仅对住院管理子系统的设计进行详细介绍。根据医院运行的实际需要,住院管理子系统主要划分为住院收费部分和病区管理部分。其中,病区管理又可进一步细分为入院、出院、病房管理。住院管理子系统与其他子系统一样,要正常工作,必须有基础数据的支撑,如医生信息、药品信息等,而这些信息需要系统维护人员进行系统维护。在这几个模块的基础上,住院管理子系统需要形成相应的查询、统计、财务、打印功能,如图4所示。

为了对住院管理子系统进行数据库开发,需要对住院管理进行需求分析,得出数据流图,如图5所示。从而得到E-R图,以进行数据库部分的开发(E-R图过多,限于篇幅,略)。

3 HIS系统开发

3.1 开发工具的选择

数据库平台选用的是Microsoft公司的SQL Server 2 000。Microsoft SQLS erver 2 000是由一系列相互协作的组件构成的,能满足最大的Web站点和企业数据处理系统存储和分析数据的需要。SQL Server 2000的特性有[9,10]:

(1)Internet集成;

(2)可伸缩性和可用性;(3)企业级数据库功能;

(3)企业级数据库功能;

(4)易于安装、部署和使用。

它是大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台,在Windows环境下界面友好,操作简单,已成为Windows环境下流行的数据库系统。同时,在数据安全管理和完整性管理中有着优秀的特性。

系统软件的开发采用Power Builder 6.5,它是一个面向对象的Client/Server开发工具,它可以在Window 9X,Windows NT,Macintosh,Aix/6000,Sun Solaris等开发的平台上运行。Power Builder 6.5提供了众多的描绘器用于创建和管理不同的对象,从而大大降低了面向对象应用开发难度,提高了开发质量和开发速度。同时,它具有强大的数据库操作功能,这一特点使它特别适合于HIS系统的开发。

3.2 部分开发代码

3.2.1 创建Z_fb住院费类别数据表代码[11]

3.2.2 创建z_cwh床位号的维护表代码

4 结语

与传统两层C/S结构不同,本文采用了三层C/S结构来设计医院信息系统,保证了各病区的独立性,同时有效地减轻了网络的负荷。通过该信息系统的开发设计和应用,为医院提供了信息化支撑平台,全面支持医、护、药、技、科、教等医院信息化管理系统。该系统不仅提高了医疗水平和服务质量,同时,也相应地提高了医院的经济效益和社会效益;实现了医院信息系统的规范化、合理化、有效化,其实用性强,具有较好的推广价值。

参考文献

[1]COLLEN Morris F.A history of medical informatics in theunited states,1950 to 1990[M].USA:American MedicalInformatics Association,1995:25-26.

[2]范慧明.建立医院信息系统的实践与思考[J].中国卫生经济,2006(5):78-80.

[3]王雪峰.数字化医院门诊患者就诊流程的优化[J].中国医院管理,2007,27(4):50-51.

[4]凌翌.医院信息管理系统:天和医院信息管理系统2.0版[D].天津:天津大学,2005.

[5]李澄,张广明.医院管理信息系统的设计与实现[J].微计算机信息,2007,23(3):29-31.

[6]彭守镇,万仲保.XML技术在HIS系统中的应用[J].电脑学习,2007(5):17.

[7]梅斌.医院信息系统(HIS)的开发方法研究[D].上海:华东师范大学,2008.

[8]汪樱灿.医院信息管理系统的设计与实现[J].科技情报开发与经济,2009,19(17):121-122.

[9]赵丽佳,李冬郁.浅谈HIS系统在设计与实施过程中应注意的问题[J].医疗装备,2003,16(6):11-13.

[10]庄军,袁梅,刘侃,等.基于HIS下的决策支持系统的开发设想[J].医学信息,2005,18(3):177-181.

三层C/S数据库 篇3

1系统总体方案

发射机远程监控系统主要实现对发射机的远程监测与控制。系统中远程监控计算机通过通信接口与发射机本地监控系统建立网络连接,传输命令帧和数据帧,如图1所示。发射机本地监控系统将发射机运行的状态数据传送给远程监控系统,远程监控系统对数据进行处理,用来监视发射机的工作状态。用户可以通过远程监控系统发送控制命令给发射机本地监控系统,由发射机本地监控系统执行相关操作。通过远程监控系统,可以在远离现场的监控室中对发射机进行实时监控。

2功能描述

在系统软件设计时,可以从需要实现功能的角度分为以下部分,如图2所示。

1) 运行状态显示模块: 通过通信接口读取发射机的运行数据并进行处理,将处理后的数据分类保存至数据库,监测显示各部发射机的工作状态,判断并在界面上显示发射机是否正常工作,当出现故障时发出声光报警。

2) 参数调整模块: 用户通过人机交互界面,设置发射机自动开关机时间和上下限参数。该模块将来自人机交互界面的设置参数操作事件进行转译,通过通信接口下发到对应的发射机本地监控系统中,实现参数修改,并将操作用户、时间和结果保存至数据日志模块,以备查询。

3) 控制模块: 用户通过人机交互界面对发射机执行控制操作,如开关机命令,该模块将来自人机交互界面的控制操作事件转译为控制系统命令,通过通信接口下发给对应的发射机本地监控系统,并将操作用户、时间和操作命令详细信息保存至数据库日志模块,以备查询。

4) 日志管理模块: 添加、删除登陆用户,修改登陆密码,查询用户登录记录和相关操作,查询历史运行数据( 包括正常数据和故障数据) 并按照规定生成历史状态运行表。

5) 数据存储模块: 将系统处理的数据按照正常运行数据、故障数据和日志数据分类存储。

6) 通信模块: 此远程监控系统实现时考虑到与不同厂家设计的发射机本地监控系统通信兼容的问题,可以通过以太网和串口两种通信方式提供远程监控服务功能。

3系统软件设计

系统设计时采用3层C/S( Client /Server) 架构模型, 该架构将显示、处理和数据分布到独立的软件系统中,使得结构更加灵活。本系统软件设计时按照业务功能采用3层模型分别为: 人机交互层、系统业务逻辑层和数据存储及通信层,如图3所示。

1) 人机交互层: 位于最外层( 最上层) ,离用户最近。 用于显示数据和接收用户输入的数据,为用户提供一种交互式的操作界面。

2) 系统业务逻辑层: 针对具体问题进行操作。按照功能分为运行数据模块、系统数据模块、系统命令模块和用户管理模块。

3) 数据存储和通信层: 该层用来实现发射机远程监控系统和发射机本地监控系统之间的通信,并将业务逻辑层处理的发射机运行数据和相关操作分类存储至数据库的相关表中。

三层C/S模型克服了客户端工作量大、软件重用性差的局限性[6]。当用户通过人机交互层查看数据或进行远程控制时,它向系统业务逻辑层发送请求,系统业务逻辑层从数据存储及通信层获取数据,并对所获取的数据进行相应的处理,它直接地分离了人机交互层和数据存储及通信层。该模型各层之间是向下依赖的关系,底层对于上层来说是“无知”的,在不改变接口定义的前提下对上层程序重新设计不会影响调用底层程序。当系统中相应的功能需要改变或更新时,开发人员只需关注整个结构中的其中某一层,只需要在对应层中改变相应的部分而不需要改变整个软件程序,使系统具有良好灵活性和可扩展性。 各层之间的接口相对独立,降低了层与层之间的依赖,同时可为多用户提供访问,有利于各层逻辑的复用和软件标准化。

在系统软件实现时采用Lab VIEW进行开发,它是美国NI公司推出的一种通用虚拟仪器开发软件,包含了丰富的功能函数库和完备的总线设备驱动程序。它的最大特点是其基于图形的编程方式,它采用了框图而非传统的文本方式的编程方法。这种编程方式强调信号处理的实际过程,编程简单、调试方便。

3. 1人机交互层

三层模型中人机交互层与系统业务逻辑层的分离,只需关注人机交互界面上数据的显示和相关参数的输入, 不需要考虑系统业务逻辑的操作,因此在设计的时候考虑用事件驱动编程方式来实现,即某个事件一旦被触发,系统马上就去执行与该事件对应的事件过程。等该事件过程执行完毕后,系统又处于等待某个事件发生的状态。

3. 2业务逻辑层

业务逻辑层是系统架构的核心部分,主要完成业务规则制定、业务流程实现和与业务需求有关的设计。它位于分层系统的中间位置,在数据交换中起到了承上启下的作用,对于数据访问及通信层它是调用者; 而对于表示层它是被调用者。在业务逻辑层设计时采用TM( Table Module) 模型,该模型根据系统功能组织业务模块和数据表,每个模块对应各自的数据表,做到最大限度的业务功能和数据表相对应。该模型比较直观,操作集中,设计的程序简洁、高效。在本远程监控系统中,业务逻辑层中的运行数据模块、系统数据模块和系统命令模块实现如图4所示。

3. 3数据存储及通信层

3. 3. 1通信及数据库设计

在实现发射机远程监控系统与本地监控系统通信时,考虑到不同厂家提供串口和以太网通信接口的兼容性,采用适配器将串口通信转换成以太网通信方式。统一通信接口,通信协议采用TCP/IP协议。

通信过程为: 首先通过IP地址与端口号,在发射机本地监控系统端建立侦听,等待远程监控系统连接。然后远程监控系统根据IP地址和端口号发出连接请求,等到远程监控系统和本地监控系统建立连接后,通过读写函数即可进行TCP通信。

3. 3. 2数据库选择和设计

随着发射机运行状态数据的积累,对运行状态数据的管理和分析要求日益提高,因而有必要将数据库引入监控系统中。

选择使用SQL Server关系数据库管理系统,它是真正的客户机/服务器体系结构,具有图形化用户界面,使系统管理和数据库管理更加直观、简单。SQL Server提供了丰富的应用程序接口来访问数据库,主要的访问方法有: ODBC,API,OLE DB,Trabsact - SQL和DB - Library,客户机可以通过这些API作为动态链接库来使用,并通过客户端的网络库与SQL Server服务器通信。

在Lab VIEW编程环境下访问数据库通常有以下几种途径:

1) 利用NI公司的附加工具包Lab VIEW SQL - Tool- kit进行数据库访问,该方法简单易用,可以节约开发时间,提高工作效率。但是这种工具包比较昂贵,无疑会提高开发成本。

2) 利用Lab VIEW用户开发的免费数据库访问工具包Lab SQL对数据库进行访问,优点是简单易用,但该工具包不具备远程数据库访问功能。

3) 利用Lab VIEW的Aetive X功能,调用Mi. emsoft ADO控件,并利用SQL语言来实现数据访问。它的优点是结构灵活,可用于网络访问,不会增加系统成本。但需要对Microsoft ADO控件以及SQL语言有较深的了解,并且要从底层开始进行复杂的编程。其次,对于分布式、跨平台的Intemet上的数据库访问,功能还不够完善。

在本监控系统设计数据库访问时,利用方式2) 对数据库进行访问。使用之前在Lab VIEW中安装Lab SQL数据库访问工具包,即在Lab VIEW安装目录下的user. lib文件夹中新建一个名为Lab SQL的文件夹,将Lab SQL - 1. 1a. rar解压到Lab SQL文件夹中即可。

数据库访问步骤: 第一步在Microsoft SQL server→企业管理器→控制台根目录→SQL server组→数据库,在此目录下建立自己的数据库( My DB) 。第二步打开控制面板→管理工具→数据源ODBC,在其中添加驱动并创建数据源名( DSN) 。第三步在数据库里面建立表,有两种方式,手动建立和通过Lab VIEW应用程序自动建立。在此采用手动建立的方式,在自命名数据库里设置表格的列名( 即表头) 数据类型、数据长度及该数据是否可以为空数据。

根据要存储的数据,在数据库中设计相应的表,如图5所示。在Lab VIEW环境下通过SQL语言对数据库中的各个表进行操作,利用Lab VIEW的报表与报表工具包,可以生成Word或者Excel文档,便于后续的数据统计和分析。

4运行结果

本发射机远程监控系统的工作和运行过程描述如下: 首先,从数据库中读取相关参数并显示; 其次,通过通信接口从本地监控系统中读取发射机运行数据并在监控主界面上显示发射机工作状态,结果如图6所示。发射机正常工作时,图标圆点为绿色并显示正常运行,当发射机出现故障时图标为红色并显示故障,当发射机停播时图标为黄色。通过监控主界面上的功能按钮,实现所对应的显示、参数调整和控制功能。

5小结

本文提出了一种基于三层C/S架构的发射机远程监控系统体系结构,并详细阐述了通过以太网实现远程监控系统与本地监控系统之间的通信,建立数据库保存并管理运行数据和日志数据,利用Lab VIEW实现远程监控系统软件的开发过程。在这种架构下,远程监控系统软件具有开放性好、可伸缩性强、灵活性高等特点,方便维护和后续业务功能增加和扩展。通过发射机远程监控系统,工作人员可以方便地进行数据查询、统计和分析,为维护提供可靠的依据。可使值班人员从以前繁重的巡机、抄表工作中解脱出来,减少设备对人员的依赖,可以实现发射台“无人值守、有人留守”,能减轻值班人员的工作强度,提高了工作效率。该远程监控系统具有实用性和灵活性强等优点,具有推广应用价值。

摘要:为了实现对发射机运行状态远程监控,提出了一种基于三层C/S架构的发射机远程监控系统体系结构,并给出了系统的总体设计方案。与传统的两层结构相比,将客户端的数据处理功能分离出来,作为中间层即系统业务逻辑层单独实现。系统采用LabVIEW进行软件开发,通过基于TCP/IP协议的以太网组网来实现与本地监控系统的通信,利用SQL Server数据库保存并管理运行数据和日志数据。通过测试表明,该系统具备良好的灵活性和可扩展性,具有较高的应用价值和推广价值。

三层C/S数据库 篇4

XML是Extensible Markup Language的缩写, 即可扩展标记语言, 是一种人们可以用来创建自己的标记的标记语言。它由万维网协会 (W3C) 创建, 用来克服HTML (即超文本标记语言 (Hypertext Markup Language) , 它是所有网页的基础) 的局限。和HTML一样, XML基于SGML (Standard Generalized Markup Language:标准通用标记语言) 。尽管SGML已在出版业中使用了数十年, 但对其理解方面的复杂性使许多本打算使用它的人望而却步。SGML也代表“听起来很棒, 但或许以后会用 (Sounds great, maybe later) ”。XML是为Web设计的。

XML实际上是Web上表示结构化信息的一种标准文本格式, 它没有复杂的语法和包罗万象的数据定义。XML同HTML一样, 都来自SGML。SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难以学习和使用。鉴于此, 人们提出了HTML语言。但近年来, 随着Web应用的不断深入, HTML在需求广泛的应用中已显得捉襟见肘, 有人建议直接使用SGML作为Web语言。但SGML太庞大了, 学用两难尚且不说, 就是全面实现SGML的浏览器也非常困难。于是Web标准化组织W3C建议使用一种精简的SGML版本———XML。XML与SGML一样, 是一个用来定义其他语言的元语言。与SGML相比, XML规范不到SGML规范的1/10, 简单易懂, 是一门既无标签集也无语法的新一代标记语言。

XML继承了SGML的许多特性, 一是可扩展性。XML允许使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要, 企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言, 甚至特定行业一起来定义该领域的特殊标记语言, 作为该领域信息共享与数据交换的基础。

二是是灵活性。HTML很难进一步发展, 就是因为它是格式、超文本和图形用户界面语义的混合, 要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式, 使得用户界面分离于结构化数据。所以, Web用户所追求的许多先进功能在XML环境下更容易实现。

三是自描述性。XML文档通常包含一个文档类型声明, 因而XML文档是自描述的。不仅人能读懂XML文档, 计算机也能处理。XML表示数据的方式真正做到了独立于应用系统, 并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。

除了上述先进特性以外, XML还具有简明性。它只有SGML约20%的复杂性, 但却具有SGML约80%的功能。XML比完整的SGML简单得多, 易学、易用并且易实现。另外, XML也吸收了人们多年来在Web上使用HTML的经验。XML支持世界上几乎所有的主要语言, 并且不同语言的文本可以在同一文档中混合使用, 应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准, 这种数据表示独立于机器平台、供应商以及编程语言。它将为网络计算注入新的活力, 并为信息技术带来新的机遇。目前, 许多大公司和开发人员已经开始使用XML, 包括B2B在内的许多优秀应用已经证实了XML将会改变今后创建应用程序的方式。

从1998年开始, XML被引入许多网络协议, 以便于为两个软件提供相互通信的标准方法。简单对象访问协议 (SOAP) 和XML-RPC规范为软件交互提供了独立于平台的方式, 从而为分布式计算环境打开了大门。几乎所有主要的软件厂商都支持SOAP。SOAP的快速成功史无前例地提高了软件的互操作潜力。当今, Web服务革命正在兴起, 而SOAP正是其基础协议。

二、XML对各个数据库的支持应用

由于XML具有标记不同字段 (field) 的能力, 使得搜索变得更简单和动态化, 从而把企业准备扔进废纸篓的文件变成了进行数据挖掘的宝藏。XML把内容从演示格式中解放出来, 使材料可以多次重复使用。同样的内容可以分别用于新闻发布、白皮书、宣传册、演示和Web页面。对那些需要把不兼容的系统融合在一起的企业, XML可以充当公共传输工具, 以中性格式进行数据传输。此外, XML还可以处理各种数据, 包括文本、图像和声音, 并且可以由用户进行扩展以处理任何特殊类型的数据。从去年以来, 三大主流数据库厂商分别以不同的形式对外宣布:支持XML。

(一) DB2与XML

IBM加强对Viper数据库XML性能的全面支持。DB2 Viper将从根本上改变数据库的游戏规则。通过将Viper置于信息构架的核心位置, 用户可以快速地从传统数据管理转换到前所未有的信息管理技术上来, 这可以使他们将信息提升为一种服务。

(二) Oracle与XML

2005年年初, Oracle发布支持XML的工具包, 并宣称与许多共享件和试用版XML组件不同, 产品版本的Oracle XDK提供XML支持 (已经过严格的企业生产环境验证, 包括Oracle SOA、Oracle JDeveloper/ADF、Oracle XML DB和Oracle XML Publisher) 。使用Oracle XDK的Oracle用户可享受24x7的正式支持。

(三) SQL Server与XML

XML (扩展标记语言) 已经成为当今最重要的因特网技术之一。XML的基于文本结构的灵活性使得它可以应用在不可置信的广阔范围的网络任务中。

三、基于XML的三层C/S模型

从网络体系结构各层次上看, 基于XML的三层C/S模型具体实现的功能概括如下:

数据层———实现数据的集成, XML数据产生于多种数据源, 但都以统一的XML格式表达传输。

功能层———实现数据的发送与处理, 应用服务器通过http交换数据, 通过dom处理XML数据。

表示层———实现数据的显示, XML数据可以有多种表现形式, 而且可以为外部直接访问、编辑或转换, 也可被其他系统所用。

在基于XML的三层C/S模型中把XML作为一种结构化信息交换的表示方法, 负责所有与数据源的通信, 根据最终用户的要求, 聚集和组织从多个远程数据库服务器上获取数据, 并用XML形式交互式地把数据源返回的消息传递给客户机。

以下是XML的三层C/S模型应用过程:

1.从数据层获取数据生成XML文档

由于XML能够使不同来源的结构化的数据很容易地结合在一起, 所以通过XML, 可以在中间层服务器上对从后端数据库和其他应用处来的数据进行集成。然后, 数据就能被发送到客户或其他服务器作进一步的集合、处理和分发。

虽然每个数据库描述数据都是不同的, 但XML可以自己定义文件标签, 例如:通过XML, 图书管理资料就可以很容易以标准的方式按照书名、作者、图书简介或其他的标准进行分类。

2.XML数据的发送与刷新

利用XML开放的、基于文本的格式, 可以将它通过http像html一样传送。同时, 中间层应用服务器将支持XML更新功能, 将数据服务器上数据的变化及时地传递给客户, 反之亦然。因此, 中间层能够从客户端得到更新的数据, 并把数据传送到数据储存服务器上。

3.XML数据在表示层的显示

XML描述的数据发到表示层后, 能够用多种方式显示。XML定义的数据, 其显示与内容是分开的, 因此允许对同一数据指定不同的显示方式, 使数据更合理地表现出来。css和xsl为数据的显示提供了公布的机制, 本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。

html描述数据的外观, 而XML描述数据本身。由于XML注重的是内容, 其显示要通过xsl (extensible stylesheet language, 可扩展样式语言) 或css来实现。xsl是为XML文件定义的一种标识语言, 它提供类似但却远远超过css的强大功能。

xsl以包含了一套元素集的XML语法规范而定义, 该语法规范将被用来把XML文件转换成html文件或XML文档。一个xsl样式表集合了一系列设计规则以用于将信息从XML文件中汲取出, 并将其转换成html等其他格式。xsl凭借其可扩展性能够控制无穷无尽的标签, 而控制每个标签的方式也是无穷尽的。这就给web提供了高级的布局特性。

4.处理和编辑XML数据

在基于XML的C/S模型中, 不但能够通过XML集合多个数据源的数据, 并把数据源数据及时传输给表示层;而且, 只要能理解XML数据, 就能从客户层处理和编辑中间层的数据, 然后通过中间层与数据层之间的数据刷新机制, 对数据层数据进行刷新。

运用XML解析器能够读入一串XML数据, 经过处理, 产生一棵结构树, 并且使用dom把所有数据元素作为对象。解析器或者用脚本把数据进行进一步的处理, 或者把数据移交给另外的应用软件或对象进行进一步的处理。

dom实际上是一个应用编程接口 (api) , 用来定义一种标准方法。通过这种方法, 能够处理XML结构树的元素。对象模式控制着使用者如何同结构树交流, 并且把所有树的元素作为对象暴露出来。dom用扩展方式支持名域、数据类型、查询和xsl转化。

5.基于XML的三层C/S模型的应用实例

下面具体介绍如何实现基于XML的三层C/S模型, 以笔者做所过的三层C/S模式的图书资料管理为例。它是基于XML表达、传输与处理的, 其详细实现如下:

(1) 获取数据生成XML文档

中间层通过XML获取数据源数据, 生成XML文档, 其中每一书目的信息包括:书名、作者、图书简介、出版日期。下面所列的就是获取数据源的一段典型例程。

(2) XML文档通过http从应用服务器传送到客户机层, 并且支持XML更新功能, 使得中间层或数据服务器上数据的变化可以传递给客户。

(3) XML数据在表示层 (客户机层) 的表达

发送到客户端的数据 (图书资料管理数据) , 可以根据用户对象及其不同的应用要求有不同的显示形式。如下所示的xsl样式表, 就是一个显示示例, 将生成一个html文档, 包括一个表格, 其中的一行就为一个“书目”元素。

(4) 编辑、处理数据的实现

只要理解了中间层XML文档的数据, 就能从任何地方处理和编辑数据 (图书资料管理数据) 。

如下例所示, loaddocument程序打开XML文档, 然后调用另一个程序displaynode, 它用来显示文档的结构。loaddocument传递给正在打开的XML文档的childnodes属性一个引用作为它的参数, 同时传递一个整数用来标示开始显示的层次级别。代码利用参数来格式化在visual basic文档结构显示窗口中的文本。

displaynode属性的函数会遍历文档寻找需要的node_text节点类型串, 一旦代码找到一个node_text的节点, 它会利用nodevalue属性来获得相应的文本串。另外, 当前节点的parentnode属性指向一个元素类型的节点。元素节点实现了一个nodename属性,

四、总结

在基于XML的三层C/S模型中, 中间层一次性从远程数据库中获取满足客户需求的信息, 生成相应的XML文档, 以后中间层就不需要再与远程数据库进行交互了, 即与远程数据库的连接也就终止了。一旦中间件软件把满足客户需要的信息组装起来以后, 就可以以XML形式发送给客户了, 这样客户与中间层也就无需进一步交互。XML的实体机制是一种节省大量时间的工具, 而且也是将多种不同型态的数据并入XML文件中的方法。在XML文件中, 你可以将经常使用的XML文字区段定义成实体, 可以快速地将XML文字加入到你需要的任何地方, 也可以将外部的档案定义成实体, 然后将档案的数据附加到文件;这些数据可以由XML本文或其他的文字或非文字数据所组成。

同时, 丰富的XML数据发送给客户端后, 客户应用和脚本语言就可以直接使用这些数据, 这时客户端与中间层服务器之间连接就可以终止了。

因此, 在C/S模型中发送给中间层的信息是简洁的、个人化的、精确的。应用服务器负责在正确的时候组装并交付正确的信息, 这将网络上的流量减小并提高了交互能力和用户的满意程度。而且, 由于中间层可以提供动态的、易访问的内容, 这些内容可以被客户方操作。而且, 无需刷新整个用户界面就可以更新页面的内容, 这样就减少了从服务器方获取客户方已有信息所需的交互时间。用户可以方便地远程管理数据, 使得网络成为一种具有更大的交互性和互操作性的媒体。

其次, 运用基于XML的三层C/S模型, XML结构化的数据可以从商业规范和表现形式中分离出来, 而且可以更详细地定义某个数据对象的数据结构, 解决了信息标准化的问题。

通过在三层C/S模型使用XML, 使得企业之间可以通过网络, 与合作伙伴间, 进行跨平台、跨操作系统的信息交换。

参考文献

[1]hiroshi maruyama, kent tamura, naohiko uramoto.XML and java developing web applications[M].addison-wesley, august1999.

[2]ed tittel, norbert mikula, ramesh chandak.XML for dum-mies[M].idg booksworldwide, inc, 1999.

三层C/S数据库 篇5

当前企业应用程序的设计思路主要有B/S模式和C/S模式。 B/S模式是一种以Web技术为基础的系统平台模式, 它主要把服务器分解成一个数据库服务器和多个Web服务器 (应用服务器) 。 而C/S模式主要是由客户应用程序、 服务器管理程序和中间件3 个部分构成。 客户应用程序主要负责用户与数据之间的交互, 服务器管理程序负责对系统资源的有效管理, 而中间件则负责客户应用程序和服务器管理程序之间的连接管理, 以保障任务命令的顺利完成, 满足用户对管理数据的查询要求。 两种模式, 各有所长。 与B/S模式相比, C S模式具有以下几大特点。

(1) 交互性强。 以C/S模式搭建的系统, 其客户端都有一套完整的应用程序。 在其运行时都能提供诸如出错提示、 在线帮助等功能, 而且还能在各个子程序之间进行功能切换。 B S模式虽然也利用Java Script等语言提供了一些交互功能, 但与C/S模式相比, 还是较为单一。

(2) 存取模式更安全。 由于C/S模式采用的是点对点的交互方式, 其采用的网络协议安全性都较高。 而B/S模式由于采用的是多点对多点等开放式的结构方式, 故一般都采用TCP IP等开放式的网络协议。 这也促使以B/S模式搭建的企业数据库就需要配备额外的安全措施来防范外界病毒木马的入侵和系统信息的安全等。

(3) 可降低网络通信量。 C/S模式搭建的系统在网络协议层中相对于B/S模式在逻辑层上的三层结构而言, 只由两层结构构成, 信息的通信量也大多仅包括Client和Server之间。 所以其网络信息量的处理需要可以大大降低。

(4) 速度更快。 因为C/S模式大多数的数据运算都在客户机上完成, 且其在逻辑结构上比B/S模式要更少一层, 所以在面对相应问题的处理时速度要更快一些。

2 C/S模式数据库的设计

关于企业数据库的设计, 美国国家标准协会下属的标准规划和要求委员会 (SPARC) 做了明确说明。 根据组织结构要求, 将数据库划分为内模式、 外模式和概念模式等3 种。这3 种模式的设计流程主要都包含了需求分析、 概念设计、逻辑设计、 物理设计和数据库实施等。 其主要设计流程如图所示。

2.1 需求分析

需求分析是整个数据库设计过程的基础, 要求收集数据库所有用户的信息内容和处理要求, 并加以规格化和分析, 确保用户目标的一致性。 这是最费时、 最复杂的一步, 但也是最重要的一步。 它就像是为一个系统的工程打下一个坚实的基础。 基础是否牢固也就决定这这项工程的主体基调与质量。 需求分析做得不好, 极有可能导致整个数据库系统设计的失败。

2.2 概念设计

概念设计主要是把用户的信息要求统一到一个整体逻辑结构中。 此结构要求能够表达用户的基本要求。 这是一个独立于任何DBMS软硬件资源的概念模型。 这一阶段的主要任务就是要定义一些具体的实体。 实体集的成员都有一些共同的特征和属性。 根据早期整理的原始材料和数据中直接或间接地标识出大部门的实体名称, 并由其表示物的术语中标示出其名词等部分代表, 从而初步找出潜在的实体, 形成实体表。

2.3 逻辑设计

逻辑设计是将上一步所得到的概念模型转换为某个DBM所支持的数据模型, 并对其进行优化。 这一部分的主要任务是建立实体表中对象的二元联系。 可根据实际的业务需求, 用实体矩阵的方式来设计实体间的逻辑二元关系, 确定关系类型等。

2.4 物理设计

物理设计是为逻辑数据模型建立一个完整的能实现的数据库结构。 包括存储结构和存取方法等。 从源数据表中抽取说明性的名词开发出属性表, 确定属性的所有者。 另外, 根据实体表中二元关系的规则等还要检查各类关系之间的属性及非空或非多值规则。 以此获得至少符合关系理论的第三范式等。

2.5 数据库实施

数据库实施阶段则是根据物理设计的结果把原始数据装入数据库, 建立一个具体的数据库并进行编写与调试相应的应用程序。 应用程序的开发目标则是要设计一个有效的可以依赖的数据库存取程序, 来满足用户的处理需求。

3 主要优化设计途径

3.1 概念

对数据库系统的概念设计主要就是通过归纳、 综合与抽象地了解用户需求后, 建立E-R模型。 其主要优化途径则需要全面了解用户的主体业务和关键需求。 尤其在应用过程中有可能出现的瓶颈和问题更是在E-R模型图的设计过程中要能得以完善解决。 此外, 除了设计系统完整需要的各个功能外, 设计中还需要注重考虑一些非功能性的需求。 如系统响应时间、 实时问题处理的优先级量化指标等。

3.2 逻辑

逻辑优化设计主要包括了命名约定、 规范化与反规范化平衡设计表结构、 合理设计主键与外键以及字段优化设计等。命名约定是逻辑优化设计中的前提。 一个企业首先应该建立一个广泛的约定规则, 以提高表明和字段名的一致性。 同时, 名字更应让人直观地起到顾名知意的作用。 若相似企业或部门之间的名称类似的话, 则应采用添加前缀等方法来避免混淆的现象出现。 平衡设计表的结构则要求所有的基本表都应满足第三范式, 即表中的每行和每列都有一个单一的值, 且每一个非键的值都仅仅只依赖于一个主键。 规范化以后的表结构则要做到消除数据冗余和数据混乱, 便于后期使用中的查找、 删除和更新等。

表中的主键则实际上代表了表中事物的唯一性。 当一个表中有多个键存在时, 我们大多要选择长度小的键做主键。因为这一类键的速度较快且树形结构层次更少。 而对于复合主键, 则更多应考虑其字段的顺序问题。 因为不同的字段顺序极有可能会影响到主键的读取性能。 所以, 优化设计时, 应选择将独立的、 重复率低的或易于查询的字段排序到前面去。

字段是数据库中最小的逻辑单元, 设计对系统性能的影响往往也较大。 所以, 在字段的优化设计中应做到多用数字型字段、 使用长度短的数据类型来避免占用较多的存储空间。还有尽量做到不用null和少用text和image等读取方法不多且慢的二进制字段。

3.3 物理

数据库系统中的数据最终都是存储在物理磁盘中。 物理优化的目的则是要让数据在物理磁盘中的存放更加趋于合理, 达到高效的利用和数据的安全。 最好能够做好将数据库管理系统文件和数据库文件分开存放, 以及充分利用分布于磁盘不同空间上的物理文件来组建一些常被访问的、 不常被访问的和最常被同时访问的等文件信息所在的表空间。

另外, 任何数据管理系统都会提供大量的如物理块、 缓冲区、 内存分配等配置参数。 这些参数对于数据库的访问速度和性能都会有一定的影响。 所以, 优化时也应根据具体的应用环境和硬件资源标准来做适当调整以实现性能的最优化。

3.4 索引

数据库中索引的主要价值就是提高数据查询的效率。 如果索引运用得当则能直接有效提高数据库的访问性能。 所以, 合理地使用索引也是企业数据库系统设计优化的一种有效方式。 虽然索引的设立可以提高数据查询的速度, 但是数据库中的索引并非越多越好。 设立过多索引, 即不利于数据库中数据的及时更新, 又要额外占用一定的磁盘空间, 同时还会增加更多的维护开销。 所以, 索引的优化应该从以下几个方面综合考虑:

(1) 如果查询字段很小或很长, 或者字段值分布严重不均的, 不要用于创建索引。

(2) 字段或者数据经常会更新的, 或者表本身就较小的也不宜建立索引。

(3) 如果某些查询可直接从索引中得到结果的则可根据创建字段原则来建立索引。

(4) 如果是以读为主或只读功能的表; 或者主键或外键上都已经建有索引且存储空间允许的表; 或者在相关属性上已建有簇集索引等的则可以考虑建立相应的目标索引等。

当然, 除了合理建立相关索引以外, 科学合理使用簇或建立索引表、 散列表等手段也能够显著提高数据库系统的查询效率。

4 结语

影响数据库系统性能的因素有很多。 想要有效提高数据库系统的设计质量, 就必须让数据库设计满足市场的需求。只有通过对市场的实时沟通来合理规划需求分析, 然后还要掌握自身企业对于系统应用的要求。 从实际出发, 遵循数据库系统的设计规则, 确立数据库设计的目标和方向, 才能从根本上设计优化出高效、 合理、 实用的数据库系统, 真正提高数据库设计的实效性。

摘要:在知识经济时代, 企业数据库的应用已成为检验企业信息现代化的一个重要标志。基于数据库系统设计以C/S模式为基本落脚点, 阐述了C/S型数据库系统的主要设计过程, 并从概念、逻辑、物理和索引等角度提出了一些合理化的优化设计途径。

关键词:数据库,设计,优化,规范化

参考文献

[1]王珊, 陈红.数据库系统原理教程[M].清华大学出版社, 2006.

[2]李武韬.数据库的非规范化方法[J].常州信息职业技术学院学报, 2004, 3.

[3]王志毅.基于信息化建设的企业数据库设计[J].商业时代, 2010, 5.

三层C/S数据库 篇6

关键词:SQL Server,C/S,数据库,VB

SQL Server 6.5作为面向中小型企业的网络数据库服务系统, 提供了与众多高级数据库管理器相同的运行性能。在程序设计方面:SQL Server 6.5采用了关键而新颖的对称式结构, 从而简化了程序设计, 并且Microsoft在它的Visual Basic可视化编程语言中为程序员提供了良好的控件;在数据库管理方面:SQL Server 6.5以一种易于管理的方式处理多服务器事务管理, 提供了一种把SQL Server系统扩展而超出单个计算机能力的方法。

SQL Server 6.5主要具有以下几个功能:

全面的数据完整性保护, 无论是复杂的事务支持和高级安全性, 还是面向用户的数据库隐式部分, 以及数据完整性保护都适用;

与Windows NT集成, 允许在SMP (对称多处理) 系统中进行彻底的多线程和对称多处理, 并且可集成到分布式管理环境中;在低造价平台上也具有突出性能;为系统管理员提供一流的管理工具;对多处理器“分布式”事务的内在支持。

以下介绍一种怎样利用Microsoft SQL Server 6.5在Windows NT Server上构筑开发环境, 完成一般的客户/服务器应用系统。

1 在

SQL SERVER 6.5上创建一个数据设备 (在创建数据库之前必须为该数据库创建一个存储设备)

(1) 从Microsoft SQL Server

6.5 Utilties程序组内打开SQL EM。

(2) 在Server Manager窗口里, 选择创建数据库的服务器。如hfnm.。

(3) 选择Manage菜单项, 然后选择Database Device选项。

出现Manage Database Device窗口。

(4) 选择New Device按钮 (第一个) 。

出现New Database Device窗口。

(5) Name:

为所要创建的设备名;Location:可以选择创建设备的地点 (如:c:database) ;Size (MB) :用于设定此设备的大小。

(6) 单击Create Now按钮, 创建此设备。

注意:请在创建数据库之前必须先创建两个存储设备, ①数据库的物理设备, ②数据库的逻辑设备[1]。

2 在SQL SERVER 6.5上创建一个数据库

(1) 从Microsoft SQL Server 6.5 Utilties程序组内打开SQL EM。

(2) 在Server Manager窗口里, 选择创建数据库的服务器。如hfnm.。

(3) 选择Manage菜单项, 然后选择Database选项。出现Manage Database窗口。

(4) 选择New Database按钮。出现New Database窗口。

(5) Name项为数据库名, Data Device为数据库物理设备名称, Size是该物理设备 为数据库分配的存储空间 (MB) ;Logic Device为数据库逻辑设备名称, Size是该逻辑设备 为数据库分配的存储空间 (MB) 。请不要复选Default Device选项。

(6) 按Create Now按钮, 正式创建数据库[2]。

3 在已有的数据库上创建数据表

(1) 从Microsoft SQL Server

6.5 Utilties程序组内打开SQL EM。

(2) 在Server Manager窗口里, 选择服务器。

单击所要创建数据表的数据库旁的加号。再单击数据库的Group/Users以及Objects组件。

(3) 单击Objects组件旁边的加号。

Server Manager将展开Objects项目, 并显示出可操作的所有数据库对象。

(4) 选择Table对象。

然后单击Manager菜单项, 并选择Tables项目。将出现Manager Table (管理表格) 窗口。

4 为数据表创建主关键字

(1) 启动Microsoft SQL Server 6.5 EM, 选择适当的服务器以及数据库。单击数据库旁的加号, Server Manager会展开数据库, 并列出所有组件。

(2) 单击Objects项目旁边的加号, Server Manager会列出可操作的数据库对象。

(3) 单击Tables文件夹旁边的加号。用右键点击相应的数据表对象, 然后从弹出式菜单里选 择Edit命令。随后屏幕上会出现Manage Tables窗口。

(4) 单击工具栏上的Advanced Features (高级特性) 按钮。随后会出现与表格有关的更详细 的信息。

(5) 在第一张卡片 (Primary Key/Identity) 里, 可设置主关键字。单击Primary Key窗框里的Column Names (列名) 组合框。会显示出未设为Nulls的一系列列名。请选择适当的列, 使其成为主关键字。

(6) 对于主关键字来说, 索引类型应定义为 (non-clustered) 。单击Add按钮, 在表格里添 加主关键字信息。

5 为表格创建群集索引

(1) 启动SQL EM, 选择相应的数据库。

(2) 从Manage菜单里选择Indexes选项。

(3) 在Table组合框里, 选择适当的数据表。在Index组合框里, 选择, 以便创建一个新索引。在里面输入新索引的名字。

(4) 在Available Columns In Table (表格内的可用列) 列表内, 选择适当的列并按下Add按钮。这样会将列名移至Columns In Index (Key) 列表框。还可选择多列。

(5) 在Index Attribute (索引属性) 窗框内, 选择Clustered (群集) 复选框。

(6) 在Clustered旁边的两个单选钮中, Allow duplicate rows表示允许重复行。

(7) 按Build按钮, 开始创建索引。

6 在SQL Server中为数据库开用户

(1) 启动Microsoft SQL Server 6.5 EM, 选择适当的服务器。

(2) 选择login目录, 单击右键, 选择New Login…, 弹出Manage Logins窗口。

(3) 在Login Name中输入用户名;在Password中输入用户密码;在数据库框中, 选择用户所要访问的数据库。

(4) 单击“ADD”按钮。重复一次密码。

7 在SQL Server中为数据库用户设置访问权限

(1) 对于新开的数据库一定要为访问它的用户提供权限, 否则这个数据库是不能被访问的。

(2) 启动Microsoft SQL Server 6.5 EM, 选择适当的服务器以及数据库。

(3) 从Object菜单中选择Object Permission菜单项, 再在弹出的对话框中列出了单击By User标签。

(4) 要想授予一个用户或用户组特定的权限, 只要从User/Group下拉式列表中选定用户或用户组, 并单击相应权限的单元格[3]。

8 客户端ODBC的设置和调试方法

(1) 对于USER DSN的设置

①在系统的“开始”菜单上选择“设置”, 单击其中的“控制面板”, 弹出控制面板框。

②双击“32bit ODBC”图标, 弹出“ODBC data source administrator”窗口, 选择“USE RDSN”页, 单击“Add…”按钮。

③在“Create New Data Source”窗口中选择“SQL SERVER”后, 单击“完成”按钮, 弹出“ODBC SQL SERVER Setup”窗口。

④在Data Source Name中输入数据源名, 如“pms”;在Description中输入描述信息 (可选) ;在Server中输入SQL SERVER服务器名, 如“hfserver”;单击Option按钮, 在Database Name中输入SQL SERVER数据库名, 如“PMS98”, 单击“OK”按钮。

(2) 对于File DSN的调试

①在系统的“开始”菜单上选择“设置”, 单击其中的“控制面板”, 弹出控制面板框。

②双击“32bit ODBC”图标, 弹出“ODBC data source administrator”窗口, 选择“Fil e DSN”页, 单击“Add…”按钮。

③在“Create New Data Source”窗口中选择“SQL SERVER”后, 单击“下一步”按钮, 在弹出的输入框中输入数据源名, 如“pms”, 单击“下一步”按钮, 在弹出的信息框中单击“完成”按钮。

④在弹出的SQL Server Login对话框中:在“Server”栏中输入SQL Server服务器名;在“Login ID”栏和“Password”栏中输入登陆SQL Server时用的用户名和用户口令;然后单击“Options》”按钮, 在Options框中的Database栏中选择所想登陆的SQL Server数据库名。然后单击“OK”按钮。

Visual Basic 6.0是Microsoft推出的一个功能强大的可视化编程工具。它凭借与ODBC良好的接口和提供给用户极其完善的网络数据库访问控件, 赢得国内外众多编程爱好者的青睐。有了Visual Basic我们可以利用它的ODBC接口在几分钟内编制一个基于SQL Server的客户机/服务器数据库应用软件。

通过上述设置, 我们可以用SQL Server和Visual Basic这两种功能强大的网络编程软件编制出各种满足需要的Client/Server数据库应用系统。

参考文献

[1]蒋文沛.SQL Server 2005实用教程[M].人民邮电出版社, 2009.6

[2]邱李华.SQL Server 2000数据库应用教程[M].人民邮电出版社, 2007.7

三层C/S数据库 篇7

与B/S模式相比, 传统的C/S模式存在功能扩展困难、软件部署和维护升级不方便等弊端, 但由于其本地数据处理能力较强、响应速度快, 仍然具有生命力。实际开发中, 很多基于C/S模式的数据库应用系统都会遇到自动在线升级的功能需求。实现该功能有多种方式, 如http、ftp下载更新, 一般需要额外在服务器端建立一个http或ftp服务器, 这对于小型C/S应用来说无疑是一种资源浪费。本文着重介绍在Delphi平台上, 利用数据库Blob字段 (大二进制类型字段, 不同数据库管理系统的表示名称可能不同) 实现软件系统自动在线升级功能的一种方法。

2 设计思路

在C/S应用的后台数据库服务器上, 创建用于软件在线升级的数据表, 其表结构如表1所示。软件版本修订后, 新的程序模块以Blob形式存储于后台数据库服务器中。同时, 将更新后的版本信息写入数据库, 便于客户端进行比对, 判断是否需要启动升级。

在客户端本地, 维护一个保存当前软件各模块版本信息的INI文件。每一次软件启动时, 首先到数据库服务器上获取最新版本号信息, 与本地INI文件中保存的版本信息进行比对。当比对结果为有新版本时, 客户端进程启动另外一个专门的升级进程update.exe, 同时立刻中止自身的运行。update.exe进程连接后台数据库, 再次根据版本信息比对结果将以Blob形式存储的软件模块读取出来, 以文件流的方式保存或覆盖本地原文件, 从而达到软件升级的目的。程序流程图如图1所示。

3 技术实现

3.1 数据库

在后台数据库上创建一个表TUpdateInfo, 以MS SQL Server为例, 表结构设计如表1所示。其中, FileName字段为该表关键字, FileBody字段即为Blob类型字段, 文件主体就存储在这里。关于Blob字段的读写方法见代码介绍。

3.2 INI文件存储客户端软件版本信息

INI文件是结构化的文本文件, 可以用通用文本编辑器进行编辑处理。其文件结构为:

;注释

[小节名]

关键字=值

...

INI文件允许有多个小节, 每个小节又允许有多个关键字, “=”后面是该关键字的值。值的类型有3种:字符串、整型数值和布尔值。其中字符串存储在INI文件中时没有引号, 布尔真值用1表示, 布尔假值用0表示。注释以分号“;”开头。

文中, 用INI文件存储客户端软件当前版本信息。下面是一个INI文件存储版本信息的示例:

;该配置文件记录软件各模块的版本信息

updateLog=1、增加了“工作计划”功能;2、增加了一周值班情况汇总打印功能;3、修正了故障处置和事项受理项目中, 前期值班未处置完毕的情况在当前值班信息中不能显示的Bug。

3.3 进程切换

客户端软件启动时, 将TUpdateInfo表中每条记录的版本号 (Version) 字段逐个与本地INI配置文件中的信息进行比对, 如果表中的版本信息有更新, 则将其对应Blob字段数据读取并覆盖本地文件。考虑到主程序模块本身直接覆盖自己会导致“当前文件正在使用”而无法完成升级的错误, 本例设计了一种进程切换运行的方式, 让主程序启动一个专门的升级程序update.exe, 自身中止运行。升级程序完成全部软件模块更新后, 再次启动主程序。通过进程切换, 避免出现当前正在运行的软件模块不能升级的麻烦。

3.4 代码实现

update升级程序的界面设计如图2, 设置好ADOConnection1和ADOQuery1控件的各个属性, 采用ADO方式访问后台数据库。

完整代码和详细说明如下:

以上为升级程序的完整代码, 编译后的程序文件update exe应与软件主程序位于同一路径下。对于软件主程序也需要进行相应处理, 主要为检测是否存在新版本和提供新版本软件模块的上传操作。

需要注意的是, 要确保DB, ShellApi, IniFiles3个单元文件的引用。

以上代码在Windows XP SP2+Delphi 7+SQL Server 2005环境下调试通过。

4 应用示例

开发的一套《技术勤务值班管理信息系统》软件中, 成功运用上述方法实现了软件自动在线升级功能。运行效果如图3, 软件启动后, 检测到有新版本, 提示用户升级。

升级成功后, 弹出如图4所示对话框, 显示软件更新日志。

该系统运行在局域网内, 共有客户端20余个, 软件维护初期根据用户需求进行了多次版本修订。通过自动在线升级功能, 基本实现客户端免维护, 减少了后期维护的工作量, 大大提高了工作效率。

5 结语

软件自动在线升级是一项非常实用的技术, 实现途径很多, 文中介绍了一种利用数据库Blob字段实现在线升级的方法, 代码实现简单, 实际运行效果良好, 对C/S系统开发人员提高软件后期维护效率具有很好的参考价值。

摘要:介绍一种在C/S模式中利用数据库Blob字段实现软件自动在线升级的方法。

上一篇:位移预测下一篇:家庭教育重于泰山