ADB-01 高级数据库导论

📅 预计 45 分钟 | ⭐ = 重要知识点 | 📌 中英术语见文末
📖 本模块偏概念与脉络,少代码、多图示与对比


1.1 数据库技术发展历程:四代演进

一本"账本"的进化史

想象你经营一家小书店。最开始,你拿一个本子记订单,一页一单——这就像数据库发展早期的文件管理阶段:数据躺在文件里,谁要用谁自己翻,没有统一的"管家"。

后来书多了、店员也多了,各人记各人的本子,结果同一本书在两个本子上价格不一样。这时你意识到,需要一套"规矩"来统一管数据——这就是**数据库管理系统(DBMS)**登场的理由。数据库技术自此大约经历了四个阶段,每一代都解决上一代遗留的问题,同时又留下新的问题,推动下一代出现。

四个阶段整体对比:

阶段 数据组织 代表 主要解决 遗留问题
① 初级文件管理 文件 各程序自己的数据文件 把数据存起来、读出来 冗余、不一致、程序与数据绑定
② 层次 / 网状 树 / 图 IMS(层次)、DBTG(网状) 结构化存储、支持共享 结构难改、导航式访问、缺统一理论
③ 关系模型 二维表 关系数据库 + SQL 简单直观、逻辑物理分离、有理论 复杂对象、多媒体、海量并发表达乏力
④ 新一代数据库 多模型并存 对象、分布式、仓库、多媒体等 应对多样化新需求 标准分散、技术路线分化

阶段一:初级文件管理阶段(File System)

比喻:把每张订单抄在独立卡片上,按日期排进抽屉。存取全靠自己动手,这就是早期的文件系统

这一阶段的核心特点与问题:

  • 数据与程序绑定:每个程序只管自己的文件,文件格式由程序自定义,换个程序就认不出来。数据没有独立性——程序变了,数据文件的读法也得跟着变。
  • 数据冗余(redundancy):同一份数据(比如客户地址)在多个文件里重复出现,白白占空间。
  • 数据不一致(inconsistency):地址在一个文件里改了、另一个没改,同一个客户出现两个地址,真伪难辨。

这一阶段解决了"把数据存下来、读出来"的问题,但没有统一的数据库管理系统,数据靠程序员各自维护,共享性差。

阶段二:层次与网状数据库(Hierarchical / Network)

比喻:把卡片按"树"整理——总店之下有分店,分店之下有门店,只能从上往下一层层找。这就是层次模型,像一棵倒挂的树,每个节点只有一个父节点。

但现实中的关系常常是"多对多":一个学生选多门课,一门课又有多个学生。树表达不了这种交叉,于是出现网状模型,像一张图,任意两个节点之间都能连线,允许一个节点有多个父节点。

  • 解决了:数据实现了结构化存储,有了专门的数据管理程序,支持一定程度的数据共享。
  • 遗留:结构一旦建好就很难改(增删一个节点牵连大量指针);用户要"顺着结构导航"自己找数据,使用门槛高;缺少统一的数学理论基础。

阶段三:关系模型与关系数据库 ⭐

比喻:把数据整理成一张张二维表格,行是记录、列是属性。你看数据就是看表,不必关心它在磁盘里怎么摆。

1970 年,E.F. Codd 提出关系模型(relational model),把数据统一看作二维表(关系),用集合论和关系代数打底;随后诞生标准语言 SQL。用户只声明"我要什么"(select),不用管"怎么找",找法交给数据库优化。

它成为主流的原因有三点:

  1. 简单直观:二维表人人都看得懂,用户心智负担低。
  2. 逻辑与物理分离:表的"外表"与底层存储解耦,存储方式随便换,查询写法不变,数据独立性强。
  3. 有坚实的理论基础:关系代数、范式(normalization)理论让表设计有章可循,能系统消除冗余与异常。

解决/遗留:解决了共享难、访问难、设计无据的问题;遗留的是——表达复杂对象(嵌套、继承、多媒体)吃力,面对海量并发和非结构化数据力不从心,这正好交给第四阶段。

阶段四:新一代数据库技术

