☰
四课联动复习手册:数据可视化、数据科学、操作系统、数据库高频考点全梳理
2026/9/30 12:00:05 网站建设 项目流程

2021年考试周前,我的桌面上铺开的是四门课的PPT:数据可视化、数据科学导论、操作系统(OS)、数据库。单看每一门内容都不算少,合在一起就有点吓人——数据可视化要记各种图和编码规则,数据科学导论动不动就是流程和模型,OS全是进程调度、死锁和内存管理,数据库又是一整袋SQL和范式理论。更麻烦的是它们之间还有交叉,比如可视化要从数据库里取数,取数过程又离不开数据科学里的清洗思路,清洗完的数据要给模型用,模型跑起来又被OS的并发知识连着。当时我给自己定的目标是:不追求每一处细节都背下来,先把高频考点和底层逻辑抓稳,再用题去验证。最后我把四门课的知识点、历年试题和个人易错点整理成了一份复习手册,考完回头看,这套整理方法比单纯翻书有用很多。这篇文章就是那份手册里最有价值的部分,适合正在备考这几门课、或者想快速搭起知识框架的同学。

1. 课程全景与复习策略

1.1 四门课在学什么、为什么会同时考

先说清楚这四门课在知识结构里的位置。数据可视化解决的是"怎么把数据讲清楚",核心是视觉编码和后端工具的配合;数据科学导论解决的是"从数据里怎么挖出结论",像一条流水线,从取数、清洗一直延伸到建模和解释;数据库解决的是"数据存在哪、怎么高效查",关系模型、SQL和事务是主战场;操作系统解决的是"底层资源怎么调度",进程、内存、文件系统都是资源管理的具体体现。

很多人复习时把这四门课当独立科目处理,但我建议把它们看成一条链路:数据科学导论管流程,数据库管取数,可视化管呈现,操作系统管底层支撑。考试中经常会有跨课程的题目,比如"请描述从数据库提取用户行为数据到前端可视化的完整过程",这种题就是在考你能否把四门课串起来。复习时心里装着这条链路,遇到综合题就不会懵。

1.2 我的复习时间线与优先级排序

当时我用了三周时间,大致分三遍走。第一周扫读课件,只做框架不做笔记,目标是知道每门课有哪几大模块、老师强调过哪些重点;第二周针对框架逐章填充,整理知识点清单和易错点;第三周集中刷题,用真题和课后题检验,把不会的题对应回知识点重新看。这个方法对课程多、时间紧的情况特别有效,因为它避免了"看了后面忘了前面"。

优先级方面,我的排序是:数据库和OS优先,因为它们计算题多、知识点密集,且一旦理解了就很难忘;数据可视化次之,因为它理论部分需要背的细节多,但整体难度不大;数据科学导论放在最后冲刺,因为它的题目大多数是流程题和概念题,短期内可以突击提升。如果你是考前两周才开始,也建议按这个顺序取舍,先把容易拿分的计算题练熟,再背概念。

课程复习优先级主攻题型建议投入时间占比
数据库高SQL书写、范式分解、事务概念30%
OS高调度计算、PV操作、页面置换30%
数据可视化中图表选型、视觉编码、实操配置20%
数据科学导论中流程设计、评估指标、案例分析20%

2. 数据可视化:理论是答题的骨架

2.1 视觉编码与图表选型是核心考点

数据可视化这门课,理论和实操往往三七开。理论部分最重要的就是"视觉编码"和"图表选型"。视觉编码说白了,就是数据中的每个属性映射到图形上的哪种元素——点的位置、线段的长度、形状、颜色、面积、角度,这些都是视觉通道。考试最常见的出题方式,是给你一份数据和几个变量,问你该用哪种视觉通道去表达。

这里有一个经典的考点:视觉通道的优先级排序。学界有一个公认的结论,人对"位置"的感知最敏锐,其次才是长度、角度、面积,颜色饱和度和色相的排序相对靠后。原因很简单,人眼处理空间信息是本能,散点图上两个点的上下左右关系一眼就能看出来,而颜色从深蓝到浅蓝的差异则需要仔细分辨。作答时如果遇到"为什么这里用位置而不是颜色"这类题,就把这个逻辑讲清楚:先用位置表达最重要的变量,再用颜色等次要通道表达次要变量。

