当前位置: 首页 > news >正文

《软件设计师》复习笔记(4.4)——数据库新技术、SQL语言

目录

一、数据库安全

二、故障恢复

三、分布式数据库

四、数据仓库技术

五、反规范化技术

六、大数据

真题示例:

七、SQL语言

1. 基本语法

2. 查询操作

3. 数据操作

4. 高级操作

真题示例:


一、数据库安全

安全措施

  1. 用户标识和鉴定
    • 最外层安全措施,通过用户账户、口令及随机数检验等方式验证身份。
  2. 存取控制
    • 对用户授权,包括操作类型(查找、插入、删除、修改)和数据对象的权限范围。
  3. 密码存储和传输
    • 远程终端信息需加密传输。
  4. 视图授权
    • 通过视图限制用户访问的数据范围。
  5. 审计
    • 使用日志文件自动记录用户所有数据库操作,便于追踪和故障恢复。

二、故障恢复

故障类型与解决方法

故障类型原因解决方法
可预期故障事务逻辑错误(如程序预设条件)在程序中设置 Rollback 语句回滚事务。
不可预期故障算术溢出、存储保护违规等通过DBMS的恢复子系统利用日志撤销事务修改,回退到事务初始状态(使用检查点法)。
介质故障磁盘损坏等物理问题使用备份(完全/差量/增量备份)和日志文件恢复数据。

备份类型

  • 静态转储(冷备份):备份期间禁止数据库操作,速度快但恢复时间点固定。
  • 动态转储(热备份):允许备份期间操作数据库,支持秒级恢复,但需确保备份过程无错误。
  • 日志文件:记录事务操作,故障时用于恢复数据到一致状态。

三、分布式数据库

核心概念

  • 定义:局部数据库分布在不同物理位置,通过全局DBMS联网管理。
  • 分片模式
    • 水平分片:按行(记录)分布数据。
    • 垂直分片:按列分布数据。
  • 分布透明性
    • 分片透明性:用户无需感知数据如何分块存储。
    • 位置透明性:不关心数据物理位置变化。
    • 逻辑透明性:无需知道局部数据模型。

四、数据仓库技术

特点

  • 面向主题:按业务主题(如销售、客户)组织数据。
  • 集成性:整合多源数据,消除不一致性。
  • 非易失性:数据进入后长期保留,定期刷新。
  • 反映历史变化:存储历史数据以支持趋势分析。

体系结构

  1. 数据源 → 2. ETL(抽取、转换、加载) → 3. 数据存储与管理 → 4. OLAP服务器(多维分析) → 5. 前端工具(报表、挖掘)。
  • BI系统阶段:数据预处理 → 建立数据仓库 → 数据分析(OLAP、数据挖掘) → 数据可视化。

五、反规范化技术

目的与方法

  • 目的:牺牲部分规范化(如冗余)以提高查询性能。
  • 方法
    • 增加冗余列:减少连接操作(如订单表中直接存储客户姓名)。
    • 派生列:存储可计算字段(如总价=单价×数量)。
    • 表合并:将频繁连接的表合并为一个表。
    • 水平/垂直分割表:按数据值或列拆分,减少I/O负载。
  • 缺点:可能引发数据冗余和一致性问题。

六、大数据

特点与处理

  • 特点:大量化(PB级)、多样化(结构化/非结构化)、低价值密度、快速化。
  • 与传统数据对比
    • 硬件平台:从高端服务器转向集群。
    • 分析需求:从简单检测到深度关联分析。
  • 处理系统特征:高扩展性、容错性、异构支持、低延迟、低成本。

真题示例:

为了保证数据库中数据的安全可靠和正确有效,系统在进行事务处理时,对数据的插入、删除或修改的全部有关内容先写入(); 当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入 () ; 当发生故障时,根据现场数据内容及相关文件来恢复系统的状态。

A. 索引文件 B. 数据文件 C. 日志文件 D. 数据字典

A. 索引文件 B. 数据文件 C. 日志文件 D. 数据字典

  1. 第一空:C. 日志文件

    • 原因:数据库系统采用 预写日志(Write-Ahead Logging, WAL) 机制,即在修改数据前,先将事务的修改操作记录到 日志文件,确保即使系统崩溃也能通过日志恢复数据。
    • 例子:事务执行 UPDATE 时,会先在日志中记录 旧值→新值,再实际修改数据文件。
  2. 第二空:B. 数据文件

    • 原因:数据库缓冲区(Buffer Pool)会定期将脏页(修改过的数据)刷盘到 数据文件(如 .ibd 文件),确保数据持久化。
    • 例子:MySQL 的 CHECKPOINT 机制会触发缓冲区写入磁盘。

数据仓库中数据 ( ) 的特点是指数据一旦进入数据仓库后,将被长期保留并定期加载和刷新,可以进行各种查询操作,但很少对数据进行修改和删除操作。

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));
    
  • 修改表
    1. ALTER TABLE S ADD Zip CHAR(6);
  • 删除表
    1. DROP TABLE Student;

