ADB-06 智能数据处理与大数据

📅 预计 65 分钟 | ⭐ = 重要知识点 | 📌 中英术语见文末
📖 概念为主,ECA 规则等给可运行 SQLite 触发器示例


6.1 数据、信息与知识

从"堆在地上的零件"到"能造车的图纸"

想象一个快递仓库:纸箱上的条形码只是一串数字——数据;快递员扫一下,知道"这是发给张三的书"——有了含义,成了信息;主管看了几百单,总结出"周五下午单量是平时两倍,得多安排两个人"——能指导决策的规律,就是知识。三者递进,是理解"数据库为何走向智能"的总开关。

层次 一句话定义 例子
数据 data 对客观事物的原始记录,是符号、是素材,本身不携带含义 温度计读出的 25;时间戳 2026-08-03 10:23:45
信息 information 经过组织、加工、赋予语义的数据,回答"是什么" 25 变成"今天贵阳 25 度,比昨天低 3 度"
知识 knowledge 可用于决策和预测的规律,回答"怎么办" "连续 3 天降温后,感冒就诊量明显上升"

从数据库角度看更直观:SELECT 温度 ... 查出的 25 是数据;配上日期与"比昨天低 3 度"才是信息;要得到"降温 → 就诊量上升"这类知识,还要在大量信息上统计归纳——这一步已进入后面要讲的数据挖掘范畴。

三个易错点:数据量大 ≠ 信息丰富(一万条没整理的日志不如一句精准摘要);信息多 ≠ 知识正确(提炼会引入噪音,规律也会过时);三者不是静态标签,同一内容在不同上下文可能处于不同层次。

💡 记忆口诀:数据是"原料",信息是"加工品",知识是"配方"——有了配方才能稳定做出一桌菜。

⚠️ 常见错误

  1. 把"数据"当"信息":以为存进数据库的值就是信息。未加工的值只是数据,赋予语义之后才是信息。
  2. 以为数据只能是数字:文本、图像、声音、日志都是数据——数据是"任何可记录、可处理的符号"。
  3. 以为知识一定永远正确:知识是"由经验提炼的规律",可能过时、可能误判,数据库里存的也不等于真相。

6.2 知识表示与推理 ⭐

把知识"装进盒子",机器才拿得到

人的知识靠联想调用,机器只会处理结构化内容。要让机器"拥有"知识,第一步是把它表示(representation)成能存、能算的形式——像把散装知识装进四种盒子,各记一句话定义加一个例子即可。

① 产生式规则(production rule) ⭐:以"如果满足某条件,就推出某结论或执行某动作"的形式描述知识,写作 IF 条件 THEN 结论/动作。例子:IF 气温 < 5℃ THEN 提醒用户防寒;医疗里 IF 发烧 AND 咳嗽 AND 肺部阴影 THEN 疑似肺炎。优点是贴近人思维、模块化、易增删;缺点是规则多了可能冲突,需冲突消解。

② 语义网络(semantic network) ⭐:用节点表示概念、带标签的弧线表示关系的图结构。例子:

[麻雀] --属于--> [鸟] --会飞--> [飞行]

沿弧线遍历即可推理:麻雀属于鸟、鸟会飞 → 麻雀会飞。

③ 框架表示(frame) ⭐:用一个含若干**槽(slot)与槽值(value)**的结构描述一类对象,像"填表"。例子:"学生"框架有姓名、学号、专业、成绩等槽;王五 这个实例就把槽一一填上值。框架还允许"继承"(研究生框架继承学生框架再添"导师"槽)和默认值,比普通二维表表达力强。

④ 本体(ontology) ⭐:对一个领域的概念、概念间关系、公理做形式化、可共享的规范描述,相当于"大家都认同的领域词典 + 关系图"。例子:电商领域统一定义"商品""订单""优惠券"及"订单包含商品"等关系,让不同系统对话用同一套词。它比语义网络更强调"规范、共享、可被机器互操作"。

