单用户
微型计算机上的数据库系统通常由一个用户使用,如 SQLite
部署、通信、处理和服务方式
分析组件、请求、任务、数据、服务所在位置
1.3 看数据结构,1.4 看系统组成,1.5 看组件位置和连接方式
| 章节 | 关键问题 | 相关概念 |
|---|---|---|
| 1.3 | 数据库内部的分层结构 | 外模式、模式、内模式和两级映像 |
| 1.4 | 系统如何运行、谁承担职责 | 数据、DBMS、应用、平台和人员 |
| 1.5 | 应用、DBMS 和数据库放在哪些计算机,怎样通信 | 集中、客户-服务器、并行、分布和云 |
一个应用系统可以同时是客户-服务器、分布式和云数据库
数据怎样分层、系统需要哪些组成、组件如何存放和连接,是不同层面
组件位置、任务处理、数据节点、数据库获取方式
| 可变项目 | 描述方式 |
|---|---|
| 组件位置与通信 | 集中:主要组件在同一机器上;客户端/服务器:功能分置 |
| 任务处理方式 | 并行:一个任务交给多个处理单元共同处理 |
| 数据位置与节点自治 | 分布式:数据跨多个网络节点,节点可以自治 |
| 数据库获取方式 | 云数据库:应用通过网络使用数据库服务 |
每获得一种好处,也要列出新增的网络、故障、资源竞争或管理问题
应用、DBMS 和数据库在同一台计算机上,可被多个终端共享
微型计算机上的数据库系统通常由一个用户使用,如 SQLite
小型机或大型机上的数据库系统可以让多个终端共享同一个系统
应用、DBMS 和数据库是否集中在一台计算机;接入多少终端不重要
少了跨机器请求,但 CPU、内存、存储和故障的影响也会集中
客户端应用通过网络向服务器上的 DBMS 请求数据
请求路径:客户端应用 → 服务器上的 DBMS → 服务器上的数据库
返回路径:数据库 → 服务器上的 DBMS → 网络 → 客户端应用
提供用户界面和部分业务数据处理流程,需要数据时发出请求;桌面应用、移动应用或浏览器都是客户端
通过网络接收请求,处理数据库访问,把用户需要的数据通过网络链路返回给客户端
多台终端可以共享数据库服务;会有网络断开、身份认证和连接管理问题
浏览器先访问应用服务器,应用服务器再请求数据库服务器
提供统一的用户界面,发出业务请求。应用在浏览器中运行
检查登录和业务规则,组织要发给数据库服务器的请求
运行 DBMS 和数据库,读写数据并执行事务、权限和完整性检查
客户端、应用服务器、数据库服务器职责不同
桌面或移动应用可以直接作为客户端;B/S 使用浏览器作为客户端

C/S 的优势是本地处理数据;B/S 的优势是容易升级更新
两层结构让客户端直接连接数据库,三层结构让应用服务器承担部分业务处理
| 结构 | 请求路径 | 返回路径 | 主要职责 |
|---|---|---|---|
| 两层 | Client → DB Server | DB Server → Client | 客户端直接请求数据服务 |
| 三层 | Client → App Server → DB Server | DB Server → App Server → Client | 应用服务器检查登录和业务规则,组织数据库请求 |
C/S 不一定都是两层,B/S 也不一定都是三层
三层结构集中处理登录和业务规则,也多了一层网络往返和故障排查
一个查询可以拆给多个处理单元,再汇总结果
| 结构 | 资源如何共享 |
|---|---|
| 共享内存型 | 多个处理器共享同一片内存 |
| 共享磁盘型 | 多个处理器共享磁盘,协同访问数据 |
| 非共享型 | 各处理单元拥有自己的处理器、内存和磁盘,通过系统协作 |
| 混合型 | 组合不同共享方式,按系统需要组织处理资源 |
适合的查询可能更快,但系统还要拆分、调度和汇总任务
数据跨多个网络节点,用户仍可将其看作一个逻辑整体
| 观察点 | 具体含义 |
|---|---|
| 逻辑整体 | 多个节点上的数据在逻辑上仍作为一个数据库 |
| 场地自治 | 节点可以独立处理本地数据库 |
| 局部应用 | 独立访问和处理本地节点的数据 |
| 全局应用 | 通过网络访问和处理多个节点的数据 |
分布式数据要跨网络节点,同时每个节点也可以处理本地数据
应用通过网络使用云环境中的数据库,不必自己部署全部服务器和 DBMS
考试周选课高峰:调用云数据库服务 → 按需获得资源 → 返回结果
应用连接数据库服务后,可以存储、更新和查询数据,由服务处理事务
考试周可以增加计算和存储资源,访问量下降后再缩减
云服务分担部分基础设施运维;用户仍需管理数据、权限、安全与成本
“云”说明服务的获得方式,而不是服务内部的技术
不同结构改变了什么?该如何判断?
| 体系结构 | 判断依据 | 得到什么好处 | 多处理什么问题 |
|---|---|---|---|
| 并行 | 一个任务使用多个处理单元 | 提高适合查询的处理速度 | 拆分、汇总和资源竞争 |
| 分布式 | 数据和处理跨多个网络节点,节点可以自治 | 为就近处理、增加节点和故障接替提供条件 | 网络故障、一致性和节点管理 |
| 云数据库 | 数据库能力按网络服务提供 | 按需资源和减少部分基础设施运维 | 服务依赖、隐私、成本和管理责任 |
同一个云数据库可以跨节点保存数据,也可以让多个处理单元并行执行查询
每个场景写出组件和数据在哪、任务怎样处理、适用名称和新增问题
列出判断依据、体系结构名称和带来的新问题
一个系统可以同时是 B/S、分布式和云数据库
三个校区分别维护本地学生和成绩数据,教务处需要跨校区汇总;用户通过浏览器访问;考试周访问较集中。该自建服务器还是采购云数据库?
“结构”可能是数据分层、系统组成、或计算机与网络部署
| 章节 | 要点 | 典型问题 | 相关但不同的内容 |
|---|---|---|---|
| 1.3 | 数据库内部抽象 | 哪一级模式发生变化 | 组件部署位置 |
| 1.4 | 系统运行整体 | 谁和什么共同支撑系统 | 网络节点协作方式 |
| 1.5 | 外部体系结构 | 应用、DBMS、数据库如何部署 | 分布式实现算法、分片和具体云产品 |
五类体系结构不是逐一升级,真实系统可以同时使用多种技术
沿一次请求检查组件位置、处理方式和数据节点
集中式把主要组件放在一台计算机
客户-服务器把应用与数据库服务分开
并行把一个任务交给多个处理单元
分布式让多个节点处理本地或全局数据
云数据库以网络服务提供存储、查询和事务能力
用户仍需处理安全、隐私、成本和责任
应用和数据库放在哪里?任务并行吗?数据跨节点吗?是否是网络服务?