WEB数据库异地并行设计_第1页
WEB数据库异地并行设计_第2页
WEB数据库异地并行设计_第3页
WEB数据库异地并行设计_第4页
WEB数据库异地并行设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、异地并行设计中WEB数据库设计 近年来,随着Web技术的蓬勃进展,人们已不满足于只在扫瞄器上猎取静态的信息,想要通过它发表意见、查询数据。随着电子商务的普及人们开始参与一些网络商务活动,这就迫切需要实现Web与数据库的互连1。产品异地并行设计对数据的要求有一定的专门性,要紧有(1)产品数据多种多样。产品设计,特不是机械产品设计常常是大型而又复杂,在异地通过不同的设计小组,按不同的分工设计同一产品,所要治理和通讯的数据类型随着分工的不同而有不同的表现形式,如常规的数字组成的数据集,以图形、图象形式表达的产品模型数据,以文字形式描述设计的文档,还有图表、公式等形式,复杂多样。(2)产品数据交换频繁

2、,流量大。产品设计是一个协同工作的制造性集体智慧凝聚的过程,要使设计顺利进行,分布在异地的不同设计小组之间就要经常性地进行数据交换,同时有些形式表达的产品数据是较大的文件。(3)产品数据的一致性要求高。分工合作的不同设计小组之间的设计任务是彼此关联,互相依靠的。假如其中一个数据改变了,相关联的数据必须跟着改变,在Web数据库设计时必须考虑数据的一致性问题。(4)产品数据的并发性访问频繁。由于异地产品设计的专门属性,数据的并发性访问特不频繁。因此,进行基于Internet的产品异地并行设计的Web数据库设计与一般的电子商务不同,要充分考虑以上属性。本文结合我们近期开发的机械产品异地并行设计系统(

3、RCDS, Remote Concurrent Design System),综合比较了多种当今流行的网络数据存取技术,设计出可靠安全的数据库系统。 1 Web数据库连接方案 1.1数据库连接方案选择RDO、DAO和ADO是比较常见的Web数据库访问技术。 DAO (Data Access Objects) 数据访问对象是第一个面向对象的接口,它含有 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并同意 Visual Basic 开发者通过 ODBC 象连接到其他数据库一样,直接访问到 Access 表。DAO 最适用于单系统应用程序或小范围本地分布使

4、用,对大范围的异地并行设计显得功能不够强大。 RDO (Remote Data Objects) 远程数据对象是一个到 ODBC 的、面向对象的数据访问接口,它同易于使用的 DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。RDO 在访问 Jet 或 ISAM 数据库方面有一定的限制,而且它只能通过现存的 ODBC 驱动程序来访问关系数据库。然而,RDO 已被证明是许多 SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。RDO 提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。对异地并行设计We

5、b数据库来讲也不是十分理想。 ADO(ActiveX Data Objects)为ActiveX组件中数据库访问组件,ASP确实是通过它实现对数据库的访问。ADO 是 DAO、RDO 的后继产物。ADO 2.0在功能上与 RDO 更相似,而且一般来讲,在这两种模型之间有一种相似的映射关系。ADO “扩展”了 DAO 和 RDO 所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。例如,ADO 没有与 rdoEngine 和 rdoEnvironment 对象相等同的对象,能够包含 ODBC 驱动程序治理器和 hEnv 接口。尽管事实上接口可能是通过 ODBC OL

6、E DB 服务提供程序实现的,但目前也不能从 ADO 中创建 ODBC 数据源。ADO 是为 Microsoft最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO 在关键的 Internet 方案中使用最少的网络流量,同时在前端和数据源之间使用最少的层数,所有这些差不多上为了提供轻量、高性能的接口。同时 ADO 使用了与 DAO和 RDO相似的约定和特性,简化的语义使它更易于学习。 ADO最早是在IIS中引入的,要紧用于AS

7、P,用ADO能够使服务器端的脚本通过ODBC存取和操纵数据库服务器的数据。使用ADO的对象能够建立和治理数据库的连接,从数据库服务器请求和猎取数据,执行更新、删除、添加数据、猎取ODBC的错误信息等。ADO是ASP方案中最具吸引力的数据库连接控件,它为用户提供了连接任何兼容ODBC的数据库以及创建全功能数据库应用程序的能力。 ADO具有简单易用、高速、占用资源少等的优点。不同于DAO和RDO,ADO有着更高的执行效率。ADO 对象模型如图1a所示。每个 Connection、Command、Recordset 和 Field 对象都有 Properties 集合,如图1b所示。 a) b) 图