比喻:社会需求变多样,一种"表格"装不下所有场景,数据库界开枝散叶,各自服务一类客人。

新一代不是单一产品,而是多种技术并存:

  • 面向对象数据库(OODB):用对象、类、继承组织数据,贴近面向对象编程。
  • 对象关系数据库(ORDB):在关系数据库上扩展对象能力,兼顾"关系"与"对象"。
  • 分布式数据库(DDB):数据分散在多台机器,逻辑上仍像一个库。
  • 数据仓库与数据挖掘:面向分析决策,而非日常事务。
  • 多媒体数据库:管理图像、音频、视频等非结构化数据。

这一阶段的"遗留问题"是标准分散、路线分化——没有一家独大,需要用户按场景选型。这正为"高级数据库"这门课划出了疆域。

⚠️ 常见错误

  1. 把"文件管理"当成"数据库":早期文件系统没有统一的存储管理、查询语言和并发控制,数据靠程序各自维护,它不是数据库管理系统。
  2. 混淆层次模型与网状模型:层次模型是"树",严格自上而下、每节点单父;网状模型是"图",允许多父、表达多对多。判断标准是"有没有多对多"。
  3. 以为 SQL 就是关系模型:关系模型是理论(二维表 + 关系代数),SQL 是实现它的标准语言,两者是"理论 vs 实现"的关系,不能划等号。

1.2 高级数据库:内涵与外延

从"高级自行车"说起

比喻:学完"普通自行车",再来看"高级自行车"——山地车、公路车、折叠车。它们都叫自行车,却针对不同路况加了不同能力:减震、变速、可折叠。高级数据库也是如此:它不是一个具体产品,而是"传统关系数据库之外的能力扩展"的总称。

内涵(它是什么):以数据库基本原理为基础,融合新的需求与新技术,扩展出的数据库理论与应用技术的总称。它仍然是"数据库",但处理的对象、数据模型和应用场景都比传统关系数据库更复杂、更"高级"。

外延 / 范畴边界(它包含什么),可以从三个层面看:

  • 数据模型层面:从二维表扩展到对象、XML、图、时态、空间等模型。
  • 系统结构层面:从单机扩展到分布式、并行、云计算。
  • 处理需求层面:从日常增删改查(OLTP)扩展到分析(OLAP)、数据挖掘、主动触发、协同工作。

它为什么会出现:一句话,传统关系数据库有三个方向"够不着"——

  1. 表达力不够:复杂对象、嵌套结构、语义关系表达困难。
  2. 处理能力不够:海量数据、高并发、实时分析吃不消。
  3. 应用形态跟不上:Web、移动、智能化、协同化等新应用需要新能力。

所以高级数据库是"需求倒逼"的产物:应用往前走,数据库必须跟上。它不是要取代关系数据库,而是在其基础上长出新的枝干。

⚠️ 常见错误

  1. 把"高级数据库"当成"关系数据库的升级版":它是对象关系、分布式、数据仓库、知识库、主动数据库等一大类技术的总称,不是某一个产品的升级。
  2. 以为高级数据库淘汰了关系数据库:关系数据库至今仍是处理结构化核心数据的主力,高级数据库多是在其上扩展或与之共存。
  3. 混淆"内涵"与"外延":内涵回答"它是什么"(本质),外延回答"它包含哪些"(范围)。概念辨析题常在这两个词上设区分点。

1.3 应用特征:"四化"

服务大厅来了四类新客人

比喻:数据库像一个服务大厅。早年它只接待一种客人——本单位的事务处理。现在客人变多了:有在外地办事的,有希望自动办公的,有要看大局报表的,有一群人协作的。大厅得为不同客人开不同窗口。

1. 网络化(Networked)⭐

应用跑在网络上,数据分布在不同节点,查询可能跨机器、跨地域完成。

例子:网上购物平台——订单、库存、用户信息分布在不同服务器甚至不同城市,下单时要跨节点核对库存。典型支撑技术是分布式数据库

2. 智能化(Intelligent)

数据库不只是被动"存/取",还要能"主动"响应或"带知识"地处理。

例子主动数据库——银行账户余额低于阈值时,数据库自动触发提醒动作;知识库——专家系统里存的不只是数据,还有规则,如"若温度 > 40℃,则发出报警"。