图表选型也是高频题,而且常和生活案例绑定。比较类别数据用柱状图或条形图,时间趋势用折线图,两个连续变量的关系用散点图,连续特征的分布用直方图或箱线图,占比关系才考虑饼图。注意饼图是有争议的,类别一多就难分辨,考试里如果给一堆类别的占比,建议优先答"条形图"而不是"饼图"。地理数据用地图加颜色深浅,多维数据用雷达图或平行坐标。答题时把"数据类型-视觉通道-图表类型"三者对应起来写,逻辑就很完整。

2.2 ECharts实操:记住这几个关键配置就够用

2021年我们课程设计主要用ECharts,考试里也出现过让写核心配置的题。ECharts的配置对象里,最核心的就是xAxis、yAxis、series三个字段。柱状图最基础的配置长这样:

option = { xAxis: { type: 'category', data: ['周一', '周二', '周三'] }, yAxis: { type: 'value' }, series: [ { type: 'bar', data: [120, 200, 150] } ] };

我这里给的是一个最小可运行配置。xAxis的type是category表示分类轴,data直接给类目数组;yAxis的type是value表示数值轴,不用写data。series里的type决定图形类型,bar是柱状,line是折线,scatter是散点;data是数据数组。实际考试很少要求把整段代码默写出来,但经常让你判断"如果要改成折线图,需要改哪几个字段"——答案就是series里的type从bar改成line,其他不用动。

如果要展示两个维度,比如降水量和气温叠加,可以把series数组改成两个对象,一个type为bar,一个type为line,再设置不同的yAxisIndex分别对应左右两个Y轴。这个知识点在可视化考试里出现过不止一次,值得留意。此外,tooltip是悬浮提示,legend是图例,title是标题,这些都有默认值,优先记xAxis、yAxis、series三者就够了。

2.3 可视化方案设计题怎么答才不丢分

设计题通常是给一份数据背景,让你提出可视化方案。比如"某城市一年的气温和降水量数据,请设计可视化方案并说明理由",这种题有固定的回答套路。第一步写清楚数据类型,气温是连续数值、降水量也是连续数值,时间维是周期性的有序数据;第二步选图表类型,气温用折线、降水量用柱状,两者组合成双Y轴图;第三步说明视觉编码,横轴放时间,左Y轴放气温,右Y轴放降水量,用颜色区分两条序列;第四步补充交互设计,悬浮显示具体数值,加图例方便对照。

另一个常考点是"识别图表中的误导性设计"。截断Y轴会夸大波动幅度,3D柱状图会让人误判数值高度,颜色过度丰富会干扰信息读取。这些在复习时都要当成简答题材准备,答题时先指出问题,再给修改方案,分条写才容易拿分。

3. 数据科学导论:流程意识比背概念重要

3.1 把OSEMN流程刻进脑子里

数据科学导论这门课,最核心的骨架就是数据科学流程。我当时复习时把OSEMN五个步骤背得滚瓜烂熟,因为几乎所有案例分析题都能套它:Obtain(获取数据)、Scrub(清洗数据)、Explore(探索数据)、Model(建模)、iNterpret(解释结果)。考试里最常见的大题就是"给你一个业务场景,请设计数据科学项目流程",这种题其实就是把OSEMN展开,再结合场景补充细节。

以"用户流失预测"为例,完整的答题思路应该是:Obtain阶段从数据库或日志系统获取用户注册信息、登录行为、消费记录;Scrub阶段处理缺失值和异常值,比如把登录次数为负的记录删掉、把缺失的付费金额按均值填补;Explore阶段做描述性统计和相关性分析,看看哪些特征和流失相关;Model阶段选择分类模型,用历史数据训练并评估;Interpret阶段输出结论,比如"连续30天未登录且消费金额下降的用户流失概率高",并交给业务方决策。答题时把每一步都写具体,不要干巴巴地只写"数据清洗"四个字,场景里的细节才是得分点。

3.2 统计与机器学习基础考点