8、1 ADO对象模型及属性 应该讲,ADO是微软的下一代数据库连接技术,用来全面取代RDO和DAO的数据访问工具。从进展趋势来看,ADO今后将逐步替代老的DAO特不是RDO数据访问接口,成为新的远程数据访问方法。因此,选择ADO作为产品异地并行设计的Web数据库接口技术是合适的。 1.2 ADO应用分析 ADO 并不是自动和现存的数据访问应用程序代码兼容的。当 ADO 封装 DAO 和 RDO 的功能性的时候,必须将许多语言要素转换为 ADO 语法。在某些情况下,这将意味着要对现存代码的某些功能做一个简单转换。在其他情况下,最佳的做法可能是用 ADO 的新功能重写该应用程序。 包含在 DAO 和

9、 RDO 模型中的许多功能被合并为单个对象,如此就生成了一个简单得多的对象模型。然而,由于那个缘故,起初可能会觉得找到合适的 ADO 对象、集合、属性、方法,或事件特不困难。与 DAO 和 RDO不同的是,尽管 ADO 对象是分层结构的,但在分层结构范围之外也是能够创建的。同时,也应当注意,ADO 当前并不支持 DAO 的所有功能。ADO 要紧包括 RDO 风格的功能性,以便和 OLE DB 数据源交互,另外还包括远程和 DHTML 技术。 一般讲来,在 ADO 的演化过程中,立即把大多数 DAO 应用程序(except possibly是那些使用 ODBCDirect 的应用程序)移植到 A

10、DO 上为时太早,因为当前的 ADO 并不支持数据定义 (DDL)、用户、组等等。只是,假如只将 DAO 用于客户服务器应用程序,并不依靠于 Jet 数据库引擎或不使用 DDL,那么就可能移植到 ADO。最终,Microsoft 将提供一个 ADO DDL 组件来关心进行 DAO 到 ADO 的移植,并为 OLE DB 供应商提供一般的 DDL 支持。 在ASP中使用ADO技术来访问Web数据库,其应用前景是无可估量的。原理图如下: 图2 ADO在ASP程序中的应用 2 Web数据库治理系统 常见的数据库类型有面向对象的数据库(OODB)和关系型数据库。OODB对主流数据库应用开发来讲是相当新

11、颖的,使用OODB使应用程序中的数据对象与现实世界中的对象一一对应,面向对象数据库扩充了对象模型。一个常用的对象模型是由对象数据库治理组(ODMG)开发出来,具有比传统的关系数据库更优越的性能,但怎么讲在目前依旧一种探究时期,临时还未有相应的技术普及。 关系数据库差不多是数据库体系的世界标准。当开发一个数据驱动应用程序时,大多数情况下用户需要访问网络(如Internet、Intranet等)上的数据信息,就RCDS确实是建立在网络的信息通讯之上,是完全的客户机/服务器应用程序。 SQL Server是一个可缩放、高性能的关系型数据库治理系统(RDBMS),它的设计是为了满足分布式客户/服务器计

12、算的需要,同意客户应用程序使用几个特定的工具和技术操纵从服务器检索的数据。这些包括触发器、存储过程和规则的选项。因此,系统采纳MS SQL Server7.0作为后台数据库。 3 Web数据库结构 数据模型通常有层次模型、网状模型、关系模型及OO(面向对象)模型等。其中关系模型是建立在数学概念基础之上的一种模型,由若干个关系框架组成的集合,它也是到目前为止最为成熟的一种数据库类型。本文RCDS采纳MS SQL Server作为后台数据库,依照数据库工具和数据库特点,开发出一套可靠健壮的数据存储方案。 整个数据库共有AdminData、ChatNames、DesignUnits、Message、

