请使用支持现代 CSS 与 JavaScript 的浏览器播放课件
DBPA · 1.5

数据库系统的
体系结构

部署、通信、处理和服务方式

VER. 2608 Built with impress.js

学习目标

分析组件、请求、任务、数据、服务所在位置

  1. 01解释 1.3 的模式结构、1.4 的系统组成、1.5 的组件部署各回答什么问题
  2. 02说明五类体系结构中应用、DBMS、数据库和处理资源怎样放置与工作
  3. 03画出两层 C/S 和三层 B/S 的请求路径
  4. 04说明移动组件、增加服务器、拆分任务、跨节点存数据怎样改变请求与管理
  5. 05说明并行、分布式和云数据库的好处及新增的通信、协调和管理工作
  6. 06根据业务场景判断可同时使用哪些体系结构名称,并列出好处与新增问题
2/19
LEARNING OBJECTIVES

1.3、1.4、1.5 都在讲结构

1.3 看数据结构,1.4 看系统组成,1.5 看组件位置和连接方式

章节关键问题相关概念
1.3数据库内部的分层结构外模式、模式、内模式和两级映像
1.4系统如何运行、谁承担职责数据、DBMS、应用、平台和人员
1.5应用、DBMS 和数据库放在哪些计算机,怎样通信集中、客户-服务器、并行、分布和云

一个应用系统可以同时是客户-服务器、分布式和云数据库

Takeaway

数据怎样分层、系统需要哪些组成、组件如何存放和连接,是不同层面

3/19
THREE OBSERVATION ANGLES

组件、任务、数据和服务

组件位置、任务处理、数据节点、数据库获取方式

可变项目描述方式
组件位置与通信集中:主要组件在同一机器上;客户端/服务器:功能分置
任务处理方式并行:一个任务交给多个处理单元共同处理
数据位置与节点自治分布式:数据跨多个网络节点,节点可以自治
数据库获取方式云数据库:应用通过网络使用数据库服务
Takeaway

每获得一种好处,也要列出新增的网络、故障、资源竞争或管理问题

4/19
ONE REQUEST

集中式:主要组件在同一台计算机

应用、DBMS 和数据库在同一台计算机上,可被多个终端共享

单用户

微型计算机上的数据库系统通常由一个用户使用,如 SQLite

多用户

小型机或大型机上的数据库系统可以让多个终端共享同一个系统

应用、DBMS 和数据库是否集中在一台计算机;接入多少终端不重要

Takeaway

少了跨机器请求,但 CPU、内存、存储和故障的影响也会集中

5/19
CENTRALIZED DATABASE SYSTEM

客户端/服务器体系

客户端应用通过网络向服务器上的 DBMS 请求数据

请求路径:客户端应用 → 服务器上的 DBMS → 服务器上的数据库

返回路径:数据库 → 服务器上的 DBMS → 网络 → 客户端应用

客户端

提供用户界面和部分业务数据处理流程,需要数据时发出请求;桌面应用、移动应用或浏览器都是客户端

服务器

通过网络接收请求,处理数据库访问,把用户需要的数据通过网络链路返回给客户端

Takeaway

多台终端可以共享数据库服务;会有网络断开、身份认证和连接管理问题

6/19
CLIENT-SERVER DATABASE SYSTEM

客户端/应用服务器/数据库服务器三层结构

浏览器先访问应用服务器,应用服务器再请求数据库服务器

浏览器

提供统一的用户界面,发出业务请求。应用在浏览器中运行

应用服务器

检查登录和业务规则,组织要发给数据库服务器的请求

数据库服务器

运行 DBMS 和数据库,读写数据并执行事务、权限和完整性检查

Takeaway

客户端、应用服务器、数据库服务器职责不同

7/19
THREE-TIER STRUCTURE

C/S 结构和 B/S 结构

桌面或移动应用可以直接作为客户端;B/S 使用浏览器作为客户端

两层客户—服务器与三层浏览器—应用服务器—数据库服务器的路径对比图
Takeaway

C/S 的优势是本地处理数据;B/S 的优势是容易升级更新

8/19
CS AND BS COMPARISON

数据请求的往返

两层结构让客户端直接连接数据库,三层结构让应用服务器承担部分业务处理

结构请求路径返回路径主要职责
两层Client → DB ServerDB Server → Client客户端直接请求数据服务
三层Client → App Server → DB ServerDB Server → App Server → Client应用服务器检查登录和业务规则,组织数据库请求

C/S 不一定都是两层,B/S 也不一定都是三层

Takeaway

三层结构集中处理登录和业务规则,也多了一层网络往返和故障排查

9/19
REQUEST PATH

并行数据库:同一任务并行处理

一个查询可以拆给多个处理单元,再汇总结果

结构资源如何共享
共享内存型多个处理器共享同一片内存
共享磁盘型多个处理器共享磁盘,协同访问数据
非共享型各处理单元拥有自己的处理器、内存和磁盘,通过系统协作
混合型组合不同共享方式,按系统需要组织处理资源
Takeaway

