跳转至

数据库模块小结与自测

高频速记

  • 事务:原子性、一致性、隔离性、持久性。
  • 隔离级别:Read Uncommitted → Read Committed → Repeatable Read → Serializable,保护逐步增强,并发性能通常逐步下降。
  • 码:超码不要求最小,候选码要求最小,主码是选定的候选码,外码引用其他表的码。
  • 范式:1NF 保证原子性,2NF 消除部分依赖,3NF 消除传递依赖。
  • 完整性:实体管主键,参照管外键,用户定义管业务。
  • SQL:WHERE 筛行,HAVING 筛组;自然连接自动匹配同名列并去重。
  • 索引:B+ 树适合范围查询,哈希适合精确匹配,但具体优化器行为待核验。

场景自测

  1. 转账扣款后入账失败,应保留扣款还是回滚?
  2. 账户与理财产品是何种联系,如何设计主键?
  3. 主键约束属于哪类完整性?外键主要保证什么?
  4. 复合主码下非主属性只依赖一部分主码,违反哪一范式?
  5. WHERE 与 HAVING 分别过滤什么?
  6. 192.168.1.100/28 所在网段的广播地址是什么?此题不属于数据库,但可检查跨模块计算切换能力。

参考答案

  1. 回滚,保证原子性。
  2. m:n,单独建持有表,组合主键为两端主键。
  3. 主键约束实施实体完整性;外键保证引用对象存在或允许为空。
  4. 违反 2NF。
  5. WHERE 过滤分组前的行,HAVING 过滤分组后的结果。
  6. 192.168.1.111。数据库模块复习时应回到网络计算页核对过程。

本页是第一批迁移后的自测落点,正式刷题时应记录错因、教材版本和题目来源。具体教材口径待核验。

批次3新增独立自测(题号与唯一主归属固定,不改旧题)。

题号:B3Q-V1-01;唯一主归属:V-1。 题干:银行保存的客户/账户数据、管理这些数据的软件、连同柜面应用/服务器/DBA的整体分别对应DB、DBMS、DBS中的哪一个?仅增加账户表物理索引,应用SQL不变,体现哪种数据独立性及哪级映像?

答案: 数据集合是DB,管理软件是DBMS,含应用、硬件、支撑环境及人员的整体是DBS;增加物理索引而应用SQL不变体现物理数据独立性,由模式/内模式映像支持。

解析: DB是被管理的数据而不是软件,DBMS只是系统组成部分,不等于整个DBS。索引改变访问路径而非应用所依赖的逻辑表与视图,故不是外模式/模式映像支持的逻辑独立性;若同时改了业务字段语义则不能仅凭“增加索引”推断应用不受影响。

题号:B3Q-V2-01;唯一主归属:V-2。 题干:纯关系模型中 R(账号,状态,余额) 的账号域为六位数字字符串,状态域为{正常,冻结,销户},余额域为非负两位小数且不允许未知;主码为账号。当前只有元组 ('000123','正常',500.00)。逐个独立判断能否加入:a=('000124','冻结',0.00),b=('000123','正常',500.00),c=('000125','未知',10.00),d=('000126','正常',NULL);说明元组、属性、域,并判断账号域是否仅含当前出现的000123。

答案: 仅a可加入;b与已有元组完全相同,纯关系集合不允许第二个重复元组,同时账号为主码,000123也不能再次出现在另一元组中;c状态超域,d违背本题非空金额要求。元组是一条完整记录,属性如“状态”,域是允许值集合;账号域不局限于已出现值。

解析: 域描述允许的值而非当前实例值,0属于本题余额域而NULL不是普通金额。纯关系是无重复元组的集合;SQL表和查询结果通常采用多重集语义。表内重复由主键、唯一约束等约束控制,查询结果是否去重则由 DISTINCT、UNION 或 UNION ALL 等语义决定,不能把两者混为一谈。

题号:B3Q-V6-01;唯一主归属:V-6。 题干:同一一致快照下两个互不重叠分片返回账户余额总和与非空余额计数:S1=(300,2),S2=(900,1),均无重复副本。全局平均余额是多少?若S2超时,可否把它当0并发布完整全行均值?一次跨片转账中S1已投票PREPARED但未收到最终决议,可否仅因超时自行回滚?

答案: 全局均值为(300+900)/(2+1)=400,而不是(150+900)/2=525。S2超时不能当0发布完整结果;已准备参与者不能仅凭超时自行决定回滚,应依协调者持久决议和恢复协议等待/查询最终状态。