13、OnlineUnits、Products、RqtTasks、RqtTaskUnits、RqtDesignUnits、ShareData、Tasks、TaskUnits和UploadFiles等表格。在建立数据模型的时候首先考虑是要幸免重复数据,也确实是建立规范化数据库。规范化数据库能够通过被称为范式水平的指标来衡量,级不有第一范式、第二范式和第三范式,通常第三范式确实是要达到的目标,因为它提供了数据冗余和开发简易性之间的最好折衷。 RCDS数据库正是按照第三范式标准来设计的,它保证了模型的精简和表格的紧凑性。而第三范式标准也最大发挥了关系数据库的优势,图3是部分表格的视图链接情况。 图3 关系

14、表格视图 4.1 并发操纵的处理 在多个用户同时访问一个数据库时就产生并发问题,特不是在其中一些用户对数据库有添加或删除修改等操作时,那么其他所获得的数据可能是一塌糊涂,甚至造成整个数据访问的冲突、终止,从而使系统发生混乱以至崩溃。RCDS采纳的解决方法是锁定技术,总体上分为共享锁定和排它锁定两种类型(如图4)。前者是指同时有几个过程共享一个锁定,比如一个用户(或客户)正在读取一个数据,尽管在这之前他差不多对该数据设置了锁(LOCK),但其他用户同样能够(也只能是)读取它。而排他锁定一般应用于对数据进行修改或更新(包括添加删除等)操作,即是用户在修改一个数据之前设置了锁定,在一定的时刻里其他用

15、户是不能访问到该数据的,只有等待锁定解除(UNLOCK)才能进行访问到它,因此在计算机处理的时候,其他的用户一般是感受不到有那个等待时刻的。通过如此的处理,就保证了数据的一致性。 a) 共享锁定 b) 排它锁定 图4 安全锁定类型在ADO进行数据库操作时,它的锁定类型相对来讲复杂一些。打开记录集时,能够指定锁定类型。锁定类型决定了当不止一个用户同时试图改变一个记录时,数据库应如何处理。ADO中的锁定要紧有以下四种类型: l AdLockReadOnly 指定你不能修改记录集中的记录 l AdLockPessimistic 指定在编辑一个记录时,立即锁定它 l AdLockOptimstic 指

16、定只有调用记录集的Update方法时,才锁定记录 l AdLockBatchOptimstic 指定记录只能成批地更新 在缺省情况下,记录集使用只读锁定。要指定不同的锁定类型,能够在打开记录集时包含这些锁定常量之一。部分代码如下: Set MyConn=Sever.CreateObject(“ADODB.Connection”) /定义数据库连接MyConn Set RS=Sever.CreateObject(“ADODB.RecordSet”) /定义返回数据记录集 MyConn.Open “ByktDB.dsn”/建立应用程序与数据源的连接 RS.Open “SELECT * FROM M

17、ytable”, MyConn, adOpenDynamic, adLockPessimistic /进行数据库操作,同时设置锁定 RS.Close MyConn.Close 4.2产品数据一致性处理 数据的安全因素除了前面所提到的并行操纵之外,还要考虑事务处理。网络数据库有其不同的地点,例如:假设某个时刻有一个设计人员在你的站点上索取一些设计信息,有关的设计信息存储在两个表中。一个表用来保存该设计者的信息,另一个表包含了要索取的设计信息。该设计人员的信息差不多输入了第一个表中。然而,就在这时,发生了意外情况,一道闪电击中了你的服务器,使第二个表没有被更新。在这种情况下,一个健壮的系统就必须保

18、证最后的结果是两个表都没有被更新过。这时候事务处理就发挥了重要的功效。 使用事务处理,你能够防止第二个表没有被更新而第一个表被更新的情况出现:当一组语句构成一个事务处理时,假如一个语句没有执行成功,则所有的语句都不成功。不管是针对多个表,依旧进行表内多个记录的操作,它们所需要的安全保证是一样的。事务处理的实现代码如下: Set MyConn=Sever.CreateObject(“ADODB.Connection”) MyConn.Open “ByktDB.dsn” MyConn.BeginTrans /事务处理开始 MyConn.Execute “INSERT DataTable(Num) Values(3628)” MyConn.Execute “INSERT Shipping (Address) VALUES(Paris,France)” MyConn.CommitTrans /事务处理结束 MyConn.Close 在上面这段代码中,用BeginTrans方法和CommitTrans方法来标记事务处理的开始和结束。在BeginTrans方法被调用之后,CommitTRans方法被调用之前,不管出现什么错误,两个表都可不能被更新,在那个过程中所有处理的数据都保持了完全可靠的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论