中级数据库工程师笔记(十三)------ 关系数据库

一、概述

1.1 关系模型

在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

用表格结构表示实体集,用外键(外码)表示实体间联系。

其中行表示元祖,列表示属性。

优点:

  • 建立在严格的数据概念基础上
  • 概念单一,结构简单、清晰,用户易懂易用
  • 存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作

缺点:由于存取路径透明,查询效率往往不如非关系数据模型

1.2 基本关系

基本关系具有以下6条性质:

(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。

(2)不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

(3)列的顺序无所谓,即列的次序可以任意交换。

(4)任意两个元祖不能完全相同。

(5)行的顺序无所谓,即行的次序可以任意交换。

关系的描述称为关系模式,关系模式是一个五元组,形式化地表示为:

R(U,D,DOM,F)

R:关系名

U:组成该关系的属性名集合

D:属性组U中属性所来自的域

DOM:属性向域的映像集合

F:属性间的数据依赖关系集合

1.3 完整性约束

(1)实体完整性:指关系的主关键字不能重复也不能取空值。

(2)参照完整性:定义建立关系之间联系的主关键字与外部关键字引用的约束条件。

(3)用户定义完整性:根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

二、关系运算

2.1 常用的关系操作

  • 查询:选择、投影、连接、除、并、交、差
  • 数据更新:插入、删除、修改
  • 传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积
  • 专门的关系运算包含:选择、投影、连接、除4种运算。

2.2 关系运算

(1)投影操作从关系R中选择出若干属性列组成新的关系,该操作对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组,选择满足关系的列。

(2)选择:在关系R中选择满足给定条件的元祖,选择满足关系的行。

(3)θ连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元祖。

  • 一般连接
  • 等值连接:从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元祖
  • 自然连接:是一种特殊的等值连接(两个关系中进行比较的分量必须是相同的属性组;在结果中把重复的属性列去掉)

(4)外连接:关系R、S进行自然连接时,如果把舍弃的元祖也保存在结果关系中,而在其他属性上填空值(Null)。

(5)左连接:关系R、S进行自然连接时,如果把只把左边关系R中要舍弃的元祖保留就叫做左外连接。

(6)右连接:关系R、S进行自然连接时,如果把只把右边关系R中要舍弃的元祖保留就叫做右外连接。

(7)除法

三、查询优化

优化的准则:

  • 提早执行选择运算,目的:减少中间结果
  • 合并乘积与选择运算为连接运算,目的:避免扫描大的关系
  • 将投影运算与其他运算同时进行,目的:避免重复扫描关系
  • 将投影运算与二目运算结合起来。目的:减少扫描关系的遍数
  • 在执行连接前对关系适当的预处理:索引连接法,排序合并连接法
  • 存储公共子表达式。目的:只需检索中间结果,不需重复计算

四、关系数据库设计基础

4.1 函数依赖

定义:设U{A1,A2,... ,An}是属性集合,R(U)是U上的一个关系,x、y是U的子集。若对于R(U)下的任何一个可能的关系,均有x的一个值对应于y的唯一具体值,称y函数依赖于x,记为x→y。

4.2 其他函数依赖

函数依赖中还可细分为多种函数依赖

  • 部分函数依赖
  • 完全函数依赖
  • 传递函数依赖

(1)部分函数依赖

设R(U)是属性集U上的关系,x、y是U的子集,x’是x的真子集,若x→y,且x’→y,则称y部分依赖x,记为X^{p} →Y → Y。

(2)完全函数依赖

所谓完全依赖是指在依赖关系的决定项(即依赖关系的左项)中没有多余属性,有多余属性就是部分依赖。

(3)传递函数依赖

在关系模式R(U)中,设X、Y、Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖于X。

4.3 规范化理论

设有一个关系模式R(SNAME,CNAME,TNAME,TADDRESS),其属性分别表示学生姓名、课程名、任课教师姓名和任课教师地址。

这个模式存在下列存储异常问题。

(1)数据冗余

(2)修改异常

(3)插入异常

(4)删除异常

4.4 范式

(1)第一范式(1NF)

如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式,r是模式化的关系。

说明:在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。

(2)第二范式(2NF)

表中的属性必须完全依赖于全部主键,而不是部分主键。所以只有一个主键的表如果符合第一范式,那一定是第二范式。

(3)第三范式(3NF)

如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选码。

(4)BC范式

若关系模式R是1NF,且每个属性都不传递依赖于R的候选码,那么称R是BCNF模式。

4.5 模式分解及分解后特性

(1)分解

  • 分解具有“无损连接性”
  • 分解要“保持函数依赖”
  • 分解既要“无损连接性”,又要具有“保持函数依赖”

(2)有损连接

(3)保持函数依赖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值