关于面向对象数据库系统的体系结构问题,最简单的形态是Client/Server。下面讨论Client/Server体系结构,但要指出,并不是大多数面向对象数据库管理系统都是Client/Server系统。在对象Client/Server DBMS里,这不是最好的方法,因为应用程序的组合/复杂对象结构的导航指派将数据移到客户端。限于篇幅,下面只讨论对象Client/Server体系结构和页面Client/Server体系结构两种典型的体系结构。......
2023-10-28
下面推荐两种主要的Client/Server体系结构:对象服务器体系结构和页面服务器(page Servers)体系结构。它们之间的区别是在客户端和服务器间转移数据颗粒的不同,既是对象又是页面。
1.对象服务器体系结构
对象服务器体系结构是,客户端从服务器请求“对象”,服务器从数据库中检索到这些对象形态的数据,再将它们返还给提出请求的客户端,如图15.6所示。
由图15.6可知,在客户端和服务器都有一个对象管理器(object manager),它们的名称虽然相同,但功能不同,它们代表客户端与服务器之间的相互交互。
图15.6 对象服务器体系结构
在对象服务器里,服务器承担部分DBMS的服务,客户端基本上负责应用程序执行环境和对象管理功能某个层面的任务。因此,客户端拥有查询接口(query interface)、对象浏览器(object browser)和编程接口(programmatic interface)。服务器上有对象管理器查询优化器(query optimizer)、封锁管理器(lock manager)、存储管理器(storage manager)和页面缓存管理器(page cache manager)等。
对象管理器在客户端和服务器都具有复制功能。首先,它为方法执行提供上下文。在服务器和客户端间,对象管理器的复制功能使得方法能够在两者间执行。在客户端执行的方法可以调用其他方法的执行,这些方法可以随对象迁移到服务器上。其次,对象管理器也处理对象标识(无论是逻辑的、物理的还是虚拟的)的实现和对象的删除问题。在服务器上,对象管理器还提供对对象聚集和存取方法的支持。最后,客户端和服务器的对象管理器可以实现一个对象缓存(此外,在服务器里有一个页面缓存)。对象缓存在客户端借助本地存取改进系统性能。客户端仅当对象不在缓存时才需要访问服务器。用户请求的优化和用户事务的同步都在服务器上实现,结果对象在客户端上接收。
对象服务器体系结构里不要求服务器逐个将对象发送给客户端,可以成组发送。如果客户端不发送任何预取提示,则这样的一组对象与磁盘页面的邻接空间相对应。否则,该分组可能会包含来自多个不同页面的对象。依据分组的击中率,客户端可以动态增加或减小分组大小。在一些系统里,处理复杂对象需要考虑客户端返回更新对象给客户端的情况。这些对象必须安装到相应的数据页(称为主页)。如果服务器里不存在对应的数据页面(例如,服务器已经将之刷新出去了),服务器必须重新将这些对象读入这个主页。(www.chuimin.cn)
2.页面服务器体系结构
另一种组织方式是页面服务器体系结构,其中服务器和客户端传输的单位就是数据的物理单位页面服务器体系结构,如图15.7所示。
图15.7 页面服务器体系结构
此时,服务器和客户端传递的数据单位是页面或段(segment),而不是对象。页面服务器体系结构将对象处理分为客户端和服务器两部分。事实上,服务器不再对对象进一步加工,而是起增值存储管理器的作用。
图15.7所示的是页面服务器体系结构,早期在页面服务器体系上的性能研究要多于对象服务器体系结构的。直观来讲,让服务器而不是客户端理解“对象”概念,对提升性能有很多好处。一方面,服务器可以直接将封锁和日志功能用到对象上,让更多的客户端存取同一页面。当然,前提是对象要比页面小。另外一方面,通过服务器的过滤减少了给客户端的数据传输量。领航问题也是一个大问题。这里,处理领航问题可能是将应用代码转移到服务器,并在那里执行。
页面服务器简化了DBMS的代码,因为服务器和客户端都维护页面缓存,从磁盘到用户接口,对象的表示是一样的。这样,对象的更新只发生在客户端缓存里,当页面从客户端刷新到服务器时再反映到磁盘上。另外,还可以充分发挥客户端工作站的作用。这样服务器变成瓶颈的机会就比较小。服务器实现少量的功能,而为大量客户端服务。可以设计一些系统让服务器和客户端的工作分布由查询优化器来决定。页面服务器也可使用操作系统甚至硬件的功能来处理某些问题,如指针混乱(pointer swizzling),因为操作单位都是一个页面。
有关分布式数据库技术的文章
关于面向对象数据库系统的体系结构问题,最简单的形态是Client/Server。下面讨论Client/Server体系结构,但要指出,并不是大多数面向对象数据库管理系统都是Client/Server系统。在对象Client/Server DBMS里,这不是最好的方法,因为应用程序的组合/复杂对象结构的导航指派将数据移到客户端。限于篇幅,下面只讨论对象Client/Server体系结构和页面Client/Server体系结构两种典型的体系结构。......
2023-10-28
分布式数据库系统的基本功能处于应用层。分布式数据库系统既是一个分布式系统,也是一个数据库系统,因此其体系结构兼顾两者。这三个方面从某种程度上反映了分布式数据库系统的特点。自主性是分布式数据库系统重点强调的一个特性。图2.7分布式数据库的参考体系结构分布式数据库中的数据往往是分片的[2],且是复制的。分布式数据库的参考体系结构如图2.7所示。为了进一步说明分布式数据库管理系统的构成,下面仔细分析DDBMS的基本成分。......
2023-10-28
在关系数据模型上构建对象数据库称为关系-对象模式。前面的VML样例就是基于关系-对象模式的,只是那里的讨论聚焦于模式映射。本节以Oracle为例说明关系-对象模式的实现。由于Oracle是典型的关系型数据库管理系统,因此继承自己的优势是其首要考虑的因素。这样,它采用在关系系统上构建面向对象系统的策略。在许多其他面向对象语言和系统中,Oracle对象类型等于对象类。......
2023-10-28
为了提供恰当的对象存取,这些关系本质上可以将持久对象引导到物理分组。对象分组不太容易实现有两个原因。简单来说,如果给定一个类图,则可有三个基本的对象分组存储模型。然而,只有LOID允许对象的垂直分割和继承关系。主要困难是对象的父母被删除时,这个对象要重新分组。分布式系统中,DSM和NSM适合直接使用水平分割。......
2023-10-28
首先我们讨论并行计算机及其体系结构。并行系统与并行计算密切关联。图14.1共享内存体系结构对于数据库系统来说,大部分共享内存的商务产品可以使用查询间并行算法来提高事务吞吐量和使用查询内并行算法来节省决策支持查询的响应时间。图14.2共享磁盘体系结构共享磁盘的优点:成本低、高可扩展性、负载均衡、高可用性,以及能方便地迁移到单处理器系统。图14.3无共享体系结构无共享的并行数据库系统如Teradata的DBC和Tandem的NonStop SQL等。......
2023-10-28
对象从一个节点移动到另外一个节点,这是分布式系统的一个显著特点。这样就产生了新的问题,即对象迁移问题。另外一个问题是必须跟踪对象移动,以便能在其新地点找到该对象。处于激活或等待的对象不允许迁移,否则,会被阻塞。因为对象移动时,必须更新系统目录,以反映新的位置。组合对象的移动会涉及其参考的其他对象的移动,如对象组装方法。......
2023-10-28
要讨论体系结构问题,首先要回顾前面提到的体系结构模型,再讨论本块恢复管理器和数据库缓冲管理器间的接口。要指出的是,LRM执行的事务操作仅对易失数据库实施。如果没有空余的缓冲空间,LRM就选择一个缓冲页面写入稳定数据库,空出一个页面,再读一个请求的页面到空出来的缓冲空间。数据库缓冲管理器也提供接口,借助该接口,LRM可以让它写回缓冲页面。......
2023-10-28
体系结构是计算机科学中常用的概念。什么是体系结构呢?图2.1数据库系统的基本结构由图2.1可知,数据库管理系统构建在操作系统上,用于管理数据库,给用户提供所需的服务。那么,数据库管理系统的体系结构是怎样的呢?图2.22层数据库系统结构图2.33层数据库系统结构3.多层结构对于大型、复杂的应用,3层结构显得力不从心,因此更多的层次出现在系统中。......
2023-10-28
相关推荐