解析: 可分解聚合应传SUM与COUNT并加权合并;缺分片不是零余额且副本必须去重。2PC先准备投票、再持久决议通知,PREPARED表示已经承诺遵守最终决议,可能阻塞;自行回滚可能与另一参与者已提交冲突,2PC也不自动替代隔离和副本一致性。

题号:B3Q-V7-01;唯一主归属:V-7。 题干:需实现四类访问:①按session_id直接取整份会话值;②按商品文档的嵌套字段规格筛选并更新;③按设备每秒写入温度、查最近一小时及每分钟均值;④由某账户沿转账边查两跳邻居。分别优先评估哪类数据库/模型?另有扫描件OCR检索,能否只保留全文索引删除原件?给出③的核心写查和保留边界。

答案: ①键值模型;②文档模型及受支持的字段索引;③时序数据库;④图模型及有界遍历。OCR索引不能替代原件,应保留受控原始对象、稳定标识、版本、元数据和权限。③按设备/时间分区写入,时间范围裁剪、窗口聚合,按明确保留策略清理。

解析: 选型依据是访问路径而非文件扩展名:键值中的JSON不自动支持字段检索;文档也需结构校验;图遍历需限制深度与去重。时序数据须约定时区、事件时间、重复/迟到处理,降采样不能还原明细,聚合完整前不能直接删原数据。关系库也可实现这些需求,以上是优先评估而非独占能力;NoSQL不意味着无结构或无事务。

题号:B3Q-V8-01;唯一主归属:V-8。 题干:设备报修任务T17关联文本工单、故障照片和语音说明。某系统把三种文件放同一目录后,直接将所有向量相加并称“已融合”;其中照片实际属于任务T18,语音时间戳还采用另一时区。请指出问题,并给出从组织管理到处理与输出校验的正确链条,说明向量能否替代原文件及权限记录。

答案: 共目录不等于融合,实体错配与时间未对齐使直接相加无效;先核对统一task_id、来源、版本及统一时区时间,再分别按文本分块、图像空间特征、音频采样/时间轴组织,保留原件和目录引用及访问权限,提取适配特征并经可比较空间或设计好的跨模态模型融合,再联合检索/推理、核对来源及结果。向量不能替代原件或权限记录;T18照片不得当T17证据。

解析: 不同模态的结构和编码不同,不保证向量维度/语义可直接相加。处理前后都需做质量、任务关联和权限校验,结论附来源对象及版本供回溯;低置信或矛盾结果转人工复核,避免把派生特征或模型输出当作已经证实的事实。

题号:B3Q-V4-01;唯一主归属:V-4。 题干:账户表设置 account_id PRIMARY KEY、customer_id NOT NULL REFERENCES customer(customer_id)、balance NOT NULL CHECK (balance >= 0),所有约束均已启用并执行。逐个独立判断以下数据库安全性与完整性/授权/约束场景:①柜员仅有账户视图的 SELECT 权限,无任何直接或间接的基表 UPDATE 权限,却尝试修改基表余额;②已获所需 UPDATE 权限的操作员将余额改为 -1;③已获所需 INSERT 权限的操作员插入重复账号,或插入引用不存在客户的账户。分别应由授权控制还是哪类完整性约束拒绝?④“执行 GRANT 后即可绕过约束”“表上有约束就不必授权”“只撤销一个角色的 UPDATE 就能断言用户不再有更新权限”是否正确?说明理由。

答案: ①由授权控制拒绝,属于数据库安全性;②由 CHECK 拒绝,属于用户定义完整性;③重复账号由主键约束拒绝,属于实体完整性,引用不存在客户由外键约束拒绝,属于参照完整性。④三项均错误:GRANT 赋予操作权限而不豁免约束;约束不能代替权限控制;撤销单个角色权限后仍须检查直接授权、其他角色及继承等有效权限来源。

解析: 安全性侧重“谁有权访问或操作”,完整性侧重“数据是否符合规定”,有权操作不等于可以写入非法数据,数据合法也不等于操作者有权写入。①已排除其他权限来源,故可明确判定无权更新;②③分别独立判断,不假定数据库按固定顺序检查权限与约束。NOT NULL 与 CHECK 配合防止空余额,外键不负责授予访问客户表的权限。正文定位:02-核心知识点.md 的“6. 完整性约束与视图”→“三类经典完整性”;03-SQL与关系代数.md 的“授权与回收。”段及紧随其后的“易错边界”段;99-速记原文-数据库与SQL.md 的“11.5 易混点”中“完整性约束与安全控制不同”条目。上述正文分别支撑约束分类、有效权限核查及安全性与完整性的区分。