• 1.65 MB
  • 2022-04-22 11:43:17 发布

分布式数据库在学生信息管理系统结构设计

  • 19页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'分布式数据库在学生信息管理系统结构设计第一章绪论1.1课题研究的意义随着信息技术的飞速发展,社会经济结构、生产方式和消费结构已经发生了重大变化,这些变化深刻地影响着人民生活的方方面面。尤其是近十年来人们对计算机的依赖性越来越强,同时也对计算机提出了更高的要求。随着计算机网络技术的日趋成熟,传统的集中式的关系型数据库系统越来越不能满足人们处理数据的要求,因此分布式数据库系统应运而生,并且得到迅速发展。在社会各个领域,对分布式数据库系统的要求更加迫切。随着社会的发展,许多关系着国民经济发展的行业,例如水利、电力、交通、金融等行业的作用越来越重要。但是这些行业所管辖的部门或企业往往在地域上比较分散,而在行政和业务管理上,既要求各部门具有独立的局部控制、分散管理的能力,同时,又要在整个行业内实现对所有部门或所属企业进行全局控制,统一管理。这种协同管理要求各部门或企业之间的信息和数据既能灵活交流和共享,又能统一管理和使用。正是这种需求的不断扩大和要求的不断提高,促使分布式数据库不断发展,功能不断加强。分布式数据库的出现,实现了数据通过网络连接共享。分布式数据库将地理位置上分布于不同地点的数据通过网络连接起来,并通过应用统一的数据库管理系统对不同位置的数据进行统一管理,使得数据在地理位置上分布,而在逻辑上又是一个整体。随着数据库在各个行业中的不断发展,各行业也对数据库提出了更高的要求,数据量也急剧增加,对于管理这些数据的复杂度也随之增加。同时各行业部门或企业所使用的软硬件之间的差异,这给开发企业管理数据库管理软件带来了巨大的工作量,如果能够有效解决这个问题,即使用同一模块管理操作不同的数据表格,对不同的数据表格进行查询、插入、删除、修改等操作,也即对企业简单的应用实现即插即用的功能,那么就能大大地减少软件开发的维护和更新费用,缩短软件的开发周期。分布式数据库系统的开发,降低了企业开发的成本,提高了软件使用的回报率。当今社会已进入了信息时代,人们将越来越多的信息存储在网络中的计算机上。如何更有效地存储、管理、共享和提取信息,越来越引起人们的关注。集中式数据库已经不能满足人们的需求,分布式数据库走入了当今的舞台。分布式数据库系统的出现,有效地利用企业现有资源和网络资源。分布式数据库系统是一个面向地理上分布而在管理上需要不同程度集中的处理系统,主要解决在计算机网络上如何进行数据的分布和处理。由于分布式数据库有许多突出的优点,因此,分布式数据库系统可以广泛地应用于大企业,多种行业及军事国防等领域,这对建立集约型社会,加快社会主义现代化建设,将具有重要的现实意义。1.2分布式数据库技术国外发展现状分布式数据库系统(DistributedDatabasesystem,简称DDBS)已有20多年的发展历史,经历了一个从产生到发展的过程,取得了长足的进步。许多技术问题被提出并得到了解决。20世纪90年代起,DDBS19 己进入商品化应用阶段,当前,分布式数据库技术已经成熟并得到广泛应用。一些数据库厂商在不断推出和改进自己的分布式数据库产品,以适应多种需要和扩大市场的占有份额。但是,实现和建立分布式数据库系统绝对不是数据库技术与网络技术的简单结合,而是在这两种技术相互渗透和有机融合后的技术升华,它又产生了很多新的技术。而且,分布式数据库系统虽然基于集中式数据库系统,但分布式数据库系统却有它自己的特色和理论基础。由于数据的分布环境形成了很大的固有的技术难度,使得分布式数据库系统的应用被推迟。至今完全遵循分布式数据库系统规则,特别是实现完全分布透明性的商用系统还很难见到。1.3分布式数据库技术国内发展现状我国对分布式数据库系统的研究约在20世纪80年代初期开始,一些科研单位和高校先后建立和实现了几个各具特色的分布式数据库系统。如由中国科学院数学研究所设计,由该所与上海科学技术大学、华东师范大学合作实现的C.POREL,武汉大学研制的WDDBS和WOODDBS,东北大学研制的DMD/FO系统等,尤其值得一提的是华中科技大学达梦数据库多媒体研究所开发的DMZ多媒体数据库,它解决了异构数据库系统实现数据的共享和透明访问的难度。他们的工作对我国分布式数据库技术的理论研究和应用开发起到了积极的推动作用。1.4分布式数据库技术发展动向分布式数据库系统可看成是由分布在各场地的一组数据库系统(称为局部数据库系统)组成的统一的数据库系统。后者被称为全局数据库系统。局部数据库系统间耦合程度不同,或是很紧的耦合(对场地高度透明),或是很松的耦合(高度自治)。由于通用操作系统对数据库管理系统性能的限制,以及硬件价格的下降和高速网的发展,用专用数据库服务器己变得越来越合理了。专用数据库服务器的操作系统是面向数据库的,因此可以减少许多不必要的开销,可以支持大量的实时事务处理。为了提高服务器的性能,可以采用磁盘组和大规模进行处理技术多个数据库服务器联网,也可以构成分布式数据库系统。随着计算机网络技术的飞速发展和广泛应用,特别是internet的普及,使得对分布式数据库系统的研究和开发变得更加活跃。但是在实际应用时,特别是复杂情况下的效率、可用性、安全性、一致性等问题并不容易解决。internet是当前高速发展的全球性互联网络,internet应用开发的新方案几乎全部都是基于web的。web应用已经从传统的静态HTML页面,向动态的开放的方向发展。针对这样的市场需求和web平台的基本技术,各个浏览器和web服务器提供商,如Microsoft公司、Netscape公司和主流的数据库厂商,如Sybase公司、oracle公司纷纷推出web服务器和浏览器上的扩展技术,形成以web服务器厂商的扩展技术为基础,数据库厂商提供解决数据库访问的应用服务器。这样,Web应用就从传统的“客户机//R务器"两层体系结构演变为“Web服务器十应用服务器+数据库服务器”三层体系结构。用户的开发方向己经从构造单一的Client/server应用转变为集Browse/server应用、internet应用甚至数据仓库应用为一体的综合应用。从而形成Web技术与数据库技术相结合的数据库系统模型。实现和建立分布式数据库系统绝对不是数据库技术与网络技术、Web技术、计算机技术等的简单结合,而是在这些技术相互间渗透和有机结合后的技术升华。分布式数据库系统有它自己的特色和理论基础,由于数据的分布环境形成了很大的固有的技术难度,使得分布式数据库系统的应用被推迟。至今完全遵循分布式数据库系统规则,特别是实现完全分布透明性的商用系统还很难见到。因此,在很长一段时间分布式数据库都有很大的发展空间。19 第二章分布式数据库理论2.1分布式数据库理论2.1.1分布式数据库系统的有关概念分布式数据库系统使用计算机网络将地理位置分散而在管理和控制又需要不同程度集中的多个逻辑单位(通常是集中式数据库系统)联结起来,共同组成一个统一的数据库系统。因此,分布式数据库系统可以看成是:计算机网络与数据库系统的有机结合。在分布式数据库系统中,被计算机网络联结的每个逻辑单位,称为站点(site)或节点(Node)。所谓地理位置上分散是指各个站点分散在不同的地方,大可为不同的国家,小可为同一建筑中的不同位置。所谓逻辑上集中是指各个站点之间不是互不相关的,它们是一个逻辑整体,并由一个统一的数据库管理系统进行管理这个数据库管理系统称为分布式数据库管理系(DistributedDatabaseManagementSystem,简称DDBMS)。一个用户如果只访问他注册的那个站点上的数据称为本地(或局部)用户或本地应用;如果访问涉及两个或两个以上的站点中的数据,称为全局用户或全局应用。分布式数据库系统中有全局数据库(GDB)和局部数据库(LDB)的概念。全局数据库由全局数据库管理系统进行管理,所谓全局是从整个系统角度出发研究问题。局部数据库由局部数据库管理系统(LDBMS)进行管理,所谓局部是从各个站点的角度出发研究问题。2.1.2分布式数据库系统的特点1.物理分布性:分布式数据库系统中的数据不是存储在一个站点上,而是分散存储在由计算机网络联结起来的多个站点上。2.逻辑整体性:分布式数据库系统中的数据物理上是分散在各个站点中的,但这些分散的数据逻辑上却是一个整体,它们被分布式数据库系统的所有用户(全局用户)共享,并由一个分布式数据库管理系统统一管理。3.站点自治性:站点自治性也称场地自治性,各站点上的数据由本地DBMS(databaseManagementSystem:数据库管理系统)管理,具有自治处理能力,完成本站点的应用(局部应用)。4.数据独立性:分布式数据库系统中,数据独立性不但指数据的逻辑独立性与物理独立性,还包括数据分布独立性亦称分布透明性。分布透明性使用户不必关心数据的逻辑分片,不必关心数据是否被复制及复制副本的个数(冗余数据)19 ,也不必关心数据物理及其片段位置的分布细节,同时也不关心局部场地上数据库支持哪种数据模型。1.集中与自治相结合的控制机制:在分布式数据库系统中,数据的共享有两个层次:一是局部共享,即同一站点上的用户可共享本站点上局部数据库中的数据,以完成局部应用;二是全局共享,即分布式数据库系统上的用户都可共享在分布式数据库系统的各个站点上存储的数据,以完成全局应用。因而,分布式数据库系统常常采用集中和自治相结合的控制机制。各局部的DBMS可以分散地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局管理功能。2.适当增加数据冗余性:在集中式数据库系统中,尽量减少冗余是系统的目标之一。其原因是,冗余数据不仅浪费存储空间,而且容易造成各数据副本之间的不一致性,为了保证数据的一致性,系统要付出一定的维护代价。而在分布式数据库系统中却通过冗余数据提高系统的可靠性、可用性和改善系统性能,因为当某一个站点出现故障时,系统可以对另一站点上的相同副本进行操作,不会因某一处故障而造成整个系统的瘫痪。另外,系统可以选择用户最近的数据副本进行操作,减少通信代价,改善整个系统的性能。3.事务管理的分布性:数据的分布性必然造成事务执行和管理的分布性。2.1.3分布式数据库数据分片数据分片(DataFragmentation)也称数据分割,是分布式数据库的特征之一。在一个分布式数据库中,全局数据库是各个站点上局部数据库的逻辑整体,而各个局部数据库中的数据是由全局数据库的某种逻辑分割而来。这样减少网络通信量,从而提高效率。数据分片有三种基本方法,分别如下:1>水平分片:按特定条件把全局关系的所有元组分成若干个互不相交的子集,每一个子集为全局关系的一个逻辑片断,简称为片段。它们通过对全局关系施加选择运算得到,并可通过对这些片段的合并操作来恢复该全局关系。2>垂直分片:将全局关系(表或视图)的属性集(字段集)中的若干属性作投影运算,即得到全局关系的一个垂直分片。要求全局关系的每一个属性至少映射到一个垂直片段中,且每一个垂直分段都包含该全局关系的键。这样可以通过对这些片段执行连接操作来恢复该全局关系。3>混合分片:水平分片和垂直分片的混合。无论哪种分片方法都必须满足数据完备性的要求,即必须遵守以下几条准则:完备性:全局关系的所有数据都要分配到相应的分片中,否则会丢失数据。不相交性:在各水平分片的关系子集中不能出现相同元组。可重构性:由全局关系分割得到的分片能通过关系运算还原成全局关系。2.1.4分布式数据库数据分布数据分布(DataDistribution)是指分布式数据库中的数据不是存储在一个站点的计算机存储设备上,而是根据需要将数据划分成逻辑片段,按某种策略将这些片段分散地存储在各个站点上。数据分布的策略有:l>分割式:所有数据只有一个备份,它被分割成若干个逻辑片段,每个逻辑片段被指派在某个特定的站点上。这种分布策略可充分利用各个站点上的存储设备,数据的存储量大。在存放数据的各个站点上可自治的检索和修改数据,发挥系统的并发操作能力。同时,由于数据是分布在多个站点上,当某部分站点出现故障时,系统仍能运行,提高了系统的可靠性。对于全局查询和修改,所需的时间会长一些,因为数据不在同一场地上,需要进行通讯。2>19 复制式:全局数据有多个副本,每个站点上都有一个完整的数据副本。采用这种策略的系统可靠性高,响应速度快,数据库的恢复比较容易,可从任意场地得到数据副本。但是要保持各个站点上数据的同步修改,将要付出高昂的代价。另外,整个系统的冗余很大,系统的数据容量也只是一个站点上数据库的容量。3>混合式:全部数据被分为若干个子集,每个子集安置在不同的站点上,但任意站点都没有保存全部的数据,根据数据的重要性决定各个子集的副本的多少,这种分布策略,兼顾分割式和复制式的做法,也获得了二者的优点,它灵活性好,能提高系统的效率,但同时也包括T-者的复杂性。2.1.5数据分布设计策略数据分布的方式有许多种,一般来说,可按整个数据库是集中存放在一个场地还是分割开来散布到多个场地以及是否有数据副本存在等情况,可组合成四种数据分布方式,它们是:l>集中式。即整个数据库存放在一个场地上,且没有数据副本存在。严格说来,这不能算作是分布式数据库,因为数据库集中存放在一个场地上,其它场地都从该场地获得数据。存放数据库的那个场地相当于一个数据库服务器,其它场地相当于该数据库服务器的远程终端,它们对数据库的访问是通过远程登录访问来实现的。因此这种方案属于客户/服务器结构的集中式数据库。集中式最主要的优点是简单,容易实现,所有的存取操作都在单一场地进行,这样数据一致性维护和并发控制都比较容易实现。但这种策略有很多缺点,首先数据库的可能大小受限于中心场地的硬盘空间可用性的大小。其次,所有操作都在中心场地执行,其它场地都要通过网络访问中心场地,因此都有通信代价与时间延迟,系统的并行处理也受限于中心场地的处理能力与速度,进而中心场地就会成为“瓶颈”,这就进一步限制了系统的反应速度,而且中心场地也容易崩溃,系统的有效性与可用性不高。例如,如通信系统失效,则数据库对任何远程场地都无效:而当中心场地出现故障时,则整个数据库系统失效。2>重复式。即有多个数据库副本存在,每个场地上都有一个完全的数据副本存在。这种方式的可用性、健壮性及效率相当高。这种可靠性高不仅体现在当一个或多个场地发生故障时数据库仍能有效运转,而且还表现在很容易恢复一个破坏了的数据库副本,这只需简单的从另一个正常场地完全拷贝一个数据库即可。由于每个场地都有一个完全的数据库副本,用户的请求大都可以在本场地完成,这有助于提高响应速度,减少通信代价,使通信分布比较均匀。在只有读操作时,由于不需要维护数据一致性,因此不需要场地间的同步通信,系统的可用性是很高的。但是系统需要花费相当大的开销去维护数据库的一致性和运行并发控制。由于一致性和并法控制的复杂性,这种策略不适合单请求并行处理,但在各个场地,不同请求可以异步的处理。如何保持数据的一致性,依系统的不同而差别很大,而且所承受的开销取决于所提供的数据的一致性的级别。当网络的一部分由于某种原因而失效时,需要限制修改操作的执行以维护数据的一致性。因为,若允许两个修改操作在不能实现同步的情况各自在不同的场地进行,则当系统恢复正常以后,可能出现数据的不一致性。另外,如同集中式策略一样,数据库的大小受限于每个场地上硬盘空间可用性的大小。一般来说,这种策略比较适合于要求可靠性高、数据库小、修改频率低的场合。3>19 分割式。全局逻辑数据库被分割成许多片段,并且被分配到各个场地上,但这些片段只有一个拷贝。在对数据进行分割时,需要尽量按应用的要求进行分割,一般来说,应以减少表间的联系为目的。同样进行数据分割时,也应尽量将某一个场地经常存取的数据存放在相应的场地,这样可以减少网络开销。分割式策略与集中式策略相比有几个明显的优点。一是数据库的大小只受限于网络上作为整个可用的硬盘空间的大小,而不受限于某一场地的可用硬盘空间的大小。其二是检索与更新均指向各自所要求的所在场地,而非指向一个中心场地,数据库存取的局部性比例较大,所以通信代价较低。但另一方面,可能有一个请求需要存取多个场地甚至全部场地的数据,这时由于需要访问相关场地上的片段,这时网络开销可能比集中式更高,但若设计时分割标准合适且配合妥当的分布原则,则出现这种情况应该是不多见的。若分布式数据库管理系统支持并行处理,则可进行并行处理,故响应速度比集中式要快。通信负载较均匀地分布于整个网络,所以任何场地都对通信瓶颈口不敏感。数据库的有效性与可靠性也比集中式要高,因为若部分或全部通信失效,或者一个或几个场地发生故障,不会导致整个系统完全失效,至少数据库部分可用。这种方案的性能、有效性和可靠性与数据库访问的局部性相关,若一个存取操作几乎在一个场地进行,则说数据库访问的局部性高,否则就低。而数据库访问的局部性跟设计时数据分布有关。如果设计时分片,可能造成每一个请求都要存取多个场地,则其性能、有效性和可靠性会比集中式更低,因为多个场地出故障的概率要比单独某一个场地出故障的概率要大,这样只要有一个场地出故障,这个请求就不能执行。一般说来,分割策略比较适合各场地硬盘空间有限、可靠性要求较高、或应用的数据存取有一定的“分割性”,即能实现高的存取局部化程度的情况。4>组合式。它是分割与重复的组合,每一场地可以有数据库的任何一部分。这种策略兼有分割与重复式的一些特点。它的主要的优点是灵活。分割与分布的策略及各片段重复的个数需要在各因素之间权衡,局部辅存与整体辅存之间、可靠性与可用性、提高效率的方法及通信代价、同步与控制代价等要综合折中权衡。例如,重复可以提高存取的局部性,从而降低通信量,提高可靠性与可用性;同时可以使并行处理可能性高,故可缩短响应时间。分割时,,可使常用的关键性数据重复分布于所需的场地,不常用的数据可只存储一次,这样可降低存储量。这种方式要着力解决的问题是通信与数据一致性维护,同时通信瓶颈仍然可能存在。这种方式最灵活,同时实现起来也是最复杂的,因为影响系统性能、可靠性、存取需求等的各种因素是彼此相关的,很难将其分割开来考虑。此外,分布式数据库管理系统所支持的各种机构,数据库的使用方式等也是施加影响的因素。总之,采用这种方式必须全面考虑各种因素,并进行权衡。19 第三章系统总体设计本系统是为了实现学生信息化管理而编写的。其中包括了学生信息日常工作中的各项操作。本系统的项目名称为:学生信息管理系统V1.03.1系统功能设计主要功能模块:1学生信息处理实现对学生信息的录入、修改、添加、删除2信息浏览处理实现对学生基本信息的浏览查看3数据查询处理实现对学生信息的查询4数据汇总处理实现对学生信息的分类汇总5数据备份处理实现对学生信息的备份和导出3.2系统结构设计登录窗口win11主窗口win1数据编辑数据浏览数据查询数据汇总数据备份帮助系统help3.3系统概念设计1学生信息处理实现对学生信息的录入、修改、添加、删除19 2信息浏览处理实现对学生基本信息的浏览查看3数据查询处理实现对学生信息的查询4数据汇总处理实现对学生信息的分类汇总5数据备份处理实现对学生信息的备份和导出4.4系统逻辑设计1学生表sxTable(学生编号,学生姓名,学生生日,学生性别,民族,家庭住址,电话,政治面貌,简介)2成绩表cjTable(学期编号,课程名称,分数)3课程表kcTable(课程名称,分数,授课老师)4.5系统物理设计(表设计)表设计(1)学生信息表(xsTable)字段名数据类型是否可为空主键备注xsIDInt(4)NOTNULLIS学生编号xsNameChar(20)NOTNULL学生姓名BrithdayDateNULL生日xsSexChar(2)NOTNULL学生性别xsMzChar(20)NOTNULL民族HomeChar(50)NULL家庭住址TelChar(20)NULL电话ZzmmChar(10)NOTNULL政治面貌ResumeChar(50)NULL简介(2)学生成绩表(cjTable)字段名数据类型是否可为空主键备注xqIDChar(10)NOTNULLIS学期编号kcNameChar(20)NOTNULL课程名称ScoreInt(3)NOTNULL课程分数(3)学生课程表(kcTable)字段名数据类型是否可为空主键备注kcNameChar(20)NOTNULL课程名称ScoreInt(3)NOTNULL课程分数TeacherChar(20)NOTNULL授课老师六、数据库设计19 1.分布式数据库定义传统的数据库管理模式是将所有数据集中于单个数据库中,用户通过各种数据库工具,来实现数据库的维护和使用。但是这种模型对于数据量巨大时,已经无法满足用户的需求;同时,当出现一些人为何自然灾害等对数据造成破坏时,数据的安全性将无法得到保护,甚至出现丢失。针对以上问题,分布式的概念被提出来:是物理上分散而逻辑上集中地数据库系统。分布式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位连接起来,共同组成一个统一的数据库系统。2.分布式数据库管理系统分布式数据库管理系统和集中式数据库管理系统一样,是对数据库进行管理和维和的一组软件,是分布式数据库系统的重要组成部分,是用户与分布式数据库的接口。分布式数据库管理系统包括三个组成部分:全局数据库管理系统(GDBMS)、局部数据库管理系统(LDBMS)和通讯管理程序(CM)。它能支持四个基本功能:应用程序的远程数据库操作(包括查询和更新操作)、支持分布式数据库系统的完全的或部分的透明性、对分布式数据库(包括全局数据库和局部数据库)的管理和控制以及支持分布式事务的并发和恢复。图1分布式数据库系统体系结构本学生管理系统采用的分布式管理系统为SQL-SERVER2000,稍后集中介绍其分布式模型及实现。19 3.数据分片与分配在实施分布式数据库系统时,必须考虑如何将数据分布在系统的各个场地(站点)上,也就是说怎样将数据进行分片,在进行分片后又怎样将它们进行分配。分片是对整个数据库中的数据来说的,而分配时分布式数据库在物理位置上的存储。分片操作包括水平分片、垂直分片、混合分片及诱导分片四种。在本学生管理系统中,根据学生性别将所有学生分成两部分,分别位于数据库A与数据库B(在两台不同的环境上)。4.SQL-SERVER复制模型SQL—Sever2000是管理数据库的工具,它的功能强大,内容丰富。同样它也支持分布式数据库的运行。它采用的是复制一订阅的模型来管理分布式数据库。这个模型的机制模拟了出版社的工作方式,即将所需的数据出版出来后由需要的用户进行订阅从而组成分布式的数据库。该模型由下列对象组成:发布服务器、分发服务器、订阅服务器、发布、项目和订阅。发布服务器是提供数据以便复制到其它服务器的服务器。它用于保持源数据库,从中制作出出版数据,并将这些数据传送到分发服务器中。同出版社方式比较,发布服务器相当于出版社中的出版商角色,主要出版数据。分发服务器是作为分发数据库宿主并存储历史数据和事务以及元数据的服务器,是发布服务器和订阅服务器中间的桥梁。它相当于是出版社工作方式中的分销商。订阅服务器是接收复制数据的服务器,订阅服务器通过订阅发布服务器的发布来获取数据。发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一组数据和数据库对象以一起复制变得更容易。项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图或用户定义函数。订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持强制订阅和请求订阅的混合。19 图2:SQL-SERVER分布式模型在所做学生管理系统中,我们选一台SERVER20003系统的电脑作为发布服务器和分发服务器,两台XP系统作为订阅服务器A与B,分别订阅男女学生信息,实现分片。19 第四章系统实现4.1PowerBuilder开发工具简介PowerBuilder是目前开发Client/Server结构的应用系统的主要工具之一。PowerBuilder9.0在继承与发展以前版本优秀功能的基础上,为适应网络应用程序的开发要求集成了EnterpriseApplicationStudio中PowerBuilder以及PowerSite的功能,在传统数据库开发的基础上,将Web应用更好地集成到PowerBuilder中。PowerBuilder全面支持面向对象编程。是功能强大并易于使用的第4代编程语言(4GL),它内置了包括数据窗口在内的多种对象类,可以方便地访问数据库。相对于其他应用工具,PowerBuilder具有工作效率高、成本低、质量高、功能强的特点。4.2Powerbuilder9应用程序开发的基本步骤我们要开发应用程序时,首先要对它进行分析。无论哪种、哪方面的应用程序,都要先建立一个应用对象。下面我们介绍以下PowerBuilder9应用程序开发的基本步骤:(1)首先要建立应用对象。(2)创建窗口。在窗口里放置各种控件和编写事件响应的脚本。(3)创建菜单。窗口里的菜单可包括菜单条,下拉式菜单,级联菜单和弹出式菜单为菜单编写事件响应的脚本。(4)创建用户对象。如果想要重复使用某个控件的功能,可以把窗口上经常放置的控件定义为用户对象。(5)创建数据窗口。数据窗口可以检索数据库中的数据,可以建立各种报或统计表,可以修改数据库。(6)创建函数、结构、事件。为了能够更好地支持脚本,编写自定义的函数,定义结构类型变量,也可以为对象和控件定义自己的事件。(7)运行与调试。可以在开发环境中随时运行应用程序,发现错误后,可以用调试工具进行调试。(8)当应用程序开发完毕后,可以把它编译成可执行的文件,让用户比较容易地建立应用系统的运行环境。4.3编码规范为了减少在软件开发过程中的错误,在软件开发过程中应该遵守一定的标准。给对象命名要有一定的规范,部件名称可以达到40个字符,窗口的命名:W_功能代码_功能描述。数据窗口的命名:DW_功能代码_功能描述。菜单命名:M_功能代码_功能描述。标识符命名时,应该使标识符有一定的字面含义,有助于程序的调试和脚本的可读性的提高。本系统中使用的命名规范为:变量作用域+变量类型+”_”+具有一定字面含义的名称。例如:li_selectrow反映出的含义:”l”代表是本地变量,是local的缩写,”i”代表是integer类型的变量,selectrow表示该变量是用来记录一个行号的计数器。4.4应用程序对象App_mapbex19 功能介绍:PB程序由一个应用程序开始,即每个PB程序在开始运行时,先执行应用程序对象的Open事件。在Open事件中连接数据库,并打开登陆窗口win11。代码分析://Profilexxb_sqlSQLCA.DBMS="MSSMicrosoftSQLServer"SQLCA.Database="xxb1"SQLCA.LogPass=<***>SQLCA.ServerName="."SQLCA.LogId="sa"SQLCA.AutoCommit=FalseSQLCA.DBParm=""connectusingsqlca;open(win11)4.5具体窗口的实现(1)登录窗口win11功能介绍:本窗口主要是检查操作员输入的用户名及密码是否正确,如果正确,允许登录。如果错误,显示出错误提示。操作方法:填写“用户名”与“密码”后,按钮进行验证,点击“退出”退出。代码分析:strings1,s2selectb2.yhm,b2.mm19 into:s1,:s2fromb2whereb2.yhm=:sle_1.text;ifsqlca.sqlcode=100thenmessagebox("提示信息","用户不存在,请重新登录!")sle_1.text=""sle_2.text=""elseifs2<>sle_2.textthenmessagebox("提示信息","密码不正确,请重新登录!")sle_2.text=""elseopen(win1)close(win11)endif(2)主窗口w_main功能介绍:本窗口作为菜单及其他子窗口的父窗口。窗口设置;本窗口为父窗口,它的WindowType为main!,WindowState为maximized!,表示窗口在运行时是最大化的风格。(3)菜单dwin1功能介绍:打开各功能窗口操作方法:点击菜单项相应的菜单,状态栏可显示帮助信息。代码分析:每个相应的菜单项的clicked事件都使用opens方法来打开相应的功能窗口,如“学生添加”的菜单项下的clicked事件的处理代码为:19 open(w_stu)具体的功能由相应的窗口内功能按钮的clicked()方法实现。(4)学生添加窗口w_stu功能介绍:增加学生基本信息。操作方法:添加学生基本信息:点击“确定”按钮,添加学生信息。代码分析:longll_id,ll_idateld_birthdaystringls_name,ls_nation,ls_sex,ls_home,ls_tel,ls_party//数据格式检验ifsle_id.text=""ORisNull(sle_id.text)thenmessagebox("缺少数据","请输入学号")sle_id.setfocus()returnelseifsle_name.text=""ORisNull(sle_name.text)thenmessagebox("缺少数据","请输入学生姓名")sle_name.setfocus()returnendififsle_birthday.text<>""ANDnotisNull(sle_birthday)thenifisDate(sle_birthday.text)thenld_birthday=date(sle_birthday.text)elsemessagebox("输入数据错误","请使用“年-月-日”的日期格式")19 sle_birthday.setfocus()returnendifendifll_id=long(sle_id.text)//取出党团员选择ifrb_1.checked=truethenls_party=rb_1.textelseifrb_2.checked=truethenls_party=rb_2.textelsels_party=rb_3.textendif//取出性别选择ifrb_man.checked=truethenls_sex=rb_man.textelseifrb_woman.checked=truethenls_sex=rb_woman.textendif//由民族ddlb,取出民族选择ifddlb_nation.text="none"thenls_nation=""elsels_nation=trim(ddlb_nation.text)endif//检查学号有无重号SELECTstudent.stud_idINTO:ll_iFROMstudentWHEREstudent.stud_id=:ll_id;ifll_i<>0thenmessagebox("错误信息","学号第"+string(ll_i)+"号重号!请改正。")sle_id.setfocus()returnendifls_name=trim(sle_name.text)ls_home=trim(sle_home.text)ls_tel=trim(sle_tel.text)//向数据库写入数据INSERTINTO"student"("stud_id","name","birthday","sex","nation","home","tel","party",19 "resume")VALUES(:ll_id,:ls_name,:ld_birthday,:ls_sex,:ls_nation,:ls_home,:ls_tel,:ls_party,:mle_resume.text);//数据写入数据库后,将输入控件全部置空sle_id.text=""sle_name.text=""sle_birthday.text=""mle_resume.text=""sle_home.text=""sle_tel.text=""sle_id.setfocus()//将光标放到"学号"输入栏查询窗口:功能介绍:按条件进行相关查询操作方法:根据输入的相关查询条件,然后点击“添加”“显示”按钮。代码分析:stringstr=""ifddlb_3.text<>""andddlb_2.text<>""andsle_1.text<>""thenifddlb_1.text<>""thenstr=ddlb_1.text+""endif19 ifddlb_2.text="班级"thenstr=str+"bj"elseifddlb_2.text="性别"thenstr=str+"sex"elseifddlb_2.text="民族"thenstr=str+"nation"elseifddlb_2.text="政治面貌"thenstr=str+"party"elseifddlb_2.text="家庭地址"thenstr=str+"home"endififddlb_3.text="等于"thenstr=str+"=""+sle_1.text+"""elseifddlb_3.text="不等于"thenstr=str+"<>""+sle_1.text+"""elseifddlb_3.text="类似于"thenstr=str+"like"%"+sle_1.text+"%""endiflb_1.additem(str)endif(5)系统有关界面功能介绍:用来介绍系统的制作人,以及版权情况。19 第五章课程设计总结通过***的课程,加上我们的努力,不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我们的专业水平也有了一定的进步。因为时间仓促,该管理系统还存在不少的缺点和漏洞,敬请老师批评指正,非常感谢!第六章参考文献[1].吕晓辉.PowerBuilder9.0全方位教程,航空工业出版社2003[2].何旭洪傅立宏PowerBuilder9.0信息管理系统开发人民邮电出版社2005[3].邵佩英分布式数据库系统及其应用科学出版社19'