适合的查询可能更快,但系统还要拆分、调度和汇总任务

10/19
PARALLEL DATABASE SYSTEM

分布式:数据分布在不同位置

数据跨多个网络节点,用户仍可将其看作一个逻辑整体

观察点具体含义
逻辑整体多个节点上的数据在逻辑上仍作为一个数据库
场地自治节点可以独立处理本地数据库
局部应用独立访问和处理本地节点的数据
全局应用通过网络访问和处理多个节点的数据
Takeaway

分布式数据要跨网络节点,同时每个节点也可以处理本地数据

11/19
DISTRIBUTED DATABASE SYSTEM

云数据库:通过网络使用数据库服务

应用通过网络使用云环境中的数据库,不必自己部署全部服务器和 DBMS

考试周选课高峰:调用云数据库服务 → 按需获得资源 → 返回结果

服务交付

应用连接数据库服务后,可以存储、更新和查询数据,由服务处理事务

弹性资源

考试周可以增加计算和存储资源,访问量下降后再缩减

共同责任

云服务分担部分基础设施运维;用户仍需管理数据、权限、安全与成本

Takeaway

“云”说明服务的获得方式,而不是服务内部的技术

12/19
CLOUD DATABASE SYSTEM

并行、分布式和云数据库比较

不同结构改变了什么?该如何判断?

体系结构判断依据得到什么好处多处理什么问题
并行一个任务使用多个处理单元提高适合查询的处理速度拆分、汇总和资源竞争
分布式数据和处理跨多个网络节点,节点可以自治为就近处理、增加节点和故障接替提供条件网络故障、一致性和节点管理
云数据库数据库能力按网络服务提供按需资源和减少部分基础设施运维服务依赖、隐私、成本和管理责任
Takeaway

同一个云数据库可以跨节点保存数据,也可以让多个处理单元并行执行查询

13/19
THREE DIFFERENT CHANGES

练习:判断体系结构组合

每个场景写出组件和数据在哪、任务怎样处理、适用名称和新增问题

Exercise
  1. 01实验室的一台电脑上运行着本地成绩管理系统
  2. 02多台终端访问一台服务器,并查询数据
  3. 03浏览器访问应用服务器再访问数据库服务器
  4. 04大查询被多个处理器同时执行
  5. 05多校区节点维护本地数据并支持全局查询
Takeaway

列出判断依据、体系结构名称和带来的新问题

14/19
ARCHITECTURE JUDGMENT

案例:教务系统升级

一个系统可以同时是 B/S、分布式和云数据库

三个校区分别维护本地学生和成绩数据,教务处需要跨校区汇总;用户通过浏览器访问;考试周访问较集中。该自建服务器还是采购云数据库?

Exercise
  1. 01用户通过浏览器访问时,请求经过哪些客户端和服务器?三个校区各自维护数据为什么属于分布式?
  2. 02考试周的查询和更新是否适合并行?云服务可以增加哪些资源,哪些运维工作仍由学校负责?
  3. 03写出这个系统可以同时使用的体系结构名称,并为每个名称列出一项好处和一项新增问题
15/19
CASE EVOLUTION

1.3、1.4、1.5 的“结构”不能互相替换

“结构”可能是数据分层、系统组成、或计算机与网络部署

章节要点典型问题相关但不同的内容
1.3数据库内部抽象哪一级模式发生变化组件部署位置
1.4系统运行整体谁和什么共同支撑系统网络节点协作方式
1.5外部体系结构应用、DBMS、数据库如何部署分布式实现算法、分片和具体云产品
Takeaway

五类体系结构不是逐一升级,真实系统可以同时使用多种技术

16/19
CHAPTER BOUNDARY

看组件、任务、数据和服务怎样安排

沿一次请求检查组件位置、处理方式和数据节点

集中式与 C/S

集中式把主要组件放在一台计算机

客户-服务器把应用与数据库服务分开

并行与分布式

并行把一个任务交给多个处理单元

分布式让多个节点处理本地或全局数据

云数据库

云数据库以网络服务提供存储、查询和事务能力

用户仍需处理安全、隐私、成本和责任

Takeaway

应用和数据库放在哪里?任务并行吗?数据跨节点吗?是否是网络服务?

17/19
SECTION REVIEW

本节知识地图

18/19
KNOWLEDGE MAP

本节问题

  1. 011.3、1.4、1.5 节的“结构”有什么区别?
  2. 02集中式为什么可以是单用户或多用户?
  3. 03两层 C/S 和三层 B/S 的查询路径分别如何经过 DBMS 和数据库?
  4. 04为什么多台机器共同提供数据库服务,不一定是分布式?
  5. 05使用云数据库后,哪些数据、权限、安全、网络和成本仍需自己处理?
  6. 06云数据库同时采用并行和分布式技术时,应该如何描述?
19/19
SECTION QUESTIONS