《软件设计师》复习笔记(4.4)——数据库新技术、SQL语言
目录
一、数据库安全
二、故障恢复
三、分布式数据库
四、数据仓库技术
五、反规范化技术
六、大数据
真题示例:
七、SQL语言
1. 基本语法
2. 查询操作
3. 数据操作
4. 高级操作
真题示例:
一、数据库安全
安全措施
- 用户标识和鉴定
- 最外层安全措施,通过用户账户、口令及随机数检验等方式验证身份。
- 存取控制
- 对用户授权,包括操作类型(查找、插入、删除、修改)和数据对象的权限范围。
- 密码存储和传输
- 远程终端信息需加密传输。
- 视图授权
- 通过视图限制用户访问的数据范围。
- 审计
- 使用日志文件自动记录用户所有数据库操作,便于追踪和故障恢复。
二、故障恢复
故障类型与解决方法
故障类型 | 原因 | 解决方法 |
---|---|---|
可预期故障 | 事务逻辑错误(如程序预设条件) | 在程序中设置 Rollback 语句回滚事务。 |
不可预期故障 | 算术溢出、存储保护违规等 | 通过DBMS的恢复子系统利用日志撤销事务修改,回退到事务初始状态(使用检查点法)。 |
介质故障 | 磁盘损坏等物理问题 | 使用备份(完全/差量/增量备份)和日志文件恢复数据。 |
备份类型
- 静态转储(冷备份):备份期间禁止数据库操作,速度快但恢复时间点固定。
- 动态转储(热备份):允许备份期间操作数据库,支持秒级恢复,但需确保备份过程无错误。
- 日志文件:记录事务操作,故障时用于恢复数据到一致状态。
三、分布式数据库
核心概念
- 定义:局部数据库分布在不同物理位置,通过全局DBMS联网管理。
- 分片模式:
- 水平分片:按行(记录)分布数据。
- 垂直分片:按列分布数据。
- 分布透明性:
- 分片透明性:用户无需感知数据如何分块存储。
- 位置透明性:不关心数据物理位置变化。
- 逻辑透明性:无需知道局部数据模型。
四、数据仓库技术
特点
- 面向主题:按业务主题(如销售、客户)组织数据。
- 集成性:整合多源数据,消除不一致性。
- 非易失性:数据进入后长期保留,定期刷新。
- 反映历史变化:存储历史数据以支持趋势分析。
体系结构
- 数据源 → 2. ETL(抽取、转换、加载) → 3. 数据存储与管理 → 4. OLAP服务器(多维分析) → 5. 前端工具(报表、挖掘)。
- BI系统阶段:数据预处理 → 建立数据仓库 → 数据分析(OLAP、数据挖掘) → 数据可视化。
五、反规范化技术
目的与方法
- 目的:牺牲部分规范化(如冗余)以提高查询性能。
- 方法:
- 增加冗余列:减少连接操作(如订单表中直接存储客户姓名)。
- 派生列:存储可计算字段(如总价=单价×数量)。
- 表合并:将频繁连接的表合并为一个表。
- 水平/垂直分割表:按数据值或列拆分,减少I/O负载。
- 缺点:可能引发数据冗余和一致性问题。
六、大数据
特点与处理
- 特点:大量化(PB级)、多样化(结构化/非结构化)、低价值密度、快速化。
- 与传统数据对比:
- 硬件平台:从高端服务器转向集群。
- 分析需求:从简单检测到深度关联分析。
- 处理系统特征:高扩展性、容错性、异构支持、低延迟、低成本。
真题示例:
为了保证数据库中数据的安全可靠和正确有效,系统在进行事务处理时,对数据的插入、删除或修改的全部有关内容先写入(); 当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入 () ; 当发生故障时,根据现场数据内容及相关文件来恢复系统的状态。
A. 索引文件 B. 数据文件 C. 日志文件 D. 数据字典
A. 索引文件 B. 数据文件 C. 日志文件 D. 数据字典
-
第一空:
C. 日志文件
- 原因:数据库系统采用 预写日志(Write-Ahead Logging, WAL) 机制,即在修改数据前,先将事务的修改操作记录到 日志文件,确保即使系统崩溃也能通过日志恢复数据。
- 例子:事务执行
UPDATE
时,会先在日志中记录旧值→新值
,再实际修改数据文件。
-
第二空:
B. 数据文件
- 原因:数据库缓冲区(Buffer Pool)会定期将脏页(修改过的数据)刷盘到 数据文件(如
.ibd
文件),确保数据持久化。 - 例子:MySQL 的
CHECKPOINT
机制会触发缓冲区写入磁盘。
- 原因:数据库缓冲区(Buffer Pool)会定期将脏页(修改过的数据)刷盘到 数据文件(如
数据仓库中数据 ( ) 的特点是指数据一旦进入数据仓库后,将被长期保留并定期加载和刷新,可以进行各种查询操作,但很少对数据进行修改和删除操作。
A.面向主题 B.集成性 C.相对稳定性 D.反映历史变化
相对稳定性
- 定义:数据仓库的数据是 非易失的(Non-Volatile),即数据一旦加载,通常不会频繁更新或删除,而是定期追加新数据。
- 对比其他选项:
A. 面向主题
:按业务主题(如销售、客户)组织数据,而非功能。B. 集成性
:数据来自多个异构系统,经过清洗和整合。D. 反映历史变化
:数据仓库会存储历史快照(如每天销售额)。
七、SQL语言
1. 基本语法
- 创建表:
CREATE TABLE S (Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(30) UNIQUE,Status CHAR(8),City CHAR(20),PRIMARY KEY(Sno));
- 修改表:
ALTER TABLE S ADD Zip CHAR(6);
- 删除表:
DROP TABLE Student;
2. 查询操作
- 基础查询:
SELECT Sno, Sname FROM Student WHERE City='北京';
- 分组与聚合:
SELECT Sno, AVG(Score) FROM SC GROUP BY Sno HAVING AVG(Score)>60;
- 字符串匹配(
LIKE
):SELECT * FROM Student WHERE Sname LIKE '张%'; -- 匹配"张"开头
- 排序:
SELECT * FROM Student ORDER BY Sno DESC; -- 降序
3. 数据操作
- 插入:
INSERT INTO Student VALUES ('001', '张三', '男');
- 删除:
DELETE FROM Student WHERE Sno='001';
- 更新:
UPDATE Student SET Sname='李四' WHERE Sno='001';
4. 高级操作
- 视图创建:
CREATE VIEW CS_Student AS SELECT * FROM Student WHERE Dept='CS';
- 索引创建:
CREATE UNIQUE INDEX S_SNO ON Student(Sno);
- 集合运算:
UNION
(并集)、INTERSECT
(交集)、MINUS
(差集)。
真题示例:
某销售公司数据库的零件关系P(零件号,零件名称,供应商,供应商所在地,库存量),函数依赖集F={零件号→零件名称,(零件号,供应商)→库存量,供应商→供应商所在地}。零件关系P属于 (54) 。
查询各种零件的平均库存量、最多库存量与最少库存量之间差值的SQL语句如下:
SELECT 零件号, (55) FROM P (56) ;
54、A. 1NF B. 2NF C. 3NF D. 4NF
55、A. AVG(库存量)AS平均库存量, MAX(库存量)-MIN(库存量)AS差值
B. 平均库存量AS AVG(库存量), 差值AS MAX(库存量)-MIN(库存量)
C. AVG库存量AS平均库存量, MAX库存量-MIN库存量AS差值
D. 平均库存量AS AVG库存量, 差值AS MAX库存量-MIN库存量
56、A. ORDER BY 供应商 B. ORDER BY 零件号
C. GROUP BY 供应商 D. GROUP BY 零件号
|
|
|
若有关系R(ABCDE)和S(BCFG),则R和S自然连结运算后的属性列有(51)个,与表达式 π1,3,6,7(σ3<6(R⋈S)) 等价的SQL语句如下:SELECT(52)FROM(53)WHERE(54);
(51)A. 5 B. 6 C. 7 D. 9
(52)A. A,R.C,F,G B. A,C,S.B,S.F
C. A,C,S.B,S.C D. R.A,R.C,S.B,S.C
(53)A. R B. S C. RS D. R,S
(54)A. R.B=S.B AND R.C = S.C AND R.C<S.B
B. R.B=S.B AND R.C = S.C AND R.C<S.F
C. R.B=S.B OR R.C = S.C OR R.C<S.B
D. R.B=S.B OR R.C = S.C OR R.C<S.F
|
|
|
|