三级模式
◇ 3/26 套 · 近年 2/12外模式(子模式、用户模式)→ 视图;模式(概念模式)→ 基本表;内模式(存储模式)→ 存储文件。
补充外模式是最高层的抽象,内模式是最低层(物理层)
怎么记三级模式记对应:外模式对应视图,模式对应基本表,内模式对应存储文件。
D3 里要死记的内容都在这一页:6 组考点、30 张卡片和表,每组都标了考频,最后一组是晚间的知识产权(专利、商标、商业秘密)。E-R 转换、关系代数、求候选键、判范式这几样要按步骤做,规则列在第 2、3 组,一步一张图的推法在配套的技巧图解里。
三级模式对应谁 · 设计四阶段 · E-R 属性类型
| 名称 | 对应 / 保证 | 说明 |
|---|---|---|
| 外模式(子模式、用户模式) | 视图 | 最高层抽象,用户看到的那一层 |
| 模式(概念模式) | 基本表 | 逻辑层 |
| 内模式(存储模式) | 存储文件 | 最低层(物理层);建聚簇索引、改存储结构,改的是它 |
| 外模式/模式映像 | 逻辑独立性 | 模式变了,改这个映像,应用程序不用改 |
| 模式/内模式映像 | 物理独立性 | 存储结构变了,改这个映像,应用程序不用改 |
易错物理独立性对应模式/内模式映像,逻辑独立性对应外模式/模式映像,别颠倒。
外模式(子模式、用户模式)→ 视图;模式(概念模式)→ 基本表;内模式(存储模式)→ 存储文件。
补充外模式是最高层的抽象,内模式是最低层(物理层)
怎么记三级模式记对应:外模式对应视图,模式对应基本表,内模式对应存储文件。
外模式/模式映像 → 逻辑独立性;模式/内模式映像 → 物理独立性。改映像,应用程序不用改。
补充对表建聚簇索引、改存储结构,改变的是内模式
怎么记物理独立性靠模式和内模式之间的映像,逻辑独立性靠外模式和模式之间的映像,别记反。建聚簇索引只改内模式。
需求分析 → 概念设计(E-R 图)→ 逻辑设计(转关系模式、规范化)→ 物理设计。
补充需求分析确定系统边界,产出需求说明文档、数据字典、数据流图,作为逻辑设计的依据
怎么记确定系统边界在需求分析,画 E-R 图在概念设计,转关系模式和规范化在逻辑设计。
要消除三类冲突:属性冲突、命名冲突(同名异义、异名同义)、结构冲突。
补充同一个东西,一个子系统叫“员工”,另一个叫“职工” → 命名冲突
怎么记同一个东西在一个子系统叫员工、在另一个叫职工,是命名冲突。
复合属性可再分(家庭住址:邮编、省、市、街道);派生属性可由其他属性推出(年龄);多值属性有多个值(多个电话、多个家庭成员)。
补充多值属性:取实体的码和它单独构成关系模式(得到 4NF),不要在原表里加若干组字段
怎么记年龄能由出生年月推出来,是派生属性;联系方式有手机和办公电话两个,是多值属性,要和实体的码一起单独成表。
先在心里说出答案,再点开核对。
逻辑设计的依据来自需求分析阶段,产出的是需求说明文档、数据字典和数据流图;程序文档不是需求分析的产物。所以(51)选 A,(52)选 C。
只列规则;一步步怎么用,看 D3-技巧图解 第 1、2 节
| 联系 | 怎么转 | 例子 |
|---|---|---|
| 1:1 | 并入任意一端,加对方的主键作外键 | 学校(学校号,校名,校长号) |
| 1:n | 并入n 端,加 1 端的主键作外键 | 学生(学号,姓名,院系号) |
| m:n | 独立成表:两端的码 + 联系自己的属性;主键是两端码的组合 | 选课(学号,课程号,成绩) |
| 三元 m:n:p | 独立成表,主键由三个实体的码组成 | 供应(供应商号,项目号,零件号,数量) |
| 同一对实体多次发生 | 主键再加上时间 | 借阅(读者号,书号,借阅日期,归还日期) |
易错m:n 的主键不能只取一端的码;一个病患可由多个医生多次诊治,就诊关系的主键是(病历号,职工号,就诊时间)(11上·54)。
| 运算 | 规则 | 提醒 |
|---|---|---|
| σ 选择 | 选行:只留满足条件的行 | |
| π 投影 | 选列:π1,3(R) = πA,C(R) | 下标数字是列序号,不是值 |
| × 笛卡尔积 | 列数相加,行数相乘 | S 的列接在 R 的后面编号 |
| ⋈ 自然连接 | 按同名属性等值连接,再去掉重复列 | 列数 = 两表列数之和 − 同名属性数 |
| 转成 SQL | π → SELECT;× 或 ⋈ → FROM R, S;选择条件和同名列相等 → WHERE | 条件之间用 AND;同名属性要加表名 |
| 查询优化 | 尽可能早地执行选择运算 | 先在单表上筛掉行,再做连接 |
先在心里说出答案,再点开核对。
只列规则;求候选键、判范式的完整步骤,看 D3-技巧图解 第 3、4 节
先求“必在”属性的闭包:等于全部属性,它就是唯一的候选键。候选键可能不止一个;出现在任一候选键里的属性是主属性。
| 属性出现在哪 | 结论 |
|---|---|
| 只在函数依赖的左边出现 | 必在每个候选键里 |
| 左右都不出现 | 也必在 |
| 只在右边出现 | 必不在 |
| 两边都有 | 待定:必在属性的闭包不等于全集时,一次加一个进去试 |
为什么是这个顺序:每升一级,就多消除一种“不该有的依赖”。判断时永远先求码,再看有没有部分依赖、传递依赖。
易错只到 1NF 的关系有数据冗余、修改不一致、插入异常和删除异常,要分解:把部分依赖、传递依赖涉及的属性另立成表,再保留由原来的码构成的那张表。
| 名称 | 规则 |
|---|---|
| 无损连接(分成两个子模式) | R1∩R2 → R1−R2 或 R1∩R2 → R2−R1 成立 |
| 保持函数依赖 | 每条依赖都能在某个子模式里找到,或由各子模式的依赖推出来 |
| 两个检验的关系 | 互相独立:满足一个不代表满足另一个 |
| 传递依赖 | X→Y、Y→Z,且 Y 不能决定 X,则 X→Z 是传递依赖 |
| 冗余依赖 | F 中能由其余依赖推出来的那一条,比如有 A1→A2、A2→A4 时的 A1→A4 |
Armstrong 公理只有三条:自反律、增广律、传递律。合并、分解、伪传递是由公理推出来的规则。
补充全码:关系的全部属性合起来才是候选键,如 R(H,L,M,P) 的主键是 HLMP
怎么记Armstrong 公理三条:自反、增广、传递;合并规则不在三条公理里。主键是全码,就是所有属性一起当主键。
先在心里说出答案,再点开核对。
执行顺序 · 分组聚合 · 授权与视图(SQL 只在上午考,下午 26 套一次都没考)
| 顺序 | 子句 | 做什么 |
|---|---|---|
| 1 | FROM | 先取出要用的表 |
| 2 | WHERE | 按行过滤;这里不能用聚集函数 |
| 3 | GROUP BY | 题目说“各……”“每个……”就分组 |
| 4 | HAVING | 对分好的组再过滤 |
| 5 | SELECT | 每组算出一行;别名写成“表达式 AS 别名” |
| 6 | ORDER BY | 最后排序;它只排序,不分组 |
“各 / 每个 X” → GROUP BY X;组的条件 → HAVING;去重计数 → COUNT(DISTINCT 列);别名 → 表达式 AS 别名;字符串常量加引号。
补充“至少 3 个项目” → HAVING COUNT(DISTINCT 项目号) > 2;聚集函数忽略 NULL(COUNT(*) 除外)
怎么记至少三个项目,写成项目号去重计数大于二;ORDER BY 只排序,不分组。
GRANT INSERT ON TABLE Students TO UserA WITH GRANT OPTION:带这个子句,对方还能把权限再授予别人。
补充收回用 REVOKE,连带收回转授出去的权限用 CASCADE;列级权限写 UPDATE(列名)
怎么记允许对方把权限再授予他人,用 WITH GRANT OPTION;它不是 WITH CHECK OPTION。
视图是从一个或多个基本表或视图导出的虚表,数据字典只存视图的定义。WITH CHECK OPTION:通过视图插入、修改的行必须满足视图的条件。
怎么记视图不保存数据,只保存定义;WITH CHECK OPTION 管的是通过视图插入和修改的数据。
供第三方调用来更新数据、又不暴露关系模式 → 存储过程;Web 应用访问数据库常用 JDBC;参照另一实体主码的属性 → 外键约束。
易错改数据用 INSERT、DELETE、UPDATE(MODIFY 不是 SQL 命令);建、改、删表用 CREATE、ALTER、DROP
怎么记修改表中的数据用 UPDATE,选项里的 MODIFY 不是 SQL 的数据操纵命令。
先在心里说出答案,再点开核对。
年龄能由出生年月推出,是派生属性;联系方式有两个电话,是多值属性,(54)选 B。部门号参照 Dept 的主码,要建外键约束,(55)选 C。修改数据用 UPDATE,(56)选 C。
ACID · 锁相容 · 恢复 · 分布式透明性
| 故障 | 怎么恢复 |
|---|---|
| 事务故障 | UNDO:撤销这个事务已经做的修改 |
| 系统故障 | 未提交的事务 UNDO,已提交的事务 REDO |
| 介质故障 | 装入后备副本,再用日志重做已提交的事务 |
怎么记恢复靠两样东西:备份和日志。
原子性:全做或全不做;一致性:从一个一致状态到另一个;隔离性:提交前对其他事务不可见;持久性:提交后永久有效。
怎么记“提交前对别的事务不可见”是隔离性,“提交后结果不会丢”是持久性。
丢失修改、不可重复读、读脏数据。用封锁解决:S 锁(共享锁、读锁)和 X 锁(排他锁、写锁)。
补充两段锁协议保证可串行化,但可能产生死锁
怎么记多个事务同时操作同一数据,会出现丢失修改、不可重复读和读脏数据,要靠加锁解决。
只有S 锁与 S 锁相容:数据已加 S 锁,别人还能加 S 锁、不能加 X 锁;已加 X 锁,别人加 S 锁、X 锁都失败。
怎么记只有共享锁和共享锁相容,排他锁和谁都不相容。
定期备份;事务处理时,把更新内容先写入日志文件,按时间间隔把缓冲区写入数据文件。
补充事务故障:UNDO;系统故障:未提交的 UNDO、已提交的 REDO;介质故障:后备副本 + 日志
怎么记恢复靠两样东西:备份和日志。数据库恢复就是在尽可能短的时间内,把数据库恢复到故障前的状态。
分片透明:不需要知道表怎样分块存储;位置透明:不需要知道数据存放的物理位置;复制透明:不需要知道副本在哪些节点;逻辑透明:不需要知道局部数据模型。
怎么记分片、位置、复制、逻辑,透明的程度由高到低。
从时间、地区等多个维度分析数据仓库里的数据,用OLAP(OLTP 面向日常事务处理)。遗传算法:繁殖 → 交叉 → 变异。
补充DBA 用授权功能为用户授权,主要目的是保证数据库的安全性
怎么记多维分析是 OLAP;模拟生物进化的是遗传算法;授权是为了安全性。
先在心里说出答案,再点开核对。
D2、D3 已经被加了排它锁,别人加什么锁都失败,所以(51)选 D。D1 上只有共享锁,T2 再加共享锁能成功;D3 有排它锁,加什么都失败,所以(52)选 C。
D3 晚间任务;著作权在 D2 晚间
和著作权最大的不同:专利、商标都要申请,谁先申请给谁;四种权利里只有注册商标可以无限续展。
| 怎么得到 | 保护多久 | 能否续展 | |
|---|---|---|---|
| 著作权 | 作品完成就自动产生 | 署名权、修改权、保护作品完整权永久;发表权和财产权:终生 + 50 年 / 单位首次发表后 50 年 | 不能 |
| 专利权 | 申请,经审查授权(先申请原则) | 发明20 年、实用新型10 年、外观设计15 年,从申请日算 | 不能 |
| 商标权 | 申请注册(申请在先) | 10 年,从核准注册之日算 | 可以,每次 10 年,次数不限 |
| 商业秘密 | 不用申请,满足三个条件就受保护 | 不定期:一直保密就一直保护 | — |
易错问“保护期可以延长”“可能无限期拥有”的,都选商标权(16下·10、18下·12、22上·13)。
两个以上的人分别就同样的发明申请专利,授予最先申请的人,不看谁先发明、先使用。同一天申请的,由申请人自行协商:可以作为共同申请人,或者一方放弃、从另一方得到适当补偿;协商不成的,都不授予。
补充“甲、乙都授予专利权”不可能出现:同样的发明只能授予一项专利权。
怎么记专利像排队挂号:先到先得;同时到的自己商量,商量不成谁都不给。
执行本单位任务(包括兼职单位交给的任务)完成的发明,专利申请权归该单位。主要利用单位的物质技术条件(资金、设备、不对外公开的资料)完成的,原则上归单位,单位和个人有约定的从约定。
易错“无论有无约定都归单位”是错项;看约定这一条和著作权的委托开发很像。
怎么记用了单位的条件,原则上就是单位的;签过约定就按约定。
商标注册申请在先;同一天申请的,使用在先的获准;同日使用或都没使用的,先协商,协商不成抽签。注册商标有效期10 年,可以续展,次数不限。
易错必须使用注册商标的商品:烟草制品(17上·11)。县级以上行政区划的地名不能作商标,地名另有含义的除外——17下·13 资料答案是“青岛”,按法条应选另有含义的“黄山”,见高频考点总结的存疑题。
怎么记商标比专利多一步:同一天申请,先比谁先用。
要同时满足三条:不为公众所知悉、具有商业价值、权利人采取了保密措施;保护的是技术信息和经营信息。不用申请,一直保密就一直受保护。
补充著作权自动产生;商标、专利必须申请,没注册的商标、没申请的专利都不享有相应的权利。
怎么记商业秘密靠“藏”:藏得住、值钱、真的在藏,三条缺一不可。
专利只在授权的国家或地区有效。只在美国申请了专利、没在中国申请的技术,在中国使用、生产、销售都不用付费;产品返销美国,就要付许可使用费。
补充算法、游戏规则这类智力活动的规则和方法,本身不授予专利。
先在心里说出答案,再点开核对。
两家同一天申请相似商标,先比使用先后:乙 2019 年 5 月就开始用,比甲早,所以乙的“鸿达”获准注册。
同样的发明只能授予一项专利权。同日申请由双方协商:可以共同申请,也可以一方放弃、得到补偿;协商不成的都不授予。两人都授予是不可能的。