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

数据库系统的组成

数据库、DBMS、应用、软硬件与人员

VER. 2608 Built with impress.js

学习目标

数据库系统由数据库、DBMS、硬件、软件、DBA、用户组成

  1. 01查询成绩时,数据库、DBMS、应用、硬件、软件和人员各有什么分工?
  2. 02区分硬件怎样处理和保存数据,软件怎样接收请求、管理数据并显示结果
  3. 03判断确认需求、设计数据结构、编写程序、维护运行的角色分工
  4. 04说明应用程序员为何依据外模式开发,而不必直接处理内模式
  5. 05根据一项具体工作,判断主要角色、涉及哪一级模式以及依赖哪些软硬件
  6. 06用案例说明数据库系统上线后如何被使用、维护、恢复和修改
2/18
LEARNING OBJECTIVES

数据库系统的组成

一个能工作的数据库系统,需要数据、软件、设备和人员协作

\(\mathrm{DBS} = \mathrm{DB} + \mathrm{DBMS} + \mathrm{App} + \mathrm{Platform} + \mathrm{DBA} + \mathrm{Users}\)

核心要素平台 Platform人员
数据库、DBMS、应用硬件、软件DBA、系统分析员、数据库设计员、应用程序员、最终用户

平台 Platform = 硬件 Hardware + 软件 Software

Takeaway

硬件可分为计算、存储、输入输出;软件可分为操作系统、运行时

3/18
SYSTEM COMPOSITION

硬件平台提供处理与存储基础

今天的计算机基本采用冯·诺依曼体系

冯诺依曼结构示意:输入、输出、CPU、内存、总线和持久存储共同构成计算基础

处理器

处理器执行应用和 DBMS 指令,完成查询、计算和数据处理

内存

暂存正在处理的数据和高频访问的数据

持久存储(外存)

长期保存数据库记录、索引和后备副本

Takeaway

处理器、内存和外存变化后,DBMS 的存储与查询方法也会变化

4/18
HARDWARE PLATFORM

硬件不负责数据库管理

数据库系统的行为,取决于软件、配置和人员

描述主要归属原因
增加内存后查询更快硬件平台可能增加可用运行资源,但依然需结合应用、DBMS 和配置判断
设计成绩表的结构设计员/DBA定义模式与约束,也就是确定表、字段、联系和规则
提供成绩查询功能页面应用系统实现面向用户的业务功能
规定谁可以修改成绩DBA 与 DBMSDBA 制定权限策略,DBMS 执行访问控制
5/18
HARDWARE BOUNDARY

操作系统、DBMS、开发工具和应用分工

软件平台由操作系统、DBMS、开发环境和应用系统共同组成

操作系统 Operating System

管理进程、文件、内存和设备,让 DBMS 和应用能够运行

数据库管理系统 DBMS

定义、组织、存储、操纵、控制和维护数据库

开发工具与环境

编程语言、编译系统和应用开发工具支持编写、调试和部署应用

应用系统

应用系统把具体业务流程实现为用户可以操作的功能

Takeaway

应用提出请求,DBMS 读写数据库,操作系统管理进程、内存和设备

6/18
SOFTWARE PLATFORM

一次成绩查询的流程

点击“查看成绩”后,应用与 DBMS 处理,操作系统和硬件负责运行与读写

一次业务请求从最终用户经应用系统和 DBMS 访问数据库,并由软件与硬件平台支撑

流程:用户点击“查看成绩”,应用将用户请求转换为业务请求,DBMS 处理数据访问,访问结果返回应用并显示结果

支撑:操作系统管理进程、内存、文件和设备,硬件执行指令并保存数据;开发工具用于编写、调试和部署应用

应用程序员依据外模式开发;DBMS 管理逻辑和物理细节

7/18
SOFTWARE RESPONSIBILITY

数据库系统是人-机系统

不同角色在不同阶段参与,拥有不同的数据视图和责任

角色主要工作主要关注
DBA参与设计;负责运行、权限、安全、性能、备份恢复与重构系统状态、内模式与长期运行
系统分析员分析需求、规范说明和总体设计业务目标与总体方案
数据库设计员确定数据并参与各级模式设计,与用户、系统分析员和 DBA 协作全局结构与各级模式
应用程序员依据外模式开发应用程序业务流程与用户功能
最终用户通过应用系统完成业务活动自己需要的数据与操作
8/18
PEOPLE IN DBS

DBA 负责管理数据库系统

真实环境中,DBA 的职责可以由多人分担

责任类别典型工作
设计与定义参与外模式、模式和内模式设计,协助确定数据定义
用户支持与培训帮助用户理解和使用系统,处理日常运行问题并提供培训
运行控制与安全管理访问权限,维护安全性与完整性,监视运行状态
性能改进与重组监视空间利用率与处理效率,改进和重组数据库
转储与恢复制定转储、备份和恢复策略,维护后备副本与日志
系统重构参与模式和内模式的重构,并与应用团队协作调整系统
9/18
DATABASE ADMINISTRATOR

