本筆記旨在提煉操作系統(tǒng)、計算機網(wǎng)絡(luò)與數(shù)據(jù)庫課程中,關(guān)于數(shù)據(jù)庫系統(tǒng)與計算機網(wǎng)絡(luò)服務(wù)兩大核心模塊的關(guān)鍵概念、常見題型及解題思路。
第一部分:數(shù)據(jù)庫系統(tǒng)核心
- 關(guān)系模型與SQL
- 關(guān)鍵點:實體完整性、參照完整性、用戶定義完整性。SQL語句的精確編寫,特別是多表連接(INNER/LEFT/RIGHT JOIN)、子查詢(相關(guān)/不相關(guān))、分組聚合(GROUP BY, HAVING)與集合操作(UNION, INTERSECT)。
- 常見題型:給定場景,編寫查詢語句;分析給定SQL語句的執(zhí)行結(jié)果;優(yōu)化查詢性能(如避免SELECT *,合理使用索引)。
- 筆記要點:牢記SQL執(zhí)行順序(FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY)。理解事務(wù)的ACID屬性是后續(xù)所有高級概念的基礎(chǔ)。
- 數(shù)據(jù)庫設(shè)計與規(guī)范化
- 關(guān)鍵點:函數(shù)依賴、范式(1NF, 2NF, 3NF, BCNF)。判斷范式級別及分解到更高范式的方法。
- 常見題型:判斷關(guān)系模式屬于第幾范式;將關(guān)系模式分解為指定范式并保持無損連接和函數(shù)依賴。
- 筆記要點:范式是遞進的。分解的最終目標(biāo)是消除數(shù)據(jù)冗余和操作異常,但需權(quán)衡查詢效率。
- 事務(wù)管理與并發(fā)控制
- 關(guān)鍵點:事務(wù)ACID特性。并發(fā)問題:丟失修改、臟讀、不可重復(fù)讀、幻讀。封鎖協(xié)議(共享鎖S、排他鎖X)、兩段鎖協(xié)議(2PL)。
- 常見題型:給定調(diào)度序列,判斷是否沖突可串行化;分析鎖協(xié)議下可能發(fā)生的死鎖及預(yù)防/檢測方法。
- 筆記要點:可串行化是并發(fā)正確的標(biāo)準。兩段鎖協(xié)議是保證可串行化的充分條件,但可能引發(fā)死鎖。
- 數(shù)據(jù)庫恢復(fù)技術(shù)
- 關(guān)鍵點:日志(Redo, Undo)、檢查點。
- 常見題型:系統(tǒng)故障后,如何利用日志和檢查點進行恢復(fù)(Redo/Undo的具體流程)。
- 筆記要點:先寫日志原則(WAL)。恢復(fù)的基本思想是利用日志重做已提交事務(wù),撤銷未完成事務(wù)。
第二部分:計算機網(wǎng)絡(luò)服務(wù)
- 應(yīng)用層核心服務(wù)與協(xié)議
- 關(guān)鍵點:客戶端-服務(wù)器(C/S)與對等(P2P)模型。
- DNS(域名系統(tǒng)):層次命名結(jié)構(gòu)、遞歸/迭代查詢、資源記錄類型(A, AAAA, CNAME, MX, NS)。
- HTTP/HTTPS:無狀態(tài)協(xié)議、請求/響應(yīng)報文結(jié)構(gòu)、方法(GET/POST等)、狀態(tài)碼、Cookie/Session機制、HTTPS的SSL/TLS加密流程。
- 電子郵件:SMTP(發(fā))、POP3/IMAP(收)協(xié)議流程與區(qū)別。
- FTP:控制連接與數(shù)據(jù)連接(主動/被動模式)。
- 常見題型:描述特定服務(wù)(如訪問網(wǎng)頁、發(fā)送郵件)的完整協(xié)議交互過程;分析協(xié)議報文字段;比較協(xié)議特點。
- 網(wǎng)絡(luò)編程與Socket
- 關(guān)鍵點:Socket(套接字)是應(yīng)用進程與網(wǎng)絡(luò)協(xié)議的接口。TCP Socket(面向連接,可靠)與UDP Socket(無連接,盡力而為)編程模型的關(guān)鍵步驟。
- 常見題型:給定簡單需求,描述Socket API調(diào)用順序(如socket(), bind(), listen(), accept(), connect(), send(), recv(), close());分析TCP三握四揮在Socket編程中的體現(xiàn)。
- 筆記要點:TCP服務(wù)端必須調(diào)用listen()和accept();客戶端調(diào)用connect()。UDP則無需連接建立過程。
- Web服務(wù)與CDN
- 關(guān)鍵點:Web服務(wù)器(如Nginx, Apache)的基本角色。CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))的工作原理:通過緩存、負載均衡等技術(shù),將內(nèi)容分發(fā)到靠近用戶的邊緣節(jié)點,以降低延遲、減輕源站壓力。
- 常見題型:解釋CDN如何加速用戶訪問;描述一個HTTP請求在涉及CDN時的可能路徑。
綜合刷題策略
- 理論與實踐結(jié)合:在理解協(xié)議原理(如TCP三次握手)的基礎(chǔ)上,結(jié)合WireShark等工具觀察真實報文,或閱讀簡單的Socket代碼,能極大加深理解。
- 對比記憶:將相似概念對比學(xué)習(xí),如:TCP vs UDP;HTTP vs HTTPS;GET vs POST;POP3 vs IMAP;各類鎖的區(qū)別;各類范式的區(qū)別。
- 流程化思維:對于“描述XXX過程”類題目(如一次網(wǎng)頁訪問、一次事務(wù)提交與恢復(fù)),建立清晰的流程圖或時序圖在心中,按步驟作答不易遺漏。
- 錯題整理:記錄經(jīng)典題型和易錯點,特別是涉及復(fù)雜SQL、并發(fā)調(diào)度判斷、協(xié)議交互細節(jié)的題目,定期回顧。
通過系統(tǒng)性地梳理上述知識點,并輔以針對性練習(xí),可以有效提升在數(shù)據(jù)庫與計算機網(wǎng)絡(luò)服務(wù)領(lǐng)域的解題能力與理解深度。