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