第三章 关系数据模型

3.1 关系数据模型和关系数据库

关系数据模型:由关系数据结构、关系操作集合和关系完整性约束三大要素组成。

1.关系数据结构:关系模型把数据库表示为关系的集合(关系模型中数据的逻辑结构是一张二维表)。

2.关系操作集合:关系模型中常用的关系操作包括:选择、投影、连接、除、并、交、差等,以及查询操作和插入、删除、更新操作的两个部分。

3.关系的完整性约束:数据库的数据完整性是指数据库中数据的正确性、相容性、一致性。

数据完整性由完整性规则来定义,关系模型的完整性规则是对关系的某种约束,因此也称为完整性约束。



3.2 关系模型的基本术语与形式化定义

1.关系(Relation)

一个关系对应通常说的一张表

2.属性(Attribute)

表中的一列即为一个属性,给每一个属性起一个名称即属性名

3.值域(Domain)

是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。

4.元组(Tuple)

表中的一行即为一个元组

5.分量

元组中的一个属性值。

6.关系模式

对关系的描述

关系名(属性1,属性2,…,属性n)

学生(学号,姓名,年龄,性别,系名,年级)

7.关系数据库

对应于一个关系模型的所有关系的集合称为关系数据库(relation database)。

8.候选键

如果一个属性或属性集(可以有多个候选键)的值能够唯一标识一个关系的一个元组而又不包含多余的属性,则称该属性或属性集为候选键(candidate key),如学号、身份证。候选键又称为候选关键字或候选码。

9.主键

当一个关系中有多个候选键时,可以从中选择一个作为主键(primary key)。每个关系只能有一个主键。主键也称为主码或关键字,是表中的属性或属性组,用于唯一地确定一个元组。

10.主属性与非主属性

包含在任意候选键中的属性称为主属性(primary attribute);不包含任一候选键的属性为非主属性(nonprimary attribute)。

形式化定义

对关系的限定
关系可以看成二维表,但并不是所有二维表都是关系。关系数据库对关系有一些限定,如:

  1. 关系中的每个分量都必须是不可再分的最小数据。
  2. 表中列的数据类型是固定的,即列中的内一个分量都是相同类型的数据,来自相同的值域。
  3. 不同列的数据可以取自相同的值域,每个列称为一个属性,每个属性有不同的属性名。
  4. 关系表中列的顺序不重要,即列的次序可以任意交换,不影响其表达的语义。
  5. 行的顺序也不重要,交换行数据的顺序也不影响其内容。
  6. 同一个关系中的元组不能重复,即在一个关系中,不能有两个元组的值完全相同相同。

 3.3关系代数

关系代数可分为两大类:

  1. 传统集合运算:这类运算完全把关系看作元组的集合,包括广义迪卡尔积运算、并运算、交运算、差运算
  2. 专门的关系运算:这类关系除了把关系看作元组的集合以外,还通过运算表达了查询的要求,包括选择、投影、连接、除运算

3.3.1传统关系运算 

  1. 并运算

    设关系R与S均是n目关系,关系R与S的并记为:

    R ∪ S = { t ∣ t ∈ R ∨ t ∈ S } R \cup S = \{t|t \in R \lor t\in S\}R∪S={t∣t∈R∨t∈S}

    其结果仍是n目关系,由属于R或S的元组组成。

  2. 交运算

    设关系R与S均为n目关系,关系R与S的交记为:

    R ∩ S = { t ∣ t ∈ R ∧ t ∈ S } R \cap S = \{ t| t\in R \land t \in S \}R∩S={t∣t∈R∧t∈S}

    其结果仍是n目关系,由属于R也属于S的元组组成。

  3. 差运算

    设关系R与S均为n目关系,关系R与S的差运算记为:R−S={t∣t∈R∧t∈/​S} 

  4. 广义迪卡尔积

    广义迪卡尔积不要求参加运算的两个关系具有相同的目数。

    两个分别为m目和n目的关系R和S的广义迪卡尔积是一个有 m+n 个列的元组的集合。元组的前m列是关系R的一个元组,后n个是关系S的一个元组。若R有K1个元组,S有K2个元组,则R和S的广义迪卡尔积有 K1*K2个元组,记为:                                                                               R×S={tr​ts​^​∣tr​∈R∧ts​∈S}                                                                                                  表示有两个元组前后有序连接成的一个元组。

 3.3.2 专门的关系运算

  1. 选择

    选择是指从指定的关系中选出满足给定条件的元组而组成的一个新的关系。表示为:

    σF​(R)={t|t∈R∧F(t)=trun}

    其中 σ 是选择运算符,R是关系名,t是元组,F是逻辑表达式。

    如:σSdept=′计算机′​(Student)

  2. 投影

    投影运算是从关系R中选取若干列,并用这些属性组成一个新的关系。表示为:

    ∏A​(R)=t.A∣t∈R

    其中, ∏ 是投影运算符,R是关系名,A是被投影的属性或属性组。t.A 表示t这个元组中相应于属性A的分量,也可以表示为t[A]。

    投影运算一般由两步完成:                                                                                                                                                  1.选出指定的属性,形成一个可能含有重复行的新关系。                                                         2.删除重复行,形成结果关系。

  3. 连接

    连接运算用来连接相互之间有联系的两个关系,从而产生一个新关系。这个过程通过连接属性来实现。连接运算主要有一下几种:                                                                                     1. θ 连接(θ 是比较运算符)                                                                                                    表示为{tr​ts​^​∣tr​∈R∧tr​∈S∧tr​[A]θts​[B]}                                                                                    其中A和B分别是关系R和S上语义相同的属性或属性组,$\theta $是比较运算符

        2. 等值连接(θ 连接的特例)

         与θ 连接一致,是当θ 为=时的情况

         3. 自然连接

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性或属性组,并且在连接结果中去掉重复的列,使公共属性列只保留一个。

                 自然连接与等值连接的区别:                                                                         

1.自然连接要求相等的分量必须有共同的属性名,等值连接则不要求                                             2.自然连接要求吧重复的属性名去掉,等值连接不要求

         4. 外部连接

如果希望不满足连接条件的元组也出现在连接结果中,则可以通过外连接(outer join)操作实现。外连接有三种形式:左外连接、右外连接、全外连接。含义是将指定一边(如左连接就是左边的关系)中不满足的元组也保留到连接后的结果中,并在结果中将另一关系各属性置为空(NULL)值。

       5. 半连接

4.

  1. 除法的描述:

    设关系S的属性是关系R的属性的一部分,则R÷S为这样一个关系:

    此关系的属性是由属于R但不属于S的所有属性组成$R \div S $ 的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于 $R \div S $ 的一个元组 t,则t与S任一元组连接后,都为 R 中原有的元组。

  2. 除法的一般形式

    设关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:                       R(X,Y)÷S(Y,Z)=R(X,Y)÷∏Y​(S)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值