2. 查询操作

  • 基础查询
    1. SELECT Sno, Sname FROM Student WHERE City='北京';
  • 分组与聚合
    1. SELECT Sno, AVG(Score) FROM SC GROUP BY Sno HAVING AVG(Score)>60;
  • 字符串匹配LIKE):
    1. SELECT * FROM Student WHERE Sname LIKE '张%'; -- 匹配"张"开头
  • 排序
    1. SELECT * FROM Student ORDER BY Sno DESC; -- 降序

3. 数据操作

  • 插入
    1. INSERT INTO Student VALUES ('001', '张三', '男');
  • 删除
    1. DELETE FROM Student WHERE Sno='001';
  • 更新
    1. UPDATE Student SET Sname='李四' WHERE Sno='001';

4. 高级操作

  • 视图创建
    1. CREATE VIEW CS_Student AS SELECT * FROM Student WHERE Dept='CS';
  • 索引创建
    1. 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 零件号

  1. 1NF(第一范式):所有属性都是原子的(不可再分),P 显然满足。
  2. 2NF(第二范式):在 1NF 基础上,非主属性完全依赖于候选键(不能部分依赖)。
    • 候选键(零件号, 供应商)(因为 (零件号, 供应商) → 库存量)。
    • 部分依赖
      • 零件号 → 零件名称零件名称 仅依赖于 零件号,而不是完整的候选键)。
      • 供应商 → 供应商所在地(同理)。
    • 结论:存在部分依赖,不满足 2NF。
SELECT 零件号, AVG(库存量) AS 平均库存量, MAX(库存量) - MIN(库存量) AS 差值
FROM P
(56);
  • 题目要求 “查询各种零件的平均库存量”,即按 零件号 分组计算统计值。
  • GROUP BY 用于分组聚合,ORDER 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

  1. 自然连接 是基于 相同属性名 进行等值连接,并 去重
    • R 的属性:A, B, C, D, E
    • S 的属性:B, C, F, G
    • 公共属性B, C(连接时合并,不重复出现)。
  2. 结果属性A, B, C, D, E, F, G(共 7 个)。
  1. 自然连接 R⋈S 的列顺序
    • 假设顺序为 A, B, C, D, E, F, GR 的所有列 + S 的非公共列)。
    • 列序号对应:
      • 1: A
      • 2: B
      • 3: C
      • 4: D
      • 5: E
      • 6: F
      • 7: G
  2. 投影 π₁,₃,₆,₇:选择第 1、3、6、7 列 → A, C, F, G
  3. SQL 的列名表示
    • C 在 R 和 S 中都存在, F 和 G 仅来自 S
    • 为避免歧义,需用表名限定 C(如 R.C 或 S.C),但 F 和 G 无需限定。
    • 选项中唯一合理的是 A, R.C, F, GR.C 强调来自 R)。
  • 自然连接 R⋈S 的 SQL 实现通常写作 FROM R, S 或 FROM R NATURAL JOIN S
  1. 自然连接的条件
    • 隐式包含 R.B = S.B AND R.C = S.C(公共属性等值连接)。
  2. 选择条件 σ₃<₆
    • 第 3 列是 C,第 6 列是 F → C < F
    • 由于 C 是公共属性,需明确来源(如 R.C 或 S.C)。
    • 选项中合理的是 R.C < S.FF 仅来自 S)。
  3. 逻辑连接
    • 自然连接的条件是 AND,不是 OR。

相关文章:

  • vscode切换Python环境
  • 每日算法-250425
  • 【计算机视觉】CV实践- 基于PaddleSeg的遥感建筑变化检测全解析:从U-Net 3+原理到工程实践
  • Linux的多进程开发与信号处理
  • 【金仓数据库征文】-《深入探索金仓数据库:从基础到实战》
  • 【Qt】文件
  • 2025上海车展:赛轮思AI携手行业领军企业展示xUI——混合式、智能体化的AI助理平台
  • 漏洞管理体系:从扫描评估到修复验证的全生命周期实践
  • RocketMQ 主题与队列的协同作用解析(既然队列存储在不同的集群中,那要主题有什么用呢?)---管理命令、配置安装
  • Spring知识点总结
  • Vue3文件上传组件实战:打造高效的Element Plus上传解决方案,可以对文件进行删除,查看,下载功能。
  • 【HTTP/2:信息高速公路的革命】
  • C++中的vector和list的区别与适用场景
  • 西门子触摸屏文本显示不全,传送字体文件到屏幕的具体操作方法
  • C++ 日志系统实战第三步:熟悉掌握各种设计模式
  • 信令与流程分析
  • 界面控件DevExpress WinForms v25.1 - 数据处理功能持续增强
  • freecad参数化三维模型装配体解析至web端,切换参数组或修改参数
  • Parasoft C++Test软件单元测试_对函数打桩的详细介绍
  • Java对接企业微信实战笔记
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • 4月人文社科联合书单|天文学家的椅子
  • 华侨城A:一季度营收53.63亿元,净利润亏损14.19亿元
  • 庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会隆重举行,习近平发表重要讲话
  • 第一集丨《无尽的尽头》值得关注,《榜上佳婿》平平无奇
  • 国家统计局:一季度规模以上工业企业利润延续持续恢复态势