《数据库系统》是计算机科学与技术、软件工程等专业的核心课程,涵盖数据库理论、设计方法、实现技术和应用开发。本汇总基于电子科技大学课程内容,整合了重要知识点、图表示例、典型习题和代码片段,帮助同学们高效复习。
一、核心概念
- 数据库系统组成:数据库(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图设计,并理解事务机制在真实开发中的应用。