💡 记忆口诀:产生式是"如果就",语义网络是"一张图",框架是"一张表",本体是"共识词典"。

⚠️ 常见错误

  1. 混淆语义网络和本体:语义网络是"自己画出来"的图;本体强调"被共同认可、可共享的形式化规范",更严格、更工程化。
  2. 以为框架就是数据表:框架还带继承、默认值和附加规则,比普通二维表表达的东西多。
  3. 把产生式规则当普通 if 语句:程序里的 if 是写死的判断;知识库里的规则是知识,可被推理引擎动态调用、组合、消解冲突。

6.3 知识库与知识库系统 ⭐

从"图书馆"到"导师办公室"

传统数据库像图书馆的书架:书摆得整齐,借什么给什么,只会"检索"。知识库更像有经验的导师办公室:他不光有资料,还能根据线索"推"出你没直接问的结论。图书馆只能查,导师会推理——这就是两者本质差异的写照。

知识库(knowledge base,KB):以某种知识表示形式组织起来的知识集合,不只是事实,还包括规则、约束与推理所需的基础。

知识库与传统数据库的主要区别 ⭐:

维度 传统数据库 知识库
存储内容 结构化事实数据(表、记录) 规则与知识(事实 + 规则)
处理方式 检索:SQL 查询,结果就是存进去的 推理:能推出隐含结论,结果可能从未被显式存储
数据模式 表结构(模式)相对固定 表示形式多样(规则/网络/框架/本体)
回答方式 精确匹配 既可精确匹配,也可逻辑推导

体会"检索 vs 推理":数据库存了"张三是学生""学生是人",问"张三是人吗"它查不到——表里没这一行;知识库沿"属于"链一推导就能答"是"。知识库的价值正是能回答没被显式存储的问题。

知识库管理系统(KBMS)的组成:类似 DBMS 是"管理数据的软件",KBMS 是"管理知识的软件",大致三部分:

  1. 知识库:存放事实与规则的存储主体。
  2. 推理机(inference engine):按控制策略推导新结论。常见两种:正向推理从已知事实不断套规则往前推;反向推理从目标倒推需要哪些条件,医疗诊断多用后者。
  3. 知识获取与维护工具、解释与交互接口:帮专家录入、校验、更新知识,并向用户解释"结论怎么推出来的"——可解释性是知识库受信任的原因之一。

💡 记忆口诀:知识库系统 = 知识库(仓库)+ 推理机(大脑)+ 维护工具(管家)。

⚠️ 常见错误

  1. 把知识库当成大号数据库:核心差异在"推理"。没有推理机,一堆规则只是"规则表"。
  2. 以为知识库只存规则不存事实:知识库是"事实 + 规则"的组合,没有事实支撑,推理无从开始。
  3. 忽略知识的一致性维护:规则可能矛盾(一条说"发烧用 A 药",另一条说"A 药对该患者过敏"),维护工具要能发现并处理冲突。

6.4 主动数据库与 ECA 规则 ⭐

让数据库从"被动挨问"变"主动办事"

普通数据库像只等人点单的餐厅:问一句答一句。主动数据库(active database)像盯着后厨的老店长:火候一到(事件)先检查菜熟没熟(条件),再自己上菜(动作)。所谓"主动",就是数据库不只在收到查询时才干活,还会在特定时刻主动执行事先约定的逻辑。

ECA 规则是主动数据库的核心机制,三要素 ⭐:

  • 事件(Event):触发时机,回答"什么时候被唤起"。常见:某表被插入、更新、删除,也可以是定时事件。
  • 条件(Condition):事件发生后先检查的前提,成立才继续,回答"这事该不该管"。
  • 动作(Action):真正执行的操作——写另一张表、发告警、调外部程序,回答"怎么处理"。

三者串成链:事件 → 检查条件 → 条件成立则执行动作

