第2部分:关系数据库设计题型
第4章:概念数据库设计
要求:准确掌握基本概念、熟练使⽤建模⼯具设计概念数据库模型
数据库设计的基本过程:
概念设计到逻辑设计到物理设计
概念模型设计:实体-联系(E-R)模型:
与实体相关的概念(实体、属性、属性的分类、键、实体型、实体集)
实体:现实世界中的对象在数据库中的形式
属性:刻画实体的抽象特性
属性分类:
-
复合属性:多个属性一起
-
多值属性:一个属性的多种取值
实体型相关(实体型、实体集、键属性)
-
将相同属性的实体构成一个类型就是实体型
-
实体型的对象实例的集合交实体集
与联系相关的概念(联系、联系型、联系集、联系型的属性、联系型的度、联系型的基数⽐、联系型的参与度)
联系相关
-
联系就说实体之间的关系
-
联系型是类型 联系集是集合
-
联系型的度是关系到的实体的个数
多元联系 一般不等价
基数比 靠近哪一方,那一份出对应比例的实体个数与另一边对应
存在依赖/参与度约束 :是否全部参与
弱实体型(弱实体型、部分键、标识实体型、标识联系型)
第5章:逻辑数据库设计
-
要求准确掌握基本概念
-
熟练地将概念数据模型转换为关系数据库模式
-
熟练进⾏函数依赖的推理,
-
判断函数依赖集的等价性/覆盖性,
-
计算最⼩覆盖等
-
熟练判断关系模式的范式级别
-
熟练判断关系模式分解是否满⾜⽆损连接性或函数依赖性
概念数据模型转换为关系数据库模式:
实体型的转换、
复合属性的转换:展开即可
多值属性的转换:再定义一个多值属性的关系
M:N联系型的转换:
无法省略联系型关系,将两个实体型的主键作为联系型的主键即可
1:N联系型的转换、
将基数为1的一方的主键,放到N的一方里面,同时进行外键约束
1:1联系型的转换、
-
要注意联系型属性的划分是否合理
二元联系型自转
标识联系型转换
-
不用转了,因为弱实体型中的外键可以看作标识联系型
弱实体型的转换
-
主键是属主实体型的主键+弱实体型的部分键,同时建立外键
综上:
函数依赖:
函数依赖的概念
-
X决定Y,Y依赖于X
平凡函数依赖、
完全函数依赖、
部分函数依赖:与完全依赖相反
传递函数依赖(反之就是直接依赖)
逻辑蕴含:F包含了一个函数依赖
Armstrong公理
Armstrong的导出规则
合并和分解互为逆;
属性集的闭包
函数依赖的推理、
https://blog.csdn.net/nailuoch/article/details/94010099
函数依赖集的闭包、
计算属性值闭包
等价函数依赖集、
函数依赖集的覆盖、
判定等价函数依赖集
最⼩函数依赖集/最小覆盖
总结
范式:
-
只要记住,1NF到2NF消除非主属性的部分依赖,2NF到3NF消除非主属性的传递依赖,3NF到BCNF消除主属性的部分和传递依赖就行了
1NF的定义、
-
由于1NF 非主属性部分依赖于候选键,导致了很多问题;Sdept,sname和Cno无关
2NF的定义、
-
2NF中有非主属性传递依赖于候选键,所以也有一堆问题
3NF的定义、
-
3NF中有主属性传递或部分依赖于其它候选键,也有很多问题
BCNF的定义
关系模式分解:
关系模式分解的概念、
⽆损连接分解、
保持函数依赖的分解、
⽆损连接分解的判定(分解为两个关系模式的情况)、
-
看两个分解交集的那部分,是否至少能决定一种一个,如果能,说明连接的时候能固定住,达到无损连接
函数依赖保持性判定
对每个X—>Y,在每个U中,X取交集再求F闭包,再和U取交集,这些属性是在U中保持主依赖的
3NF分解算法、
-
先看最小覆盖合并后,是否一个候选键能推出除自己外的所有属性,此时所有非主属性一定完全且直接依赖于候选键,直接返回原集合
-
不是的话进行分解:先将候选键分解出去,因为这些不涉及非主属性,可以直接拿走。
-
再将所有最小函数依赖分解出来,这样一定满足第一点要求
-
最后再看是否冗余,进行去重
BCNF分解算法(无损连接分解)
利用增广率可以得到
第6章:物理数据库设计
要求准确掌握基本概念
索引设计:
索引设计的准则(应该不考)
索引的功能、
索引的类型(聚簇索引、⾮聚簇索引、主索引、辅助索引、唯⼀索引、稠密索引、稀疏索引)、
有序索引和哈希索引
有序索引分类
聚簇和非聚簇
索引组织表
稠密和稀疏索引
主索引和二级索引(辅助索引)
唯一索引和外键索引
创建索引的⽅法
关系模式的优化:
规范的关系模式设计存在的问题
关系的划分:
⽔平划分:有点像外模式
垂直划分:
-
BCNF继续分解成小的BCNF达到查询快的目的