第 3章 数据库系统体系结构
教材:数据库技术及应用 2006年 4月
宁可、吴菁、胡海编著
本章要点
? 集中式系统
? 客户 /服务器系统
? 分布式系统
? 数据库接口
目 录
3.1 集中式系统
3.2 客户 /服务器系统
3.2.1 客户 /服务器结构
3.2.2 N层 客户机 -服务器 结构
3.3 分布式系统
3.3.1 分布式系统的基本概念
3.3.2 分布式数据库系统的主要特点
3.4 数据库接口
3.4.1 通过 ODBC连接数据库
3.4.2 通过 JDBC连接数据库
3.4.3 通过 OLE DB连接数据库
3.4.4 通过专用接口连接数据库
3.4.5 通用数据库接口和专用数据库接口的比较
3.5 应用实例
小结
3.1 集中式系统
集中式系统是指运行在一台计算机上, 不与其它计算机系统交互
的数据库系统 。 这些主要表现在运行在个人计算机上的单用户数
据库系统和运行在大型主机上的高性能数据库系统 。
对于个人计算机上的单用户数据库系统来说, 其结构简单, 容易
设计, 构造, 操作和维护, 但数据处理能力有限, 而集中式大型
机系统则一般常用于大规模的批处理系统, 这些应用常见于银行
业, 保险业等 。
图 3-2:高性能数据库系统。
主机
终端
图 3-1:单用户数据库系统
个人计算机
3.2 客户 /服务器系统
随着计算机网络和计算机软硬件技术的发展, 计算机的性能价
格比越来越高, 使原集中式系统的终端变为个人计算机, 而相应
的由原集中式系统中主机完成的任务也有所划分, 即由原集中式
系统中主机完成的用户界面功能现在由个人计算机来处理, 集中
式系统变为服务器系统, 以满足客户系统产生的请求, 客户 /服务
器系统一般结构如图 3-3所示 。
服务器
客户机 客户机 客户机 客户机
图 3-3 客户 /服务器系统一般结构
网络
在该体系结构中,数
据的存储和管理通常由
服务器来承担,此服务
器称为数据库服务器。
3.2.1 客户 /服务器结构
对于数据库系统而言,客户 /服务器系统可将数据库功能大致分为
两个部分:前端客户机系统和后端服务器系统。前端客户机系统主要包
括图形用户界面工具、表格及报表生成和书写工具等;后端服务器系统
负责数据的存取和控制,包括故障恢复和并发控制等。从功能来说,客
户 /服务器系统的功能划分如图 3-4所示 。
表格用户界面 SQL用户界面 图形化界面
数据库引擎
前端客户机
系统
后端服务器
系统
接口
图 3-4 客户 /服务器系统的功能划分
客户 /服务器系统对数据的一般处理过程,如图 3-5所示,请求和接
收数据信息的具体描述如下,
( 1)用户在客户端请求数据查询。
( 2)请求被翻译成 SQL语言。
( 3) SQL请求通过网络被传送到服务器端。
( 4)数据库服务器在存储数据的计算机上进行检索。
( 5)在服务器上检索得到的结果通过网络传递给客户端。
( 6)结果在客户端呈现给用户。
服务器 客户机
服务请求
响应
图 3-5 客户 /服务器系统对数据的处理过程
3.2.2 N层 客户 /服务器结构
一个信息系统应用程序通常可以分成数据层、商业逻辑层和视图层,
这种客户 /服务器结构可称为三层结构,图 3-6说明了这三层间的相互作
用,其中用户层(视图层)是作为商业逻辑层的一个客户,而商业逻辑
层作为数据层的一个客户。
图 3-6 三层结构间的相互作用
视图层
商业逻辑层
数据层
用户请求
信息请求
请求响应
数据查询
查询响应
上述三层客户 /服务器结构的各层所包含内容及功能分别是,
1,数据层
在客户机 -服务器结构中包含数据库的层, 该层主要管理存储的数
据, 通常由一个或多个数据库实现 。
2,商业逻辑层
在客户机 -服务器结构中包含应用系统的程序逻辑实现的部分, 该
层实现商务处理的规则和程序 。
3,视图层
在客户机 -服务器结构中包含用户界面和其他访问系统的组件的部
分, 该层主要用于接收用户的输入, 格式化并显示处理结果 。
相对而言, 三层结构的应用软件在网络上更容易分布和复制 。 层间
的交互总是请求或响应, 这使层次与层次之间相对独立 。 因此它们可
以放在不同的计算机系统中, 用网络连接和中间件作为粘结剂将它们
绑定在一起形成一个单独的应用系统 。
3.3 分布式系统
计算机网络化使计算机资源得到共享, 这些资源包括软件资源和硬件资源, 这
使得现代信息系统的部件或功能通常可分布于多个计算机系统和不同的地理位置上,
这种将部件或功能分布到不同计算机系统和不同位置的方法一般称为分布式计算或
分布式处理 。
在分布式计算 ( Distributed Computing) 环境中, 一项计算处理任务可被分成
若干部分, 对相应数据 ( 通常是来自于网络中不同计算机的分布式数据 ) 的处理也
不是由一台计算机完成, 而是多台计算机协作完成的 。 如图 3-12所示, 一项任务 W由
Wa和 Wb组成 。 而 Wa和 Wb分别在计算机 A和计算机 B上完成 。
计算机 A
完成 Wa
计算机 B
完成 Wb
任务 W
图 3-12 任务 W由 Wa和 Wb组成的分布式处理图
分布式系统中的计算机规模可大可小,小到个人计算机、大到工作站
或大型机系统。对分布式系统中的计算机,有多种不同的称呼,如节点或
结点等,这可依据上下文的不同而异。分布式系统的一般结构如图 3-13所
示。在图中,各个节点间可通过网络进行通信。
网络
节点 A
节点 B
节点 C
3-13 分布式系统
分布式数据库系统的主要特点
分布式数据库系统的主要优点如下,
( 1) 数据共享 。
分布式数据库系统的主要优点是提供一个环境, 使得一
个节点可以访问存放在其他节点上的数据 。
( 2) 自治性 。
通过数据分布的方法来共享数据, 其主要优越性是每个节
点可以对局部存储的数据保持一定程度的控制 。 而在集中式
系统中, 其中心节点的数据库管理员对数据库进行控制 。
( 3) 可用性 。
在分布式系统中, 如果一个节点发生故障, 其他节点还
能继续运行 。
分布式数据库系统的主要缺点是由于要保证各节点间的相
互协作而增加的复杂性 。 其复杂性表现为以下几种形式,
? 软件开发代价 。 实现一个分布式数据库系统会更加复
杂, 因此, 代价更高 。
? 出现错误的可能性更大 。 由于构成分布式系统的各个
节点并行地运行, 因此更难于保证算法的正确性, 尤其难
于保证当系统的一部分发生故障时的运行, 以及从故障中
的恢复 。
? 处理开销增大 。 相比较集中式系统而言, 分布式数据
库系统中消息的交换以及保证各节点间的相互协作都增加
了系统的相应开销 。
因此, 在选择数据库系统的设计时, 必须在数据分布的优
点和缺点间进行权衡 。
3.4 数据库接口
目前, 客户与服务器之间的数据库接口分成两大类,
(1) 通用数据库接口
具有通用的标准数据库接口, 如开放式数据库互连 ( Open DataBase Connecttivity, 简称
ODBC) 标准, 使用 ODBC接口的任何客户可以与提供 ODBC接口的任何服务器连接 。 此外,
还有 Java数据库互连 ( Java DataBase Connectivity,简称 JDBC) 和 OLE DB数据库接口 。
(2) 专用数据库接口 。
专用数据库接口根据各个 DBMS的不同而不同, 例如 Sybase数据库系统, 它提供了 Syabse
Open Client和 Syabse Open Server两种产品 。 其中, Open Client是客户端的 API,它的
作用是调用级接口, 使不同开发商的工具软件和客户应用程序可以把 SQL命令通过网络发
给服务器, 以获得数据和服务; Open Server是服务器端的 API,它提供的编程接口使得
开发人员可以把不同的数据源构造为统一框架的数据库服务器, 从而允许客户以 SQL语言
或远程过程调用的形式, 向数据源发送标准请求 。 然后将数据源返回的结果以标准格式
送回客户 。 在实际开发应用中, 一般利用 Open Client进行客户端开发 。 Open Client编
程接口的函数库包括,Client_Library,DB_Library和 CS_Library。
3.4.1 通过 ODBC连接数据库
ODBC是 Microsoft公司提出的开放式数据库互连, 它采用
SQL( Structured Query Language,结构化查询语言 ) 作为
标准的查询语言来存取连接到的数据库 。 ODBC允许单个应用
程序存取多个数据库管理系统, 而不必关心它所操作的数据
库管理系统是什么 。
应用程序, ODBC接口, ODBC驱动管理程序和数据库厂
商提供的驱动程序的相互关系, 如图 3-10所示 。 利用应
用程序通过 ODBC接口来编写数据库应用程序, 完全可以
不必关心底层数据库管理系统的实现细节, 而只需利用
应用程序的 ODBC接口所提供的功能就可以简单地完成数
据库存取操作 。
应用程序
ODBC接口
ODBC驱动管理程序
数据库1驱动程序 数据库2驱动程序
数据库2
数据库3驱动程序
数据库3 数据库1
图 3-10 应用程序,ODBC和数据库的关系
Windows 2000操作系统的 ODBC数据源管理器窗口界
面,如图 3-11所示,可在此窗口中进行 ODBC的添加、删
除和配置工作。有关 Windows 2000操作系统的 ODBC核心
组件的描述,如图 3-12所示。
图 3-11 ODBC数据源管理器 图 3-12 ODBC数据源管理器核心组件的描述
和 ODBC一样, JDBC也是一种通用的数据库访问标准 。
ODBC主要运行在 Windows环境下, 而 JDBC则主要运行在
Java环境中 。
JDBC( Java DataBase Connectivity) 是一种用于执
行 SQL语句的 Java API,它由一组用 Java编程语言编写
的类和接口组成, JDBC为数据库开发人员提供了一些
标准的应用程序编程接口 API,使用户能够用 Java API
来编写数据库应用程序 。 有了 JDBC API就不必为访问
各个不同的数据库专门编写程序, 而只需用 JDBC API
编写一个访问程序, 且将 Java和 JDBC结合起来, 就可
让它运行在任何平台上 。
3.4.2 通过 JDBC连接数据库
在开发环境中,可通过 JDBC数据库接口来利用
JDBC API存取各种数据库,其中开发环境通过 JDBC接
口连接数据库的各个组件部分的关系,如图 3-13所示。
数据库接口
动态连接库
开发环境
Java虚拟机
JDBC驱动程序
数据库
图 3-13 JDBC接口中各个组件部分的关系
OLE DB也是一种技术标准, 其目的是提供一种统一的
数据库访问接口, 但这里的数据不仅包括数据库中的
数据, 而且还包括邮件数据, Web上的文本或图形, 目
录服务等 。 OLE DB就是为各种各样的数据存储都提供
一种相同的访问接口, 使数据的调用者 ( 应用程序 )
可以使用同样的方法访问各种数据, 而不考虑数据的
具体存储地点, 格式或类型 。
3.4.3 通过 OLE DB连接数据库
如同 ODBC和 JDBC接口一样,应用程序的 OLE DB接
口利用 OLE DB API来存取各种数据库,其通过 OLE DB
接口连接数据库的各个组件部分的关系如图 3-14所示。
图 3-14 OLE DB接口中各个组件部分的关系
开发环境
数据库接口
动态连接库
OLE DB
Data 提供者
数据库
目前大多数开发环境都提供了多种数据库接口, 实
现与多种数据库的连接 。 这些接口不仅包括标准的数
据库接口 ODBC,JDBC和 OLDB等, 还有一种是专用的数
据库接口 。 在实际应用中, 常常需要在一个应用程序
中同时使用到这两种接口方式与数据库连接 。
3.4.4 通过专用接口连接数据库
通过专用接口连接数据库的各个组件部分的
关系如图 3-15。专用接口是针对具体的数据库管
理系统设计的,所以通过专用数据库接口可以更
快捷地连接相应的数据库,以充分发挥各数据库
管理系统的特点,提高访问数据库服务器的效率。
开发环境
数据库
数据库接口动态连
接库或共享库
数据库客户端软件 网络协议
路由软件
图 3-15 通过专用接口连接数据库的各个组件部分的关系
从表中看出, 通用和性能是相互矛盾的, 要获得较好的
数据访问性能, 往往根据不同的应用环境选择连接方式,
对于小型本地数据库, 一般采用 ODBC接口进行连接, 而
对于在网络环境下的大型远程数据库, 一般采用专用数
据库接口进行连接, 以提高系统的可靠性与执行效率 。
3.4.5 通用数据库接口和专用数据库接口的比较
ODBC数据库接口
专用数据库接口
通用性