与传统触发器(trigger)的关系:数据库里的触发器就是 ECA 规则在 SQL 世界的直接实现——AFTER INSERT ON 表事件WHEN 条件条件BEGIN...END 里的语句是动作。理解 ECA 就理解了触发器为何这样设计;触发器是把 ECA 落地的具体工具。

下面是一个可直接运行的 SQLite 示例:员工工资被插入或更新后,若新工资低于下限,自动往告警日志写一条记录。

-- 建表:员工(含工资下限)
CREATE TABLE employee (
  id         INTEGER PRIMARY KEY,
  name       TEXT NOT NULL,
  salary     REAL NOT NULL,
  min_salary REAL NOT NULL DEFAULT 3000   -- 该员工的工资下限
);

-- 建表:告警日志
CREATE TABLE alert_log (
  id         INTEGER PRIMARY KEY AUTOINCREMENT,
  emp_name   TEXT,
  message    TEXT,
  created_at TEXT DEFAULT (datetime('now'))
);

-- 触发器 1:新插入员工时,检查工资是否低于下限
CREATE TRIGGER trg_salary_alert_insert
AFTER INSERT ON employee                       -- E: 事件 = 插入新员工
WHEN NEW.salary < NEW.min_salary               -- C: 条件 = 新工资 < 下限
BEGIN                                          -- A: 动作 = 写一条告警日志
  INSERT INTO alert_log(emp_name, message)
  VALUES (NEW.name, '工资 ' || NEW.salary || ' 低于下限 ' || NEW.min_salary);
END;

-- 触发器 2:员工工资被更新时,同样检查并告警
CREATE TRIGGER trg_salary_alert_update
AFTER UPDATE OF salary ON employee             -- E: 事件 = 修改工资列
WHEN NEW.salary < NEW.min_salary               -- C: 条件
BEGIN                                          -- A: 动作
  INSERT INTO alert_log(emp_name, message)
  VALUES (NEW.name, '工资 ' || NEW.salary || ' 低于下限 ' || NEW.min_salary);
END;

-- 正常插入:工资 8000 ≥ 下限 3000,条件不成立,不触发
INSERT INTO employee(name, salary, min_salary) VALUES ('张三', 8000, 3000);

-- 触发告警:工资 2500 < 下限 3000,条件成立,写入告警日志
INSERT INTO employee(name, salary, min_salary) VALUES ('李四', 2500, 3000);

-- 查询告警日志
SELECT id, emp_name, message FROM alert_log;
-- 输出:
-- 1|李四|工资 2500.0 低于下限 3000.0

(说明:SQLite 的一个触发器只对应一种事件,所以分别建 INSERT 和 UPDATE 两个,两者 ECA 结构相同。NEW 表示新插入或更新后的行;-- 输出: 后是预期结果。想动手试,可粘贴进 sqlite3 命令行或 Python 的 sqlite3 模块。)

本例与 ECA 的对应关系:

ECA 要素 在本例中的位置 含义
E 事件 AFTER INSERT ON employee / AFTER UPDATE OF salary "有人插入新员工 / 修改了工资列"
C 条件 WHEN NEW.salary < NEW.min_salary 新工资低于下限才管,否则当没发生
A 动作 INSERT INTO alert_log ... 自动记下"谁、多少",供后续处理

⚠️ 常见错误

  1. 把"事件"当"条件":事件是"操作发生了"(INSERT 执行了),条件是"发生后要不要管"(工资是否低于下限)。事件在前、条件在后。
  2. 忽略 AFTERBEFORE 的差别AFTER 在新值写入后触发,适合记录告警;BEFORE 在写入前触发,适合校验拦截。选错时机行为就错。
  3. 触发器写成死循环:如果动作里又去修改触发它的同一张表,可能无限触发。让动作作用于另一张表(如本例的告警日志)就能绕开。

6.5 数据挖掘概述 ⭐

在矿山里"筛出金砂"

数据挖掘(data mining)是在海量数据中自动发现潜在、有用、先前未知的模式与规律——像淘金者从砂石里筛出金砂。它不回答"表里存了什么"(那是查询),而回答"数据背后藏着什么规律"。本模块介绍三种经典方法。