数据科学导论里的统计基础,经常考的是描述性统计和概率分布。均值、中位数、方差、标准差这些是基本盘,正态分布、二项分布也常出现在选择题和简答题里。有一个频繁踩坑的点:很多同学把"相关性"和"因果性"混为一谈。考试如果给你"冰淇淋销量与溺水人数正相关"这种案例,正确答案是说明这是相关关系,可能存在共同原因比如天气炎热,不能直接推出"冰淇淋导致溺水"。答这种题时,把"相关不等于因果,需要实验或更严格的因果推断来验证"这句话写全,基本就稳了。

机器学习基础部分,监督学习和无监督学习是必考点。监督学习有标签,做分类和回归,常见算法有线性回归、逻辑回归、决策树;无监督学习没有标签,做聚类和降维,常见算法有K-Means和PCA。模型评估指标也要记牢:准确率、精确率、召回率、F1。其中精确率和召回率的关系常考,精确率看预测为正例的样本中有多少预测对了,召回率看真实正例中有多少被找到了。如果题目说"垃圾邮件过滤宁可错杀也不放过",那就要高召回率;如果"推荐系统宁可漏推也不推错",那就要高精确率。这套逻辑想明白了,具体公式就不容易背乱。

3.3 过拟合与数据清洗的重点题型

过拟合几乎是每次考试必出现的概念题。标准答案要点是:模型在训练集上表现很好,但在测试集上表现差,说明泛化能力不足;原因通常是模型过于复杂或训练数据太少;解决办法包括增加训练数据、减少特征维度、使用正则化、交叉验证、简化模型结构。答题时把这些点按"是什么-为什么-怎么解决"的顺序组织,就能拿到大部分分数。

数据清洗的题也常考。比如"一份数据里有缺失值、重复记录、异常值,请说明处理步骤"。我的答题模板是:先处理缺失值,根据缺失比例决定删除或填补;再检测异常值,用3σ或IQR方法识别并进一步确认;然后删除重复记录;最后统一格式和数据类型,比如日期格式统一、类别变量做编码。这里要提醒一句,异常值不一定是错误,也可能是真实的极端业务场景,不能无脑删除,答题时提一句"需要结合业务判断"会显得更专业。

4. 操作系统:四大模块是主战场

4.1 进程线程与同步互斥:PV操作必须动手写

OS的复习我分成了四大模块:进程线程、调度与死锁、内存管理、文件系统。进程与线程的考点非常固定:进程是资源分配的基本单位,拥有独立的地址空间;线程是CPU调度的基本单位,同一进程内的线程共享代码、数据和文件,但拥有各自的栈和寄存器。状态转换图也是必考:新建到就绪、就绪到运行、运行到就绪、运行到阻塞、阻塞到就绪。很多人会漏掉"运行到就绪",这是时间片用完时发生的状态切换,答题时别丢这个分支。

同步互斥部分,信号量和PV操作是重头戏。P操作是申请资源,资源数减一,小于零就阻塞;V操作是释放资源,资源数加一,唤醒等待队列中的进程。生产者消费者问题是经典题目:设置三个信号量,empty表示空缓冲区的数量,full表示已填满缓冲区的数量,mutex用于互斥访问缓冲区。写伪代码时要注意顺序,一般是先执行P(empty)再P(mutex),不能颠倒,否则可能造成死锁。我当时复习时把生产者消费者、读者写者问题各手写了两遍,考试时遇到类似题就非常踏实。

4.2 调度算法与死锁:计算题要能把公式写出来

调度算法这部分,几乎必考一道计算题。FCFS先来先服务,规则简单但平均等待时间通常较长;SJF短作业优先,平均等待时间理论最优,但长作业可能饥饿;RR时间片轮转,适合交互系统,时间片选太大就退化成FCFS,选太小则上下文切换开销过大。考试中经常给几个进程的到达时间和执行时间,要求计算平均等待时间和平均周转时间。周转时间等于完成时间减去到达时间,等待时间等于周转时间减去执行时间,把公式先写在卷面上再算,即使结果出错也能拿步骤分。

死锁的四个必要条件是:互斥、持有并等待、不可剥夺、循环等待。预防的思路是破坏这四个条件之一;避免的经典算法是银行家算法,关键在于判断系统是否处于安全状态;检测则通过资源分配图,有环不一定死锁,无环一定不死锁;解除方式是撤销进程或资源剥夺。这里有一个考试容易踩的坑:题目说"破坏互斥条件"是不可行的,因为有些资源本身就是互斥的,比如打印机,答预防措施时优先写"破坏持有并等待"和"破坏循环等待"。

