个人博客

三级模式-两层映射

软考数据库-所有知识复习总结

所谓的三级模式为外模式,概念模式,内模式。

  • 外模式又被称为用户模式,让用户和引用程序打交道,对数据结构的逻辑描述,操作数据的逻辑。(呈现为视图级)
  • 内模式又被称为存储模式。讲数据结构的物理存储,主要考虑到数据到底用什么方法存储。形成文件级结构
  • 概念模式不用管是如何存储的以及如何访问 数据库的技术,其又被称为模式,主要表现为表级结构

何为两层映射

  1. 外模式和模式的映射
  2. 模式和内模式的映射

映射的作用是为了让数据具有独立性,让数据和程序进行分离。数据的物理独立性在模式和内模式的映射中。当数据在物理结构上发生了变化,只需要改变次层映射。当数据的逻辑独立性发生变化时。我们只需要改变外模式和模式之间的映射关系

数据库的设计过程

软考数据库-所有知识复习总结
四个阶段及对应的产物

  1. 需求分析–>需求说明书,数据流图,数据字典
  2. 概念结构设计–>ER模型
  3. 逻辑结构设计–>关系模式
  4. 物理设计–>物理设计

ER模型

反应实体和实体之间的关系

软考数据库-所有知识复习总结
图的映射关系表

代表什么
矩形 实体
菱形 联系
椭圆形 属性
矩形加两条竖线 弱实体(上图中的经历和服务员就是弱实体)
椭圆形 属性
矩形加两条竖线 弱实体,是某一个实体的特殊化,线上也会加上一个点(上图中的经历和服务员就是弱实体)

ER模型-1对1的联系

软考数据库-所有知识复习总结
校长和学长就是一对一的关系,任职就是他们之间的联系。下面图中的每一个实体就可以制作一张表。表中使他们的属性联系也可建立一张表,每张表中的主键是唯一的。具有代表性的属性。对于他们之间的关系模式可以写成右边两种方式,联系可以并到校长表上,也可以并到学校表上**

软考数据库-所有知识复习总结
所以1对1的的联系表两端都可以并

ER模型-1对n(多)的联系

软考数据库-所有知识复习总结
1个客户对应多个账户,一个账户对应一个客户

软考数据库-所有知识复习总结1:n(多)的情况只能将联系关系往多的一方并

ER模型-m(多)对n(多)的联系

软考数据库-所有知识复习总结
1个学生可以选多们课,一个课也对应多个学生。
软考数据库-所有知识复习总结
多对多的联系必须产生一个新表

E-R模型特点总结

  1. 一个实体转换为一个关系模式
  2. 联系转关系模式的注意点如下:

1:1的联系可以将联系合并至任意一段的实体关系模式中。
1:n的联系可将联系合并至n端实体关系模式中。
m:n联系 :联系必须单独转换成关系模式

3.三个以上实体间的一个多元联系

关系代数

并,交,差运算

软考数据库-所有知识复习总结
所有运算,主要是看主键(主码)

笛卡尔集

它的符号就是乘号
软考数据库-所有知识复习总结
看上面s1和s2两张表,它们分别有三条记录。3乘以3等于九,所以笛卡尔积的表有9条记录

投影

这里的投影其实就是将表的属性做投影,把选择的属性再做一张表

选择

就是过滤掉不符合条件的表的记录

自然连接

投影、选择和笛卡儿积这一系列组成了自然连接

两个关系R和S的自然联接操作具体计算过程如下:

  1. 计算R×S ;
  2. 设R和S的公共属性是A1,…,AK,挑选R×S中满足R.A1=S.A1,…,R.AK=S.AK的那些元组;
  3. ③去掉S.A1,…,S.AK这些列。
    软考数据库-所有知识复习总结

规范化理论

规范化理论的产生

先看下面的一张表
软考数据库-所有知识复习总结
从上表可以看出上面的选修课程名,任课教师名,任课教师地址等数据都产生了数据冗余,如过需要修改这张表将会很容易出现修改异常,比如我们需要修改数学课上课的地址,如果只修改一个是肯定不行的,需要修改多个,只要有数据冗余还会出现插入异常,删除异常问题

