🗄️ 第八章 活用数据库-在应用程序中使用数据库
📄 一句话概括

机器学习=不写死规则,让程序从数据里自己找规律——而它的口粮(训练数据)几乎全部从数据库来:数据质量决定 AI 上限。

📝 本节和前面几节的关系

8-7 的分析是人提问、SQL 算答案;本节更进一步——规律让机器自己找(推荐、预测、分类)。但它仍然站在数据库的肩膀上:训练数据从库里抽(8-7 的 OLAP 流水线),学完的结果再写回库里服务应用。

一、机器学习的三种姿态

类型 干什么 数据库角色 书评网站例子
监督学习 有答案的学习(打标签) 存「特征+答案」历史数据 根据历史评分预测你会给某书打几分
无监督学习 无答案找分组 存原始行为数据 把用户聚成「推理迷/技术迷」圈子
推荐系统 个性化排序 存用户-物品互动记录 「看过这本书的人也看了……」

二、与数据库的三次握手

  1. 取:训练数据从库中抽取——通常是 8-7 的分析流水线(不碰在线交易库)
  2. 学:算法在数据上找规律(这步不关数据库的事)
  3. 用:模型预测结果写回数据库(如给每用户存推荐列表),应用照常查询——AI 只是数据库生态的新租客

三、动手 Demo:一个「伪推荐」的最小实现

-- 书评网站的协同过滤雏形:
-- 「给书 X 打 5 分的人,还爱看哪些书?」
SELECT b.title, COUNT(*) AS 共同粉丝
FROM reviews r1
JOIN reviews r2 ON r1.user_id = r2.user_id      -- 同一个人
JOIN books b ON b.isbn = r2.isbn
WHERE r1.isbn = '9787115428028' AND r1.score = 5
  AND r2.isbn != '9787115428028'
GROUP BY b.title
ORDER BY 共同粉丝 DESC
LIMIT 5;

【准备块】5-19 的 book_review 库;这条 SQL 就是推荐系统的细胞——真实推荐只是把 COUNT 换成更聪明的算法。

四、30 秒实验

打开任意购物 App 的推荐栏:它为什么知道你想要什么?——因为你在数据库里留过的每一次浏览/下单(OLTP)都被抽进分析系统(OLAP)喂给了模型(8-8)。推荐不是魔法,是你的行为记录 + SQL 的远房表亲。

五、常见误区

自测三问 1. 机器学习与数据库的三次握手?(取数据训练→模型学习→结果写回库供查询) 2. 为什么说「数据质量决定 AI 上限」?(模型从数据找规律,脏数据练出脏模型——垃圾进垃圾出) 3. 训练数据为什么从 OLAP 流水线抽而不是业务库?(大抽取会拖垮在线交易——8-7 两线分离的延伸)

相关笔记