性能 ( 访问速
度 )

优秀
配置过程
简单
较复杂
3.5 应用实例
实例一:创建 ODBC数据源
1,打开, ODBC数据源管理器, 窗口 。
2,创建新的 ODBC数据源 。
实例二:创建 ODBC数据库描述文件
演示
小结
数据库的体系结构主要有以下几种,
集中式数据库系统完全运行在一台计算机中 。 最初所有数据库系统都是集中式
的 。 随着个算机和局域网的发展, 数据库的前端功能不断移向客户机, 而后端
功能由服务器系统提供 。
并行数据库系统由通过高速互连网络连接在一起的多台处理器和多个磁盘构成 。
并行数据库体系结构包括共享内存, 共享磁盘, 无共享, 以及层次的结构 。 这
些体系结构在可扩展性以及通信速度方面各有千秋 。
分布式数据库是局部独立的数据库的集合, 它们共享一个公共的模式, 并且互
相协作处理非局部数据的事务 。
数据库接口分成两大类即通用数据库接口和专用数据
库接口。其中,通用数据库接口有 ODBC,JDBC和 OLE
DB数据库接口;而专用数据库接口根据各个 DBMS的不同
而不同。
习 题
1,数据库 系统的体系结构一般可分 为集中式结构,
_______________,____________,和并行式体系结构 。
2,客户 /服务器结构的三层结构分别是 ____________、
___________和 __________。
3,并行数 据库体系结构主要有共享 内容结构模式,
____________,___________和 __________。
4,数据库接口一般分成两大类, 分别是 ______________和
_______________。
5,实践题
请利用 windows系统中的, ODBC数据源管理器, 创建一个 ODBC
数据源。