美文网首页
架构师在复习-数据库-关系模式

架构师在复习-数据库-关系模式

作者: 泡茶晒太阳 | 来源:发表于2019-06-18 10:47 被阅读0次

模式分解

关系模式是指关系的描述,现实世界随着时间在不断地变化,因而在不同的时刻,关系模式的关系也会有所变化。但是,现实世界的许多己有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件。

定义

关系的描述称为关系模式(Relation Schema)它可以形式化地表示为:

R(U,D,dom,F)

其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。

通常简记为:

R(U)或R(A1,A2,…,An)

其中R为关系名,U为属性名集合,A1,A2,…,An为各属性名。

模式分解图

(1) 目标

将一个大的关系模式用几个较小的模式代替

(2) 定义

关系模式R(U), ρ = {R1(U1), R2(U2), ..., Rk(Uk)}是一个关系模式的集合,若U1∪U2∪...∪Uk = U成立,则ρ是R(U)的一个分解

(3)一个关系模式可以有多种不同的分解

(4) 模式分解的原则

不丢失信息

对同样的数据,分解前后的查询结果应相同

保持函数依赖关系

不丢失数据间的约束关系

无损连接分解

(1) 分解后的关系通过自然连接能够恢复为原来的关系,保证连接后的关系与原关系完全一致,则称为无损连接分解

(2) 有损连接分解可能会丢失元组,也有可能增加元组

(3)无损连接分解满足的是模式分解的原则1:不丢失信息

判断一个分解是否是无损连接分解的方法

(1) 通用方法

属性集合U: A1, A2, ..., An

分解 R1, R2, ..., Rk,每个分解包含的都是U的真子集

函数依赖集F

步骤

1、构造一张表, k行n列,表中每个单元(i行j列)的取值为:

如果该行对应的分解中包括了该列的属性,填入aj;如果不包含,填入bij

2、逐个考察函数依赖集F中的每个依赖关系 Xi -> Yi,若Xi包括了属性Ap,Aq,则在所有行中寻找在Ap,Aq列相等的行。这时再看Yi对应的几个属性列,如果在这些行中对应属性列的取值里出现了aj,则修改其他行的列值都是aj;如果没出现aj,则将这些行的列值修改为这些行中具有最小下标的bij的值。总之,找到的这些在X上相等的行,经过这个步骤以后,它们的Y上也要相等

3、 对所有F中的函数依赖都操作以后,只要表中出现了一行,它们的值恰好为a1, a2, ..., an,那么该分解为无损分解;否则为有损分解

(2) 判断只有两个关系连接时的简易方法

R的一个分解 ρ = {R1, R2},函数依赖集F,如果以下两个表达式至少有一个满足:

  (R1∩R2)->(R1-R2) ∈ F

  (R1∩R2)->(R2-R1) ∈ F

则ρ具有无损连接性

分解的保持依赖性

(1) 判断分解为多个关系以后,分解后的函数依赖关系是否与原函数依赖集等价

(2)判断方法

设函数依赖集为F,分解 R1, R2, ..., Rk

1° 对分解后的每个关系Ri,求F在Ri上的函数依赖投影Ri(F)

2° 令G = ∪Ri(F),对F中的每个依赖X->Y,在G中分别计算X的属性闭包,并检验是否包含Y中所有属性;如果G可以蕴含F中的所有函数依赖,则保持分解依赖性

参考详细:

https://www.cnblogs.com/scarecrow-ryan/p/9204821.html

相关文章

  • 架构师在复习-数据库-关系模式

    模式分解 关系模式是指关系的描述,现实世界随着时间在不断地变化,因而在不同的时刻,关系模式的关系也会有所变化。但是...

  • chapter10_关系数据库设计理论_1_关系模型的存储异常

    数据库模式:在关系数据库中包含了一组关系,一个关系对应一个关系模式。这组关系所对应关系模式的集合称为数据库模式。 ...

  • 《从零开始学架构》读书笔记三:存储高性能

     关于存储,无不例外要和数据库打交道,目前比较主流的一些关系型数据库,非关系型数据库是作为架构师必须要了解的东西。...

  • mysql 主键和索引的区别和联系

    mysql属于关系型关系数据库,关系型数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: ...

  • 数据库的三级模式

    今天复习了数据库的三级模式,并下载安装了mysql数据库,对mysql也有了大概的了解。 外模式 外模式又称子模式...

  • 4、Django之ORM框架

    一、定义 对象关系映射(Object Relational Mapping,简称ORM)模式的作用是在关系型数据库...

  • Database-0005-范式

    2016.8.10 范式(数据库设计范式) 是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系...

  • 关系型数据库 VS 非关系型数据库

    一、关系型数据库? 1.概念 关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型...

  • SQL范式

    范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

  • 范式

    范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

网友评论

      本文标题:架构师在复习-数据库-关系模式

      本文链接:https://www.haomeiwen.com/subject/ecpxqctx.html