4. 数据库

我们分别说下数据库模式,ER模型,关系代数和元组演算,规范化理论,并发控制,数据库完整性约束,分布式数据库和数据仓库的概念

首先是数据库模式,在这次考试中,我们需要了解,这个模式是一个三级模式

首先是物理数据库

建立在其上的是内模式,也就是如何存储为文件

然后是概念模式,也就是对应的表,将表和文件映射起来的关系,称为 概念模式-内模式映射

然后在表之上,还存着用户视图,用户供用户使用,称为外模式,将外模式和概念模式联系在一次的映射称为外模式-概念模式映射

整体的设计过程也就是

首先根据遇到的需求进行分析

形成数据流图,数据字典,需求说明书

然后根据这些完成概念结构设计,形成ER模型

之后就是逻辑结构设计,得到关系模式

最后是实际的物理设计

那么我们直接看其中的重点,ER模型

一个模型中,往往具有一个实体,实体中有多个属性

实体之间的关联称为联系

对于这样多个ER模型,集成方式可以是多个局部E-R图一次集成

或者逐步集成,累加的方式批次集成两个局部E-R

不过在继承之中,会产生一些冲突

对于这些冲突,我们列举如下

比如属性冲突,包含属性域冲突和属性取值冲突

或者命名冲突,包含同名异义和异名异义

还有结构冲突,同一个对象在不同应用中具有不同的抽象,同一实体在不同局部E-R图中包含的属性个数和属性排列次序不完全相同

常见的实体之间的关系有着

1:1的关系 1:n的关系 多对多的关系 也就是 m:n的关系

这里的常考样式为

每个实体各一个,关联关系至少一个,那么最少也是4个关系模型

其次我们进入到数据库系统中,查看相关的关系代数

主要有如下的几个关系

这里的重点是后四项,不过我们从易到难,依次来看

首先是并交差,都是简单的数学概念

对于差,则是进行求数据集的差值

其次是笛卡尔积,本质上就是简单的相乘,将S1 和 S2进行乘法

然后对于投影,则类似sql中的select

利用pai字段进行选择

对于选择,则类似where条件一样

还应该是 pai字段=某个值

最后是连接,类似于join

默认选择同名字段进行join

也支持使用指定字段匹配

S1.Sno = S2.Sno

接下来我们进行到函数规范化的概念中的函数依赖

主要是了解两个概念

1, 部分函数依赖

2, 传递函数依赖

这个概念指的是,利用A和B的关系可以确定一个C

其次是传递函数依赖

可以根据A得到B,进而得到C,但是不可逆,也就是可以根据A得到一个B,但是B不能确定一个A

对于这种规范化的设计,主要的目的是为了解决一些问题

比如数据冗余,更新异常,插入异常,删除异常

首先是数据冗余

如上的表设计就是数据冗余

我们本可以通过DNO来获取到DNAME和 LOCAtION

直接这样放在一张表里存在数据冗余的问题

而且回来更新DNO相关数据的时候,可能由于更新不完整,存在数据异常的问题

以至于插入异常和删除异常

那么我们在规范化设计中,很重要的一环,就是确定表中的键

确定一个主键的顺序,我们首先确定对应的超键,也就是具有唯一标识的元组,然后把消除多余属性,确定候选键,然后选择一个作为主键

除此之外还有个外键的概念,主要是其他关系的主键

就比如 我们有 学号,身份证号,姓名,性别的一张表

我们可以通过学号 + 姓名, 身份证号,学号等作为唯一标识元组,确定超键

然后是消除 学号+姓名这种的冗余数据

确定身份证号和学号这两个键为候选键,然后选择一个为主键

这种主键确定相关的题一般都是让我们确定候选键元组

就比如如下两道题

这种题的做题方式是首先画出一个有向图

然后找到入度为0的属性,以此为起点,遍历所有有向图,如果可以遍历所有节点

就是候选键

如果入度为0的属性不能遍历所有节点,就加入一些中间节点到节点集中,直到节点集中的节点可以遍历所有的结点

那么第一道题,我们可以通过A1 遍历所有节点,且入度为0,那么候选就应该是A1

第二道题,我们画出如下的有向图

上面入度为0 的节点不少,但是都没法单独遍历所有节点,故需要多个结点打配合

至少需要一个C,然后是A,B,D

最后一题中,候选键可以是A和B,因为A可以到B C, B也可以到AC

其次是我们说下第一第二第三范式

对于第一范式

需要确保属性值都是不可分的原子值

其次是第二范式,是需要消除非主属性队候选键的部分依赖

到第三范式,需要消除非主属性队候选键的传递依赖

到BCNF,需要消除主属性队候选键的传递依赖

那么我们简单来看各个级别范式的实现,首先是第一范式

需要满足原子级别,就比如如下的关系

就不满足,需要我们将高级职称人数这一列去掉就可以了

第二范式就是需要先给予第一范式之上,确保每一个非主属性都依赖主键

对于这一个关系,SNO对应学生,GRADE绑定学生

CNO对应的课程,CREDIT绑定的课程

这就是非主属性依赖于两个主键,不符合第二范式,需要拆分SNO 和 CNO为两个表

最后是第三范式

当且仅当R是1NF,如果E没有非主属性传递依赖于码的时候,则称R为第三范式

其中,DNO指的是系链接,后面的DNAME和LOCATION依赖于DNO所以可以拆分出去,不符合第三范式

然后是BC范式,R是是一个关系模式,F是他的依赖集,R属于BCNF当且

仅当F中每个依赖的决定因素必定包含R的某个候选码

就比如关系模式STJ中,S表达学生,T是老师,J是课程,每个老师只教一个课程

每个课程都有若干老师,每门课在绑定学生的时候就对应一个老师了

这样无论是SJ还是ST都可以确定剩下属性

而SJ和ST都是候选项,也就是所有的推断公式的左边都是候选项,符合BC范式

发表评论

邮箱地址不会被公开。 必填项已用*标注