从需求到可用系统

系统分析师分析需求,数据库设计师组织数据,应用程序员实现功能

系统分析师

向用户确认要解决什么问题、给谁使用、有哪些功能和规则,再写成设计师和程序员可以执行的说明

数据库设计师

确定需要保存哪些数据,参与各级模式设计,并与用户、分析师和 DBA 核对表、联系、视图和上线后的管理办法

应用程序员

以外模式为基础实现界面、业务流程和数据库访问程序

Takeaway

应用程序员在外模式上工作;设计师和 DBA 在模式与内模式上工作

10/18
DESIGN AND DEVELOPMENT

最终用户通过应用程序完成任务

最终用户无需直接管理数据库,但需要参与需求分析和反馈

  1. 01使用:通过应用系统的用户界面查询、录入和更新业务数据
  2. 02提出需求:说明业务目标、字段和工作规则,帮助分析员澄清需求
  3. 03反馈与检验:报告运行问题,检验系统是否支持实际工作

最终用户通过应用界面使用外模式提供的局部数据,不直接面对内模式

Takeaway

最终用户看到的是针对自己工作任务的数据视图,而不是数据库的内部结构

11/18
END USERS

数据库系统的生命周期

不同角色接力协作,需求变化时回到分析与设计

01

需求分析

最终用户与系统分析师提出并梳理业务需求

02

模式与运行方案

数据库设计师与 DBA 设计模式、外模式和运行方案

03

外模式与应用开发

应用程序员依据外模式实现界面、业务流程和访问程序

04

上线运行与反馈

最终用户通过应用完成业务,DBMS 按定义、权限和完整性规则管理数据

05

性能、恢复与重构

DBA 监控、调优、备份、恢复并参与系统重构;需求变化时回到分析与设计

12/18
DATABASE LIFECYCLE

练习:判断角色与层次

写出谁主要负责、会改哪一级模式或哪类软硬件,并说明理由

Exercise
  1. 01决定学生查询成绩表时,需要查询哪些属性
  2. 02设计学生、课程和选课关系中的联系
  3. 03编写选课页面和提交功能
  4. 04为选课查询调整索引
  5. 05系统故障后恢复到正确状态

答案包括:主要负责人、需要协作的人、涉及的模式或软硬件,判断理由

13/18
RESPONSIBILITY JUDGMENT

案例:教学系统增加完成度查询功能

教学系统新增“培养方案完成度”查询

开发团队提出:为成绩查询增加索引;数据库服务器更换存储设备;教师反馈成绩录入规则不清楚;发生了一次数据库故障,需要恢复到正确状态

Exercise
  1. 01分别判断每项变化主要涉及的角色,以及需要协作的其他角色
  2. 02变化会改动用户需求、应用、哪一级模式,还是操作系统与硬件
  3. 03说明变化如何从用户提出问题,传到应用、DBMS,再到操作系统和硬件

判断时要沿着变化经过的人、应用、DBMS、数据和软硬件逐步追踪

14/18
CASE JUDGMENT

结构、组成和体系结构

1.3 节讲 DBMS 分层,1.4 节讲人员和组件,1.5 节讲组件怎样部署与连接

比较维度模式结构系统组成系统体系结构
主要内容三级模式、两级映像软硬件、DBMS、应用和人员各组件的部署与连接方式
主要判断变化在哪一层,哪一级映像吸收哪个角色负责,依赖哪些平台集中式、客户-服务器、并行、分布式或云
需要判断应用能否不随存储变化而修改工作由谁完成、需要什么组件数据库和应用放在哪里、怎样互相连接

体系结构问题:数据库和应用如何存放;各组件怎样连接

15/18
STRUCTURE AND COMPOSITION

数据库系统需要所有组件才能正常运行

硬件、软件或人员缺少任何一项,系统都可能无法查询、更新、维护或恢复

硬件平台

遇到资源或性能问题,区分硬件容量、DBMS/存储组织、应用逻辑和配置

软件平台

遇到“某个请求应该怎样被处理”时,沿着应用、DBMS 和操作系统逐步追踪

人员分工

遇到“某个问题应该谁来负责”时,按需求、设计、开发、使用和维护分配职责

Takeaway

沿用户操作 → 应用 → DBMS → OS 与硬件逐步检查,再确认由谁处理

16/18
SECTION REVIEW

本节知识地图

17/18
KNOWLEDGE MAP

本节问题

  1. 01数据库系统为什么不能只理解为数据库或 DBMS?
  2. 02硬件平台和软件平台各自具体做什么?
  3. 03DBA 的六类职责分别会在什么情况下使用?
  4. 04数据库系统各角色是如何在需求、模式和应用之间分工的?
  5. 05为什么应用程序员可以依据外模式开发,而不必直接处理内模式?
  6. 06教务系统的教学完成度查询会涉及哪些角色与平台?
18/18
SECTION QUESTIONS