关系数据库是什么?表、行、列等核心概念解析

网站建设 厦门萤点网络科技 2026-05-09 00:12 21 0
关系数据模型 先贴一张图,挺多不理解的,这里只解释一些我能理解的概念 关系(表)属性(列、字段)元组(行、记录)实例 相当于快照,某一时刻数据库中存储数据的集合 模式 数据库的结构定义,比如这个表有什么属性,属性的类型等等 键(码)完整性...

关系数据模型

1

先贴一张图,挺多不理解的,这里只解释一些我能理解的概念

关系(表)属性(列、字段)元组(、记录)实例

相当于快照,某一时刻数据库中存储数据的集合

模式

数据库的结构定义,比如这个表有什么属性,属性的类型等等

键(码)完整性约束值域

一个属性可以取的所有可能值的集合

原子性

每个属性值必须是不可分割的最小的单位,简单来说属性必须短小精悍,包含一种信息最佳,多了不行

关系数据库

一种数据库模型,其中数据以表格形式组织,每个表格由行和列组成,并通过关系(通常是外键)来连接多个表格

符号表示(字母应该没错,大小写不确定)元组

元组用 t 表示,即 tuple

属性

A1,A2, …, An 表示n个属性

值域

D1, D2, …. Dn 表示对应属性的取值范围

关系

用 R 表示,关系就是 D1 x D2 x … x Dn 的一个子集

关系模式

R = (A1, A2, …, An) 表示一个关系模式

用 K 表示超键

其他键用英文名,主键--- key, 候选键--- key, 外键--- key

关系代数简单介绍下符号和名称

特别要注意的是,关系代数其实就是一些操作的符号化,这些操作最后返回的都是表格

选择

2

首先这个 p是挑选条件,然后 r 就是被操作的表格

这样组合起来就是,从 表格 r 中挑选出符合条件 p 的行

所以这是一个 行操作,也就是筛选出我们想要的行

这里有一个例子,大家结合上面对符号的翻译在看看

2

投影

A1,A2.. 这些是最后投影的属性,即最后筛选出来的表格应该具有的属性,之所以叫投影,是因为它还要去除重复行(只保留一份)

r 是被操作的表格

这样组合起来就是,从表格 r 中,仅留下A1,A2..这些属性作为列,并且去除重复行

这里有个例子,大家结合上面的符号翻译再看看

4

笛卡尔积

5

这个写得挺好,挺容易理解的,我就直接粘贴了,笛卡尔积就和简单的排列组合很相似,大家可以结合数学的排列组合进行理解

这里给个例子

5

集合运算,并交差

这个就和数学上的差不多,这里就不多提了,记下下面的这个公式

要注意的是,在关系代数中,这些集合操作要求参与操作的关系具有完全相同的列名和数据类型

自然连接

r和s分别是不同的关系,也就是不同的表,连接的意思就是将不同的表 合并 在一起

自然连接也是符合 交换律和结合律 的

11

我们看下面这个例子

8

上图是具体的表格,下图是符号的定义,我们来根据上面的图表解释下下面的定义

首先我们有 R和S 两张不同的表,可以看到他们的列有重合,即 B和D 是重合的,那我们的连接就是让 R和S合并,即共享一份列B和列D

具体的步骤是,先做笛卡尔积 rXs 得到一张巨大的表,然后对其进行选择操作,就是列B和列D的值相等,最后投影出获得的表格,这就是自然连接了

9

重命名

这里 E 是一个表达式,可以是列之间的计算或者表格或者列等等,总之它是 原名, 然后 x 是新的名字

Theta连接

别看符号挺复杂的,其实代表的含义就是,先做笛卡尔积,然后做选择操作

赋值操作

其实就和编程中的变量赋值一个意思

x 这个意思就是把y的值赋给x,只不过在关系代数中,这个值可能是一个表格

外连接

首先这里是个例子,我们根据例子,来区分自然连接和外连接

两个表格 和

13

自然连接

14

左外连接

15

大家对比下这两张结果图,可以发现外连接的结果多了一行

让我们解释这种差别,自然连接是根据共享属性进行连接,这里是ID属性,它返回的结果中,ID的属性值是两张表中共有的,也就是说,自然连接 只保留公共属性值相同的记录,所以我们能看到,ID为15151和76766的记录被舍去了,因为他们不是两张表共有的属性值( 注意区分共有的属性,共有的属性值 )

理解了这个后,让我们看到左外连接的结果图,它其实和自然连接很像,不同的点是,它要求保留左边表格的所有行,所以我们能看到 ID为15151(表格独有) 的记录,同样的,这一条记录的 为null, 也就是说,表中没有匹配值

再来看看右外连接

16

它要求的是保留右边变革的所有行,所以 ID为76766(表格独有) 的记录被保留了

最后来看看全外连接

17

那这就要求两张表的所有记录都要保留了

大家在好好理解外连接和自然连接的区别,还有外连接中左右全这三个的区别

外连接扩展(符号定义)

以下是左外连接的定义

这个解释挺好的

18

我们要解析这个定义,首先要明白,左外连接与自然连接的关系

首先自然连接是左外连接的一部分

然后,我们在获取到左边表格没有被自然连接的记录(用差和投影)

然后再将这些记录连接一些null值(这些null值就表示右边的表格没有匹配值),最后做一个并集就是左外连接的结果了

其他两个也差不多

这个挺复杂的,对于 r ÷ s,可以把它翻译成 找出关系 r 中哪些元组(属性值集合)与关系 s 的每个元组(属性值集合)都匹配,匹配的意思是结合的元组在关系 r 中存在

20

也就是说 s 中的每条记录都必须在 r 中存在(s 的列数不大于 r的列数)

直接看例子吧,

21

根据我们的翻译,这个例子的 r ÷ s 翻译成,找出关系 r 中哪些属性A的属性值能和关系 s 的属性B的所有值匹配,即结合成的元组在关系 r 中存在

再来看个例子

22

根据我们的翻译,这个例子的 r ÷ s 翻译成,找出关系 r 中哪些属性ABC的属性值集合能和关系 s 的所有元组匹配,即结合成的元组在关系 r 中存在

广义投影

投影的列可以是属性键的计算值(比如可以投影 A+B 这种数学运算的结果),同时会保留重复的记录

聚合

看个例子,左边是原表,右边是结果,g 的左边是属性名,右边是聚合函数(聚合函数会对每个分组执行),然后就是操作的原表了

25

可以加个as对聚合函数的值进行重命名

数据库的修改操作

27

这里就是说,可以通过赋值操作和集合运算操作实现对数据库的删除、插入、更新

关于NULL值

28

这里是说进行一些 未知 的操作会产生NULL值