3. 多维化(Multidimensional)

面向分析决策,把事务数据按多个维度组织,方便从不同角度观察。

例子数据仓库 + OLAP——超市按"时间 × 地区 × 商品类别"三维汇总销量,经理随时可以切片看"华东区上月饮料卖了多少钱"。传统事务库只记"一笔一笔的订单",多维化则把它们折叠成可随意观察的立方体。

4. 协同化(Collaborative)

支持多人、多系统在共享数据上协同工作。

例子计算机支持的协同工作(CSCW)——多位编辑同时编辑一份文档,数据库要协调并发修改、处理版本与冲突,保证大家改的是"同一份"。

⚠️ 常见错误

  1. 把"网络化"等同于"能联网":网络化特指数据分布与跨节点的分布式处理,不是"网站能访问数据库"这么表面的意思。
  2. 混淆智能化和多维化:智能化偏"主动、带规则",多维化偏"分析、多维视图"——一个管"怎么想",一个管"怎么看"。
  3. 把 OLAP 当成日常事务处理:OLAP 面向分析、以只读查询为主;传统关系数据库的日常事务(OLTP)是频繁的小读写。二者定位相反。

1.4 研究方向概览

一桌宴席,各上一道菜

比喻:高级数据库不是一道菜,而是一桌宴席,每道菜服务一类客人。下面把六道主菜逐一上桌,也为后续模块留下钩子——每个方向都先记住一句话:"它解决什么问题"。

1. 分布式数据库(Distributed Database)
解决"数据分散在多台机器上,还要像用一个库一样查询、并保持一致"的问题。
(引子:后续讲分片、复制、分布式事务的协调。)

2. 对象关系与面向对象数据库(ORDB / OODB)
解决"传统二维表表达不了对象、继承、复杂类型"的问题。
(引子:后续讲类型构造器、嵌套表、对象视图。)

3. 时态与空间数据库(Temporal / Spatial Database)
解决"数据要带时间维(历史变化)或空间维(地理坐标)"的问题,如股票历史行情、城市 GIS 地图。
(引子:后续讲时态数据模型、空间索引。)

4. 知识库与主动数据库(Knowledge Base / Active Database)
解决"数据之上还要有规则、能主动触发动作"的问题,如专家系统、实时监控报警。
(引子:后续讲产生式规则、ECA 规则——事件-条件-动作。)

5. 数据仓库与数据挖掘(Data Warehouse / Data Mining)
解决"从海量历史数据中提取决策信息和隐藏规律"的问题。
(引子:后续讲星型模型、OLAP 操作、关联规则与聚类分类。)

6. 大数据技术(Big Data)
解决"数据规模与类型超出传统工具处理能力"的问题。
(引子:后续讲分布式存储与并行计算,即常说的 Hadoop / Spark 家族。)

⚠️ 常见错误

  1. 把数据仓库当成"更大的数据库":数据仓库面向分析、按主题集成历史数据;日常事务库面向操作、记当前状态。前者"分析历史",后者"支撑业务"。
  2. 混淆时态数据库与普通数据库:时态数据库的关键是维护"随时间变化的历史",而不只是存一个当前值。
  3. 以为大数据只是"数据量大":大数据还强调类型多(结构化、半结构化、非结构化)、产生快(近实时)、价值密度低,是"规模 + 多样 + 速度"的组合。

1.5 大数据时代背景

当"水库"变成"大江大河"

比喻:传统数据库像一座水库——水位可控、结构规整。到了大数据时代,数据像大江大河:流量巨大、来源杂、泥沙俱下、涨落快。水库那套"闸门 + 渠道"的管法需要跟着改。

几个关键变化(概述,不展开):

  1. 从"集中"到"分布":数据分散在成千上万台机器上,由分布式文件系统统一管理。
  2. 从"结构化"到"多样化":日志、图片、视频、传感器流等非结构化数据大量涌入,二维表装不下。
  3. 从"查询"到"计算":需求从"取一条记录"变成"对全量数据做统计、训练模型",数据库与计算框架(MapReduce 类)深度结合。
  4. 从"单机升级"到"横向扩展":靠加机器(scale-out)而非升级单机硬件(scale-up)来扛规模,这是成本与容错共同决定的。
  5. 从"强一致"到"妥协一致":为保证可用性,许多系统接受最终一致(eventual consistency),如分布式缓存、部分 NoSQL 系统。

