DBMS是数据库核心,负责数据存储、检索、并发控制、安全。网友常问“MySQL和Oracle哪个好?”其实底层原理相似:事务、锁、日志。例如ACID中的原子性通过undo log实现,隔离性通过锁/MVCC。易搜职考网强调:理解事务ACID是备考关键。
E-R图是概念设计核心,实体、属性、联系。网友常混淆“弱实体”与“强实体”。弱实体依赖标识实体,如订单项依赖订单。易搜职考网梳理:关系模型由E-R转换而来,必须满足1NF,2NF,3NF。
并发操作引发丢失修改、不可重复读、脏读。网友关心“如何避免死锁”?两段锁协议(2PL)可保证可串行化。易搜职考网提醒:时间戳排序也是常见方法。
数据流图、数据字典。网友常忽略数据约束。易搜职考网建议:用E-R图作为沟通工具。
网友热门问题“如何无损分解且保持依赖”。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
网友常搜“SQL慢怎么办”。执行计划分析,避免SELECT ,合理使用索引。示例:EXPLAIN SELECT name FROM user WHERE age>20。
共享锁与排他锁。网友关心“行锁 vs 表锁”。InnoDB支持行锁,但索引失效会升级表锁。易搜职考网强调:MVCC实现非锁定读。
INSERT/UPDATE/DELETE 结合事务。网友问“批量插入如何提升性能”?使用批量语句、关闭自动提交。示例:START TRANSACTION; INSERT ...; COMMIT;
网友常搜“如何给只读权限”。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 可完全使用。
网友常问“哪个效率高”?JOIN通常优于子查询,但取决于优化器。示例:SELECT FROM orders WHERE user_id IN (SELECT id FROM users WHERE vip=1) 可改写为JOIN。
网友关心“缓存穿透、击穿、雪崩”。缓存穿透:布隆过滤器;缓存击穿:互斥锁;缓存雪崩:过期时间随机。
网友常问“为什么不能同时满足?” CAP证明只能三选二。易搜职考网举例:ZooKeeper保证CP,Cassandra保证AP。
按用户ID hash分片。网友关心“跨分片查询怎么办”?分布式中间件如ShardingSphere。
网友高频:两阶段提交准备阶段+提交阶段。易搜职考网提示:存在阻塞问题,TCC模式更常用。
网友比较:MyBatis灵活SQL,JPA自动映射。易搜职考网建议:复杂查询用MyBatis,简单CRUD用JPA。
网友关心“连接池大小设置”。公式:连接数 = ((核心数2) + 有效磁盘数)。HikariCP目前性能最佳。
版本控制数据库脚本。网友常用:Flyway自动执行迁移文件,确保环境一致。
数据库系统是现代信息系统的基石。从基本概念、E-R设计到SQL优化、分布式事务,每一个环节都是软考软件设计师的重点。易搜职考网结合历年真题与网友高频搜索,总结出事务隔离性、索引选择、范式分解为三大必考热点。掌握这些,不仅通过考试,更能胜任实际开发。网友还关心“数据库未来趋势”:NewSQL、云原生数据库如TiDB。备考时建议多练手写SQL与事务分析。本站持续更新深度内容,助力高效备考。