|
数据库系统是数据密集型应用的核心,其体系结构受数据库运行所在的计算机系统的影响很大,尤其是受计算机体系结构中的联网、并行和分布的影响。站在不同的角度或不同层次上看,数据库系统体系结构也不同。站在最终用户的角度看,数据库系统体系结构分为集中式、分布式、C/S(客户端/服务器)和并行结构。
|
|
|
|
分时系统环境下的集中式数据库系统结构诞生于20世纪60年代中期。当时的硬件和操作系统决定了分时系统环境下的集中式数据库系统结构成为早期数据库技术的首选结构。在这种系统中,不但数据是集中的,数据的管理也是集中的,数据库系统的所有功能,从形式的用户接口到DBMS核心都集中在DBMS所在的计算机上。
|
|
|
|
随着网络技术的迅猛发展,很多现代软件都采用客户端/服务器(C/S)体系结构。在这种结构中,一个处理机(客户端)的请求被送到另一个处理机(服务器)上执行。其主要特点是客户端与服务器CPU之间的职责明确,客户端主要负责数据表示服务,而服务器主要负责数据库服务。
|
|
|
采用C/S结构后,数据库系统功能分为前端和后端。前端主要包括图形用户界面、表格生成和报表处理等工具;后端负责存取结构、查询计算和优化、并发控制以及故障恢复等。前端与后端通过SQL或应用程序来接口。ODBC(开放式数据库互连)和JDBC(Java程序数据库连接)标准定义了应用程序和数据库服务器通信的方法,也即定义了应用程序接口,应用程序用它来打开与数据库的连接、发送查询和更新以及获取返回结果等。
|
|
|
|
(1)事务服务器。事务服务器也称查询服务器。它提供一个接口,使得客户端可以发出执行一个动作的请求,服务器响应客户端请求,并将执行结果返回给客户端。用户端可以用SQL,也可以通过应用程序或使用远程过程调用机制来表达请求。一个典型的事务服务器系统包括多个在共享内存中访问数据的进程,包括服务器进程、锁管理进程、写进程、监视进程和检查点进程。
|
|
|
(2)数据服务器。数据服务器系统使得客户端可以与服务器交互,以文件或页面为单位对数据进行读取或更新。数据服务器与文件服务器相比提供更强的功能,所支持的数据单位可比文件还要小,如页、元组或对象;提供数据的索引机制和事务机制,使得客户端或进程发生故障时数据也不会处于不一致状态。
|
|
|
|
并行体系结构的数据库系统是多个物理上连在一起的CPU,而分布式系统是多个地理上分开的CPU。并行体系结构的数据库类型分为共享内存式多处理器和无共享式并行体系结构。
|
|
|
|
共享内存式多处理器是指一台计算机上同时有多个活动的CPU,它们共享单个内存和一个公共磁盘接口,如下图所示。这种并行体系结构最接近于传统的单CPU处理器结构,其设计的主要挑战是用N个CPU来得到N倍单CPU的性能。但是,因为不同的CPU对公共内存的访问是平等的,这样可能会导致一个CPU被访问的数据被另一个CPU修改,所以必须要有特殊的处理。然而,由于内存访问采用的是一种高速机制,这种机制很难保证进行内存划分时不损失效率,所以这些共享内存访问问题会随着CPU个数的增加而变得难以解决。
|
|
|
|
|
|
无共享式并行体系结构是指一台计算机上同时有多个活动的CPU,并且它们都有自己的内存和磁盘,如下图所示,图中粗线表示高速网络。在不产生混淆的情况下,也称为并行数据库系统。各个承担数据库服务责任的CPU划分它们自身的数据,通过划分的任务以及通过每秒兆位级的高速网络通信完成事务查询。
|
|
|
|
|
|
分布式DBMS包括物理上分布、逻辑上集中的分布式结构和物理上分布、逻辑上分布的分布式数据库结构两种。前者的指导思想是把单位的数据模式(称为全局数据模式)按数据来源和用途,合理地分布在系统的多个节点上,使大部分数据可以就地或就近存取。数据在物理上分布后,由系统统一管理,使用户不感到数据的分布。后者一般由两部分组成:一是本节点的数据模式;二是本节点共享的其他节点上有关的数据模式。节点间的数据共享由双方协商确定。这种数据库结构有利于数据库的集成、扩展和重新配置。
|
|
|