一句话概括:数据库技术从"一台机器上的规范管理"走向"一群机器上的协同计算"。关系数据库仍是根基,但新架构(NoSQL、云数据库、湖仓一体)不断涌现——这正是高级数据库课程展开的时代背景。

⚠️ 常见错误

  1. 把大数据等同于 NoSQL:NoSQL 是大数据的一条技术路线,不是全部;很多大数据场景仍在使用关系数据库与 SQL。
  2. 以为大数据时代关系数据库被淘汰:关系数据库在结构化核心数据上依然主力,只是单靠它不够用。
  3. 混淆 scale-up 与 scale-out:scale-up 是升级单机(加内存、换 CPU),scale-out 是增加机器数量横向扩展——记住"up 向上换,out 向外加"。

🧠 记忆口诀

  1. 发展四阶段:"文件 → 树网 → 二维表 → 百花齐放"。文件管得散、树网难导航、关系成主流、新代看需求。
  2. 四化:"网、智、多、协"——网络化管分布,智能化管主动,多维化管分析,协同化管协作。
  3. 高级数据库为什么出现:传统关系库"表达力不够、处理力不够、形态跟不上",需求倒逼扩展。
  4. 六个研究方向:"分布、对象、时空、知识、仓库、大数据"——每个方向只记"解决什么问题",后面模块再逐个展开。

⭐ 考点清单

  1. 数据库发展四阶段:各阶段名称、代表模型、解决什么问题、遗留什么问题。
  2. 层次模型(树)与网状模型(图)的结构区别,判断标准是"有无多对多"。
  3. 关系模型成为主流的原因:二维表直观、逻辑与物理分离、有数学理论基础。
  4. 关系模型(理论)与 SQL(语言)的区分,两者不能划等号。
  5. 高级数据库的内涵(是什么)、外延(包含哪些)、出现原因(需求倒逼)。
  6. 应用特征"四化":网络化、智能化、多维化、协同化,各配一个例子。
  7. 六个研究方向各自"解决什么问题":分布、对象、时空、知识、仓库、大数据。
  8. 大数据时代的变化要点:分布式存储、多样化数据、从查询到计算、横向扩展、最终一致。

📌 中英术语表

中文 English 记忆点
数据库 database 有组织的数据集合
数据库管理系统 Database Management System (DBMS) 管存取、查询、并发、恢复的系统
文件系统 file system 早期阶段,程序自己管文件
数据冗余 data redundancy 同一数据多处重复
数据不一致 data inconsistency 各处数据对不上
数据独立性 data independence 程序与数据彼此不牵连
层次模型 hierarchical model
网状模型 network model 图,多对多
关系模型 relational model 二维表
关系数据库 relational database RDB
结构化查询语言 Structured Query Language (SQL) 关系库标准查询语言
范式 normal form 规范表设计的理论
面向对象数据库 object-oriented database (OODB) 对象、类、继承
对象关系数据库 object-relational database (ORDB) 关系库 + 对象扩展
分布式数据库 distributed database (DDB) 多机分布、逻辑一体
数据仓库 data warehouse 面向分析
数据挖掘 data mining 从数据中找规律
联机分析处理 OLAP 多维分析
联机事务处理 OLTP 日常增删改查
多媒体数据库 multimedia database 图像、音频、视频
主动数据库 active database 事件触发动作
知识库 knowledge base 数据 + 规则
时态数据库 temporal database 带时间维
空间数据库 spatial database 带空间维
事件-条件-动作 Event-Condition-Action (ECA) 主动数据库规则
计算机支持的协同工作 Computer-Supported Cooperative Work (CSCW) 协同
大数据 big data 海量、多样、快速
横向扩展 scale-out 加机器
纵向扩展 scale-up 升级单机
最终一致 eventual consistency 弱一致,最终收敛