本篇主要涵盖近5年真题的数据库设计部分,包括但不限于补足逻辑设计结构,依据设计结构推断主体,数据流向、部分 SQL 语句。例如,触发器的写法。
外键约束、CHECK约束
01 巴士维修 - 信息系统设计
02 会员 - 信息系统设计
这里主要搞清楚主键和外键的联系关系。
[例-1] 建表
CREATE INTO 消费 (流水号, 会员手机号, 项目名称, 消费金额, 消费日期 )
  SELECT '202301010001', '18812345678', '羽毛球', '(e)', '2023/1/1'
  FROM 会员表, 项目表, 预约单表
  WHERE 预约单.项目名称 = 项目.项目名称 AND (f)
    AND 项目.项目名称 = '羽毛球'
    AND 会员.会员手机号 = '18812345678';
[答案]
(e) 价格 * 使用时长 * 折扣 as 消费金额
(f) 预约单表.会员手机号 = 会员.会员手机号
[例-2] 触发器
CREATE TRIGGER VIP_TRG AFTER (g) ON (h)
REFERENCES new row AS nrow
FOR EACH ROW
BEGIN
  UPDATE 会员
  SET (i)
  WHERE (j)
END
[答案]
(g) INSERT
(h) 消费表
(i) 折扣 = vip_value(nrow.会员手机号)
(j) 会员.会员手机号 = nrow.会员手机号
03 家电销售 - 电子商务系统设计
04 图书馆管理 - 信息管理系统
BCNF
- 1NF是指数据库表的每一列都是不可分割的基本数据项,即实体中的某个属性不能有多个值或者不能有重复的属性。
- 2NF要求属性完全依赖于主键,不能存在仅依赖主关键字一部分的属性。
- 3NF要求每一个非主属性既不部分依赖于码也不传递依赖于码。
- BCNF消除了主属性对候选码的部分和传递函数依赖。
主属性:候选码所有属性的并集。组成候选码操作的最少属性集合,自己解释。
05 ETC 过闸 - 信息系统设计