① 分类(classification) ⭐:事先给定若干已知类别,让模型从带标签的历史样本学规则,把新样本归入其中一个类别(有监督)。例子:银行用标好"按时还 / 违约"的历史记录训练模型,对每个新贷款客户判定"低风险 / 高风险"。关键是有"老师"——标签预先存在。

② 聚类(clustering) ⭐:事先不知道类别,只依据样本之间的相似度把数据自动分成若干组,做到"组内相似、组间相异"(无监督)。例子:电商按购买行为自动把顾客分成"高频回购型""价格敏感型""新品尝鲜型"——没人预先定义这三类,是算法自己分出来的。与分类的关键区别:分类有老师(标签),聚类没有。

③ 关联规则(association rule) ⭐:发现"买了 A 也常常买 B"这类共现规律,写成 A → B,常用支持度(A 和 B 同时出现的比例)与置信度(买了 A 的人中又买 B 的比例)衡量。例子:经典购物篮分析——超市发现"买啤酒的顾客中很多也买尿布",于是把两者放相邻货架;再如"买手机"→"买手机壳"。注意它只说明"常一起出现",不自动证明因果

💡 记忆口诀:分类是"对号入座",聚类是"物以类聚",关联是"出双入对"。

⚠️ 常见错误

  1. 混淆分类与聚类:分类有预设标签(有监督),聚类没有(无监督)。看到"按已知类别归新样本"是分类,看到"自动分成几组"是聚类。
  2. 把关联当因果:"啤酒与尿布"只是统计共现,不代表"啤酒导致买尿布"。挖掘结论必须结合业务验证。
  3. 以为挖掘结果一定正确:挖掘出的是统计规律,可能有噪音、可能过拟合(训练数据上好、换新数据失效),需要评估验证。

6.6 大数据技术应用 ⭐

当数据多到"一张表装不下"

前面谈的数据都还在"一张表"的范畴。当数据的量、速度、种类都超出现有工具的处理能力时,就进入大数据的地盘——好比家里书架换成了图书馆,单靠一本登记册管不过来,必须换成"分馆 + 编目系统 + 专门管理员"这套架构。

大数据 4V 特征 ⭐:

特征 英文 含义 例子
规模 Volume 数据量巨大,常以 TB/PB 计 一天新增数亿条用户访问日志
速度 Velocity 产生与处理速度快,要求实时或近实时 股票行情、监控告警每秒写入
多样 Variety 类型多样:结构化、半结构化、非结构化 文本、图片、视频、JSON 日志并存
价值 Value 总量大但单位价值密度低,需挖掘才体现价值 海量日志里只有极少数是故障信号

云计算与分布式存储:大数据靠"一个人扛不动,就一群人扛"。**云计算(cloud computing)**把计算与存储变成按需获取的服务(租虚拟机、租对象存储),好比"用电不用自己建发电厂";**分布式存储(distributed storage)**把大文件切成数据块分散存储、保留多副本,防单机损坏丢数据。二者是承载大数据的地基。

Hadoop 生态简述 ⭐(记"三兄弟分工"):

  • HDFS(Hadoop Distributed File System,分布式文件系统):管。把大文件切成数据块、分散存储到集群并保存副本,解决"文件太大、怕单机损坏"。
  • MapReduce(计算模型):管。"分而治之"的框架:Map(映射)把任务拆散并行处理,Reduce(归约)汇总中间结果。适合批量统计,如一天算完全站访问量。
  • Hive(数据仓库工具):管。把 SQL 自动翻译成 MapReduce 作业,让写 SQL 的人也能处理大数据,是"SQL 翻译官 + 数据仓库"。

