第2章 关系模型

 以下图片来自西安交通大学侯迪老师的ppt,仅供学习和复习使用,请勿转载或他用

2.1 关系

2.1.1 域

列的取值范围——域

域:一组值的集合,这组值具有相同的数据类型

集合中元素的个数称为域的基数(Cardinality)

2.1.2 笛卡尔积

所有可能组成的元组:笛卡尔积

  • 一组域D_{1} , D_{2} ,…, D_{n}的笛卡尔积为D_{1}×D_{2}×…×D_{n} = { (d_{1} , d_{2} , … , d_{n}) | d_{i}∈D_{i} , i=1,…,n }

  • 笛卡尔积的每个元素(d_{1} , d_{2} , … , d_{n})称作一个n-元组(n-tuple)

  • 每一个d_{i}叫做一个分量

  • 笛卡尔积是n个域形成的所有可能的n-元组集合

  • 若D_{i}的基础为m_{i},则笛卡尔积的基数为m_{1} \times m_{2} \times ... \times m_{n}

2.1.3 关系

一组域D_{1} , D_{2} ,…, D_{n}的笛卡尔积的子集

笛卡尔积中具有某一方面意义的那些元组被称作一个关系(Relation)。

关系可用R(A_{1}:D_{1}, A_{2}:D_{2}, … , A_{n}:D_{n})表示,可简记为R(A_{1} , A_{2} , … , A_{n} ),这种描述又被称为关系模式(Schema)或表标题(head),其中R是关系的名字, A_{i} 是属性, D_{i} 是属性所对应的域, n是关系的度或目(degree), 关系中元组的数目称为关系的基数(Cardinality)

例如:

image-20210309190255857

关系模式与关系:

  • 同一关系模式下,可有很多的关系。

  • 关系模式是关系的结构, 关系是关系模式在某一时刻的数据。

  • 关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的。

理论上,关系的任意两个元组不能完全相同。(集合的要求:集合内不能有相同的两个元素);现实应用中,表(Table)可能并不完全遵守此特性。

关系的特性:

属性不可再分特性:又被称为关系第一范式

2.1.4 候选键与主键

关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。

主键:

  • 当有多个候选码时,可以选定一个作为主码。

  • DBMS以主码为主要线索管理关系中的各个元组。

2.1.5 主属性与非主属性

包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性 如 “选课”中的S# , C#为主属性,而Sname, Cname, Grade则为非主属性

2.1.6 外键

关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。

两个关系通常是靠外码连接起来的。

image-20210309192707033

image-20210309192801717

2.1.7 小结

image-20210309192907712

2.2 关系模型中的完整性

  • 实体完整性:即关系的主码中的属性值不能为空值。

  • 参照完整性:如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2 中某个元组的Pk 值,或者为空值。

    如下图中,D#是外码,而Dept表中D#没有值为05的元组

    注意,下图中D#为空值是可以的

image-20210309193934129

  • 用户自定义完整性:

    用户针对具体的应用环境定义的完整性约束条件

image-20210309194201412

在三个完整性约束中,实体完整性和参照完整性由DBMS系统自动支持

2.3 关系代数

基于集合,提供了一系列的关系代数操作:并、差、笛卡尔积(广义积)、选择、投影和更名等基本操作

image-20210309194454218

2.3.1 并相容性

某些关系代数操作,如并、差、交等,需满足“并相容性”——参与运算的两个关系及其相关属性之间有一定的对应性、可比性或意义关联性

定义:关系R与关系S存在相容性,当且仅当:

$$
(1) 关系R和关系S的属性数目必须相同;\\ (2) 对于任意i,关系R的第i个属性的域必须和关系S的第i个属性的域相同
$$

2.3.2 并操作

假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,记作:R ∪S, 它由或者出现在关系R中,或者出现在S中的元组构成。

image-20210309195228298

2.3.3 差操作

假设关系R 和关系S是并相容的,则关系R 与关系S 的差运算结果也是一个关系,记作:R  S, 它由出现在关系R中但不出现在关系S中的元组构成。

image-20210309195353647

2.3.4 广义笛卡尔积(中间产物,为了实现连接)

下图中,关系R的元组数目是3,度数是3; 关系S的元组数目是4, 度数是3; 则R x S的元组数目是12, 度数是6

image-20210309195502660

2.3.5 选择操作

image-20210518132551053

image-20210518132602231

2.3.6 投影

image-20210518132629709

image-20210518132637368

注意投影后要去掉重复元组!

小结

image-20210518132707531

先from(需要的表),再连接join,再选择where,最后投影select

2.3.7 交

image-20210518132817902

image-20210518132823039

2.3.8 \theta-连接

image-20210518132901821

image-20210518132913008

image-20210518132920214

2.3.9 等值连接

image-20210518132943837

image-20210518132948685

2.3.10 自然连接

image-20210518133009699

注意最后会去掉重复的属性列。

image-20210518133033626

2.3.11 除操作

image-20210518133105443

image-20210518133151946

image-20210518133202223

image-20210518133256145

image-20210518133333444

2.3.12 外连接

image-20210518133518761

image-20210518133615078

image-20210518133647165

image-20210518133654800

image-20210518133821365

image-20210518133843549

2.4 关系演算之元组演算

image-20210518163321235

image-20210518163352396

image-20210518163406472

image-20210518163417685

image-20210518163443536

2.4.1 例子

image-20210518163504629

image-20210518163621112

image-20210518163636109

2.4.2 存在量词和全称量词

image-20210518163719043

image-20210518163800379

image-20210518164001142

可以使用全称量词与存在量词的等价关系改写

2.5 关系演算之域演算

image-20210518164507669

2.5.1 例子

image-20210518164720857

2.5.2 元组演算和域演算的比较

image-20210518164857615

2.5.3 关系运算的安全性

即不产生无限关系和无穷验证的运算

image-20210518165004747

需要对关系演算加约束:DOM

image-20210518165057144

image-20210518165414994

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值