《數據庫系統》是計算機科學與技術、軟件工程等專業的核心課程,涵蓋數據庫理論、設計方法、實現技術和應用開發。本匯總基于電子科技大學課程內容,整合了重要知識點、圖表示例、典型習題和代碼片段,幫助同學們高效復習。
一、核心概念
- 數據庫系統組成:數據庫(DB)、數據庫管理系統(DBMS)、應用程序和用戶。
- 數據模型:層次模型、網狀模型、關系模型(重點)、對象關系模型。
- 關系數據庫理論:關系代數(選擇、投影、連接等)、函數依賴、范式(1NF至BCNF)。
- SQL語言:數據定義(CREATE、ALTER)、數據操縱(SELECT、INSERT、UPDATE、DELETE)、數據控制(GRANT、REVOKE)。
- 事務與并發控制:ACID屬性、鎖機制、隔離級別、死鎖處理。
- 數據庫設計:ER圖、邏輯設計、物理設計、規范化過程。
二、圖解輔助
- ER圖示例:展示實體、屬性和關系,如學生選課系統(學生、課程、選課關系)。
- 關系模式圖:用表格形式表示關系結構,例如學生表(學號、姓名、專業)。
- 索引結構圖:B+樹索引的層次示意圖,說明如何加速查詢。
- 事務狀態圖:描述事務的開始、提交、回滾和中斷狀態轉換。
三、典型習題與解析
- 關系代數題:給定學生表S和課程表C,寫出查詢選修“數據庫”課程的學生姓名。
- 答案:π姓名(σ課程名='數據庫'(S ? 選課 ? C))
2. SQL編程題:創建學生表,插入數據,并查詢平均成績高于85分的學生。
- 代碼示例:
`sql
CREATE TABLE Student (SID INT PRIMARY KEY, Name VARCHAR(50), Grade FLOAT);
INSERT INTO Student VALUES (1, '張三', 90);
SELECT Name FROM Student WHERE Grade > 85;
`
- 規范化題:判斷關系R(A,B,C,D)是否符合3NF,給出分解過程。
- 解析:基于函數依賴分析,消除傳遞依賴。
四、代碼實現
- 連接數據庫:使用JDBC或Python的sqlite3模塊示例。
`python
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM Student")
print(cursor.fetchall())
`
- 事務處理:模擬銀行轉賬,確保原子性。
`sql
START TRANSACTION;
UPDATE Account SET balance = balance - 100 WHERE id = 1;
UPDATE Account SET balance = balance + 100 WHERE id = 2;
COMMIT;
`
五、計算機軟硬件技術開發關聯
數據庫系統是軟件開發的基石,涉及:
- 硬件層面:存儲管理(磁盤I/O優化)、內存緩沖池。
- 軟件層面:操作系統集成、網絡數據庫訪問、分布式系統設計。
- 開發工具:MySQL、Oracle、MongoDB等DBMS的使用,以及ORM框架應用。
本匯總覆蓋了電子科技大學《數據庫系統》課程的期末考點,結合概念、可視化、習題和代碼,助力同學們鞏固知識,提升實踐能力。復習時建議多練習SQL編寫和ER圖設計,并理解事務機制在真實開發中的應用。