4.3 内存管理与文件系统:怎么把两章串联复习

内存管理的核心概念是分页、分段和虚拟内存。分页把逻辑地址划分为页号和页内偏移,通过页表映射到物理地址;分段按逻辑结构划分段,段表管理每段的基址和长度。虚拟内存的基石是局部性原理——程序在一段时间内只访问集中的一部分空间,所以可以把暂时不用的页面换出,给正在运行的页面腾空间,这也是为什么物理内存小于程序大小也能运行。页面置换算法里,OPT理论最优但无法实现,FIFO实现简单但可能有Belady异常,LRU利用历史预测未来,是实际系统中最常用的近似方案。计算缺页次数的题,要先画出帧的状态变化,再统计缺页次数,过程写清楚就能拿分。

文件系统这个模块,我把重点放在inode和链接上。inode保存文件的元数据(大小、权限、时间戳)和数据块指针,文件名只是目录项指向inode的入口。硬链接是多个目录项指向同一个inode,删除一个链接只是引用计数减一,只有计数归零才真正删除数据;软链接是独立的文件,内容是目标文件的路径,目标被删除后软链接就失效。考试常让区分这两种链接的区别,顺便会问"硬链接能不能跨文件系统"——答案是否定的,因为inode编号在不同文件系统中不互通。

5. 数据库:SQL、范式、事务三座大山

5.1 SQL书写:分组与连接的执行逻辑要过关

数据库这门课,SQL是必考且分值大头。我复习时发现,很多同学SQL写不对,不是语法不熟,而是执行顺序不清楚。SQL的执行顺序是:from先确定数据来源,where做行级过滤,group by分组,having对分组结果过滤,select投影,最后order by排序。记住这个顺序,很多错误就能自查出来。比如"统计平均分大于80的系",很多新手在where里写avg(score) > 80,这是错的,因为where在分组之前执行,此时还没有聚合值,这个条件必须放在having里:

SELECT dept FROM students GROUP BY dept HAVING AVG(score) > 80;

连接查询也是高频考点。inner join只返回两表匹配的记录,left join返回左表全部记录,右表没有匹配就补NULL。做题时建议先在草稿纸上画出两个表的示意图,再标出连接字段,最后写出select的列。遇到"查询没有选任何课程的学生",这类取反语义的题通常用not exists或not in子查询解决,用join反而容易混。我当时把not exists、in、join三种写法都练了一遍,考场上遇到同类型题就能灵活选一种最快的方式。

5.2 范式分解与ER图转关系模式

范式理论是数据库理论题的主角。1NF要求属性不可再分;2NF要求消除非主属性对候选码的部分函数依赖;3NF要求消除非主属性对候选码的传递函数依赖;BCNF要求消除主属性对候选码的部分和传递函数依赖。复习时要会把一个不规范的表分解成3NF。比如选课表(学号、姓名、课程号、课程名、成绩),候选码是(学号,课程号),但"学号决定姓名"属于部分函数依赖,所以它只满足1NF不满足2NF。分解成学生表(学号、姓名)、课程表(课程号、课程名)、选课表(学号、课程号、成绩)后,每一张都在3NF以上。

ER图转关系模式也有固定规则:实体转成表,主码就是实体的码;1对1联系可以把一端的主码并入另一端;1对多联系把"一"端主码放入"多"端,作为外码;多对多联系必须单独建一张表,表内含两端主码,组合起来作为主码。做题时先把规则列出来,再逐个分析实体和联系,不要跳步,这种题的得分非常稳定。

5.3 事务、隔离级别与索引的原理

事务的ACID四个性质是概念题重点,但更重要的是理解它们之间的联系。原子性靠undo日志保证,持久性靠redo日志保证,一致性和隔离性则与并发控制相关。并发事务会出现三类问题:脏读是读了未提交的数据,不可重复读是同一查询两次结果不同,幻读是查询范围时出现了新的行。隔离级别从低到高依次是读未提交、读已提交、可重复读、串行化,对应的副作用依次减少,但性能开销逐渐增加。