社交网络大数据应用举例:社交媒体上人与人的关系本身就是一张巨大的图,是大数据的典型舞台。常见应用:个性化推荐(据浏览与好友行为推内容)、热点话题发现(从海量转发识别突发词)、社群划分(按互动关系自动分组,对应 6.5 的聚类)、舆论与情感分析(从评论文本判别情绪)。前面的分布式存储、MapReduce、数据挖掘方法在此被组合成整体方案。

💡 记忆口诀:4V 记"量大、快、杂、值";Hadoop 三兄弟记"HDFS 存、MapReduce 算、Hive 查"。

⚠️ 常见错误

  1. 漏记或替换 4V:4V 是 Volume / Velocity / Variety / Value。有扩展说法会加"真实性 Veracity",但本模块以教材主线的 4V 为准。
  2. 以为大数据就是"数据量大":量(Volume)只是四分之一,速度、多样、价值同属 4V,缺一不可。
  3. 混淆 HDFS 与 MapReduce 的职责:HDFS 管"存"、MapReduce 管"算"、Hive 是"SQL 查询入口"。分工不同,别张冠李戴。

🧠 记忆口诀

  • 数据 → 信息 → 知识:原料 → 加工品 → 配方。
  • 四种知识表示:产生式"如果就"、语义网络"一张图"、框架"一张表"、本体"共识词典"。
  • 知识库系统 = 知识库(仓库)+ 推理机(大脑)+ 维护工具(管家)。
  • ECA = 事件(啥时管)→ 条件(管不管)→ 动作(怎么管)。
  • 数据挖掘三兄弟:分类"对号入座"、聚类"物以类聚"、关联"出双入对"。
  • 大数据 4V:量大、快、杂、值。
  • Hadoop 三兄弟:HDFS 存、MapReduce 算、Hive 查。

⭐ 考点清单

  1. 数据、信息、知识的定义与递进关系(能举例区分三者)
  2. 四种知识表示方法:产生式规则、语义网络、框架、本体——各一句话定义 + 例子
  3. 知识库 vs 传统数据库:存知识/规则 vs 存数据;检索 vs 推理
  4. 知识库管理系统组成:知识库 + 推理机 + 维护/交互工具
  5. ECA 规则三要素(事件 / 条件 / 动作)及其与触发器(trigger)的对应关系
  6. SQLite 触发器体现 ECA 的机制(AFTER / WHEN / BEGIN...END 分别对应什么)
  7. 数据挖掘三种方法:分类、聚类、关联规则(定义 + 例子 + 分类与聚类的区别)
  8. 大数据 4V:Volume / Velocity / Variety / Value
  9. 云计算与分布式存储的基本思想
  10. Hadoop 生态:HDFS(存储)、MapReduce(计算)、Hive(SQL 查询入口)
  11. 社交网络大数据的典型应用场景

📌 中英术语表

中文 English 记忆点
数据 data 原始符号
信息 information 有语义的数据
知识 knowledge 可用于决策的规律
知识表示 knowledge representation 把知识结构化
产生式规则 production rule IF-THEN
语义网络 semantic network 节点 + 带标签的弧
框架 frame 槽与槽值
本体 ontology 领域共识规范
知识库 knowledge base(KB) 事实 + 规则
推理机 inference engine 推导新结论
正向推理 / 反向推理 forward / backward reasoning 从事实推 / 从目标倒推
主动数据库 active database 主动响应事件
ECA 规则 Event-Condition-Action rule 事件-条件-动作
触发器 trigger ECA 的 SQL 实现
数据挖掘 data mining 从数据中发现规律
分类 classification 有标签,对号入座
聚类 clustering 无标签,物以类聚
关联规则 association rule 买 A 常买 B
购物篮分析 market basket analysis 啤酒与尿布
支持度 / 置信度 support / confidence 关联规则的度量
大数据 big data 4V
云计算 cloud computing 按需获取计算资源
分布式存储 distributed storage 分块存储、多副本
HDFS Hadoop Distributed File System 分布式文件系统
MapReduce MapReduce Map 拆 / Reduce 合
Hive Hive 把 SQL 翻译成 MapReduce