⚡ 数据库系统基本概念 · 网友们还关心

? 热点1

〈数据库管理系统〉到底管什么?

DBMS是数据库核心,负责数据存储、检索、并发控制、安全。网友常问“MySQL和Oracle哪个好?”其实底层原理相似:事务、锁、日志。例如ACID中的原子性通过undo log实现,隔离性通过锁/MVCC。易搜职考网强调:理解事务ACID是备考关键。

⚙️ 示例:银行转账 — 更新两个账户余额必须在同一事务,要么全成功要么全回滚。
? 热点2

〈数据模型〉为什么E-R图重要?

E-R图是概念设计核心,实体、属性、联系。网友常混淆“弱实体”与“强实体”。弱实体依赖标识实体,如订单项依赖订单。易搜职考网梳理:关系模型由E-R转换而来,必须满足1NF,2NF,3NF

? 热点3

〈并发控制〉死锁怎么处理?

并发操作引发丢失修改、不可重复读、脏读。网友关心“如何避免死锁”?两段锁协议(2PL)可保证可串行化。易搜职考网提醒:时间戳排序也是常见方法。

〓 示例:事务T1锁A,事务T2锁B,互相等待 → 死锁检测与回滚。
「数据库系统构成」 数据库+DBMS+应用+用户。网友高频搜索:数据库三级模式(外模式、模式、内模式)。
「数据独立性」 逻辑独立性与物理独立性。网友常问“视图是外模式吗?” 是,视图提供逻辑独立性。
「事务隔离级别」 读未提交、读已提交、可重复读、串行化。网友关心MySQL默认级别:可重复读

〔 数据库设计原理 〕 网友们还关心

〈需求分析〉到底分析什么?

数据流图、数据字典。网友常忽略数据约束。易搜职考网建议:用E-R图作为沟通工具。

〈范式分解〉3NF还是BCNF?

网友热门问题“如何无损分解且保持依赖”。3NF允许冗余但避免异常;BCNF更严格。例如关系R(A,B,C) F={A→B, B→C},候选键A,属于2NF,分解为R1(A,B) R2(B,C)达到3NF。

〈物理设计〉索引怎么选?

B+树索引、哈希索引。网友关心“聚簇索引与非聚簇索引”。聚簇索引决定数据物理顺序,一个表只能一个。易搜职考网示例:InnoDB主键即聚簇索引。

规范化分解(3NF) 网友常问“学生选课表如何规范”。原始表:学生ID, 课程, 教师, 教师所属系。存在传递依赖。分解为:学生选课(学生ID,课程,教师ID)、教师(教师ID,教师名,系)。满足3NF。示例:学生(1, 数据库, T101) → 无冗余。

  • ▹ 第一范式:属性不可再分
  • ▹ 第二范式:消除部分依赖
  • ▹ 第三范式:消除传递依赖

反范式 网友常问“何时冗余”?例如订单表经常查询用户姓名,可冗余用户名字段,避免频繁join。但需维护一致性。易搜职考网提示:反范式以空间换时间,在数据仓库中常见。

⚡ 示例:电商订单表冗余「用户昵称」,减少关联查询。

网友高频问题 TOP3

  1. “主键自增还是UUID?” → 自增性能好,UUID适合分布式。
  2. “外键一定要用吗?” → 保证参照完整性,但影响性能,可用应用层保证。
  3. “ER图转为关系模型规则?” → 实体变表,联系根据映射基数。

〈数据操作与管理〉SQL · 网友们还关心

SELECT 查询优化

网友常搜“SQL慢怎么办”。执行计划分析,避免SELECT ,合理使用索引。示例:EXPLAIN SELECT name FROM user WHERE age>20

事务与锁机制

共享锁排他锁。网友关心“行锁 vs 表锁”。InnoDB支持行锁,但索引失效会升级表锁。易搜职考网强调:MVCC实现非锁定读。

DML与事务控制

INSERT/UPDATE/DELETE 结合事务。网友问“批量插入如何提升性能”?使用批量语句、关闭自动提交。示例:START TRANSACTION; INSERT ...; COMMIT;

〓 示例:网友最关心「乐观锁 vs 悲观锁」。乐观锁用版本号,悲观锁用SELECT ... FOR UPDATE。

〖 安全性与完整性 〗 网友们还关心

〈权限管理〉GRANT与REVOKE

网友常搜“如何给只读权限”。GRANT SELECT ON db.table TO user。易搜职考网提醒:最小权限原则

〈完整性约束〉

实体完整性(主键)、参照完整性(外键)、域完整性(CHECK)。网友问“CHECK约束为什么很少用?” MySQL会忽略,建议用应用层或触发器。

〈数据加密与脱敏〉

网友关心“数据库加密方式”。TDE透明加密,或字段级加密。示例:INSERT INTO user (name, id_card) VALUES (AES_ENCRYPT('张三', 'key'))

⚙️ 数据库优化 · 网友们还关心

〈索引优化〉联合索引最左前缀

网友高频问题:联合索引(a,b,c),查询条件b=1能否用到?不能,必须从a开始。易搜职考网示例:INDEX idx_abc(a,b,c),where a=1 and b=2 可完全使用。

〈查询重写〉子查询 vs JOIN

网友常问“哪个效率高”?JOIN通常优于子查询,但取决于优化器。示例:SELECT FROM orders WHERE user_id IN (SELECT id FROM users WHERE vip=1) 可改写为JOIN。

〈缓存策略〉Redis + 数据库

网友关心“缓存穿透、击穿、雪崩”。缓存穿透:布隆过滤器;缓存击穿:互斥锁;缓存雪崩:过期时间随机。

慢查询日志 开启slow_query_log,分析执行计划。
分区表 范围分区、列表分区。网友案例:按日期分区,查询特定月数据快10倍。

◎ 分布式数据库 · 网友们还关心

〈CAP理论〉一致性、可用性、分区容错

网友常问“为什么不能同时满足?” CAP证明只能三选二。易搜职考网举例:ZooKeeper保证CP,Cassandra保证AP。

〈数据分片〉水平分库

按用户ID hash分片。网友关心“跨分片查询怎么办”?分布式中间件如ShardingSphere。

〈分布式事务〉2PC/3PC

网友高频:两阶段提交准备阶段+提交阶段。易搜职考网提示:存在阻塞问题,TCC模式更常用。

〔 数据库应用系统开发 〕 网友们还关心

〈ORM框架〉MyBatis vs JPA

网友比较:MyBatis灵活SQL,JPA自动映射。易搜职考网建议:复杂查询用MyBatis,简单CRUD用JPA。

〈连接池〉HikariCP

网友关心“连接池大小设置”。公式:连接数 = ((核心数2) + 有效磁盘数)。HikariCP目前性能最佳。

〈数据库迁移〉Flyway

版本控制数据库脚本。网友常用:Flyway自动执行迁移文件,确保环境一致。

⚡ 示例:Spring Boot + MyBatis + HikariCP 整合,网友最常搜索的架构。

〓 归结起来说 · 软考数据库核心

数据库系统是现代信息系统的基石。从基本概念、E-R设计到SQL优化、分布式事务,每一个环节都是软考软件设计师的重点。易搜职考网结合历年真题与网友高频搜索,总结出事务隔离性、索引选择、范式分解为三大必考热点。掌握这些,不仅通过考试,更能胜任实际开发。网友还关心“数据库未来趋势”:NewSQL、云原生数据库如TiDB。备考时建议多练手写SQL与事务分析。本站持续更新深度内容,助力高效备考。

# 事务ACID # 索引优化 # 3NF分解 # 分布式CAP # 并发控制