锁机制的考点是共享锁(S锁)和排他锁(X锁):S锁之间兼容,S锁和X锁、X锁和X锁都互斥。两段锁协议要求事务分两个阶段,扩张阶段只能加锁不能解锁,收缩阶段只能解锁不能加锁,遵循这个协议可以保证并发调度的可串行化。MySQL默认的隔离级别是可重复读,依靠间隙锁一定程度避免幻读,这些细节如果在大题中自然带一句,会是不错的加分点。

索引部分,B+树是重点。B+树所有数据都存在叶子节点,叶子之间用指针串成链表,所以范围查询很高效,比如查找"价格在100到200之间的商品",只要定位到下限位置,沿链表往后扫就行。这也解释了为什么B+树索引适合数据库,而不适合频繁更新、区分度低的列。比如性别字段只有两个值,建索引后要回表扫接近一半的数据,还不如全表扫描快。

6. 常见问题与备考避坑实录

6.1 复习时容易踩的四个坑

第一个坑是只刷题不回归概念。我身边就有同学把调度算法计算题刷得滚瓜烂熟,但遇到"什么是饥饿"这种概念题反而说不出所以然。OS、数据库这类课,计算题和概念题是交替出现的,复习时每个知识模块都要保证"既能算也能说"。

第二个坑是把SQL当英语课学,只背语法不实际跑。join和子查询的执行顺序、group by和having的区别,光看教程很难记住。我的建议是本地装一个SQLite或MySQL,每天手敲五道题,把题目要求的表建出来,实际查询结果出来后再比对正确答案。数据库的SQL题,动手练过和没练过,考场上的差距非常明显。

第三个坑是数据可视化只看图不自己画。看到一篇可视化报道觉得好看、惊艳,但考试让你设计可视化方案就无从下手。解决方法是课下用ECharts复现三到五个经典图表,体会xAxis、yAxis、series之间的关系,再试着调整颜色和tooltip,把配置弄熟练了,考试写方案和配置时心里才有底。

第四个坑是PV操作光看不练。信号量这个知识点,看别人推演很简单,自己上手就卡在P和V的先后顺序上。建议把生产者消费者、读者写者、哲学家进餐三道经典题全部手推一遍,重点理解"先资源信号量后互斥信号量"的规则,多推几遍就能形成肌肉记忆。

6.2 不同类型题的答题节奏

名词解释题,先一句话给定义,再补充关键特征,必要时画个图。比如"什么是虚拟内存",先写虚拟内存是操作系统提供给进程的逻辑上连续、物理上可离散的内存抽象,再补充局部性原理和页面置换机制,最后画一个逻辑地址映射物理地址的简图。这样的答案,阅卷老师一眼就能看到得分点。

计算题,先把公式写出来再代数字。调度算法的平均等待时间、页面置换的缺页次数、银行家算法的安全性判断,这些题的每一步都有分值,过程清晰比结果正确更重要。我当时的习惯是在草稿纸上先算一遍,确认无误后再誊写到答题卡,避免因涂改丢分。

设计题和案例分析题,按"场景-数据-方案-理由"四段式组织。比如数据可视化的方案设计题,写完图表类型和视觉编码后,还要补一句"因为位置通道对人眼感知最友好,所以用横轴放时间、纵轴放数值"。这样既显得思路完整,又扣住了课程核心概念。

7. 一点个人体会

复习这四门课的过程,最大的收获并不是某道题会做了,而是发现它们其实是围绕"数据"展开的一整套体系。数据库负责把数据管好,数据科学负责把数据用好,可视化负责把结果讲清楚,操作系统则在最底层把计算资源调度好。备考时如果只顾着分割知识点,很容易陷入"背了忘、忘了背"的循环。我自己最有效的做法是把每章内容问题化,比如把"什么是死锁"改成"死锁怎么产生、怎么避免、如果发生了怎么处理",然后对着问题自己讲给自己听,能顺畅讲出来的就算掌握,讲不清楚的就回头翻课件。考前最后一天,我只看自己整理的问题清单和易错点,不再翻大部头教材,状态反而比之前踏实。希望这份整理也能帮你把零散的知识点串成一张网,少走一些我当年走过的弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询