所以我们需要要对某些表结构进行规范化,并解决下列的极大问题:

  • 数据冗余
  • 修改异常
  • 插入异常
  • 删除异常

所以最后需要将此张表进行拆分

规范化理论-依赖

设R(u)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[x] =v[x],就有u[y] =v[y],则成x函数决定y,或称之为Y函数依赖于x,记为x->y

看下面的图,小学生都应该能理解什么是部分函数依赖,什么是传递函数依赖
软考数据库-所有知识复习总结

规划化理论-键

  • 候选码(键):唯一标志元组(一条记录,表中的一行),且无冗余,候选键可以是多个
  • 主键:在候选键上任选一个都是主键
  • 其他关系表的主键

求候选键

图示法求候选键

  1. 将关系的函数依赖关系,用有向图的方式表示
  2. 找出入度为0的属性,并以该属性集合为起点,尝试遍历所有有向图,若能正常遍历图中所有节点,则该属性即为关系模式的候选键
  3. 若入度为0的属性集不能遍历图中的所有节点,则徐亚so尝试性的将一些中间节点(即有入度,也有出度的节点)并入入度为0的的属性集中,直至该集合能遍历所有节点

看下面的三个例题
软考数据库-所有知识复习总结
画图:
软考数据库-所有知识复习总结
分析得a1能走完全图所以候选码是a1

软考数据库-所有知识复习总结
软考数据库-所有知识复习总结
分析能得出 ABCD才是候选码

规范化理论的主属性和非主属性

组成候选码的属性就是主属性,其它的就是非主属性

规范化理论-范式

  • 第一范式:在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,

软考数据库-所有知识复习总结
上面因为高级职称人数使得不是第一范式,变成第一范式的方法是拆

  • 第二范式:当且仅当关系模式R是第一范式(1NF),且每一个非主属性完全依赖于候选键(没有不完全依赖),也就是第二范式没有部分函数依赖
  • 第三范式是在第二范式的基础上去除传递函数依赖
  • BC范式:在第三范式的基础上,F依赖集中每个依赖的决定因数必定包含R的某个候选码

软考数据库-所有知识复习总结

规范化理论模式分解

设数据库模式p={R1,R2,…Rk}是关系模式R的一个分解,F是R上的函数依赖集,p中的每个模式Ri上的FD集是Fi。如果{F1,F2,…,Fk}与F是等价的(即相互逻辑蕴含),那么分解p保持FD。

看例题:
软考数据库-所有知识复习总结
上图中:第一个分解的所有依赖关系都保持了,而第二个A->BC BC->E的两个依赖关系没保持所以不行

无损分解

有损分解是分解之后就不能还原原来的依赖关系了,反之这就是无损失分解,指将一个关系模式分解成若干个关系模式后,通过自然连接和投影灯运算扔能还原原来的关系模式
软考数据库-所有知识复习总结
将最大的成绩表分解后的三个表还可以还原到原来的成绩表就是无损分解

表格法求解是否是无损分解:
将上一张图的分解的三个模式的属性画成如下表所示
软考数据库-所有知识复习总结
如果根据已有的依赖关系能将表上的一行的所有属性都打勾说明是无损分解

sql语句

这东西对于程序员也在熟悉不过了,我这里只过一遍
建表:
软考数据库-所有知识复习总结

  • 主键-PRIMARY KEY
  • 外键-FOREIGN KEY

删除表
软考数据库-所有知识复习总结
选择查询
软考数据库-所有知识复习总结

插入,修改

软考数据库-所有知识复习总结

并发控制

事物的几大特性

  • 原子性
  • 一致性
  • 隔离性
  • 持续性

软考数据库-所有知识复习总结
软考数据库-所有知识复习总结
s锁是共享锁,x锁是排他锁

数据库完整性约束

  • 实体完整性约束 (主键不为空,唯一)
  • 参照完整性约束 (外键有的话一定要索引,要么没有)
  • 用户自定义完整性约束

相关文章:

  • 2021-11-26
  • 2022-01-17
  • 2022-01-15
  • 2021-09-22
猜你喜欢
  • 2021-12-16
  • 2021-12-04
  • 2021-05-20
  • 2021-04-27
相关资源
相似解决方案