关系数据库

文章目录

  • 前言
  • 1.有关概念
  • 关系代数
    • 集合运算
    • 关系运算
      • θ连接

前言

关系模型的数据结构非常简单,只包含单一的数据结构——关系


1.有关概念

  • 笛卡尔积,即两个集合A与B,他们每行都两两组合,成为一个新行,由此形成一个新的集合。特别地, 此两两组合只是简单拼接。也可以扩展为多个集合的笛卡尔积

    • 以图说明, 假设有A和B,以笛卡尔积的形式合为一个新的集合T

    集合S

    ABC
    012
    101112

    集合R

    DEF
    303132
    404142
    505152

    可得集合T

    ABCDEF
    012303132
    012404142
    012505152
    101112303132
    101112404142
    101112505152
    • 特点:明显的。由笛卡尔积,得来的T,其行数为R,S行数之乘积
      其列数为列数之和
  • 关系,关系表的简称。明显的,关系为笛卡尔积的子集,即从多个属性集合中,都抽取一个属性,组成一行,不断的进行此过程,获得多行,再进行筛序,从而获得一个关系表。

  • 关系,由关系头与关系体构成。关系头为属性的集合,关系体为具体的内容

    • 关系表中行或列可以交换,为同一个关系表
    • 关系的每一个分量(属性值)必须不可继续分割,即一个确定的值,而不是值的集合,又称为原子的。
  • 关系模型,关系表的一个非具体框架,即未填表的表格。

    • 可以形象化的表示为R(U,D,DOM,F)
    • R为关系名
    • U为属性名的集合
    • D为所有属性的域的集合
    • DOM为D中对应元素的具体取值,即属性向域的映像集合
    • F为属性间数据的依赖关系的集合,即通过一行中的某属性值,即可知道其他属性的值。
  • 候选码,其为一个属性集,可以为任意个元素 ,但其必须满足,唯一性、最小性的性质

    • 唯一性,不同元组,其候选码不同,起唯一表示的作用。
    • 最小性,组成候选码的属性数量不可减少,即达到最小的数量,不可删除
  • 主码,选一个候选码即可。

    • 主码的各个属性为主属性
    • 非主属性,不为任何 候选码属性的属性,明显的,存在既不为主码,又不为非主属性的属性。
    • 特别地,若候选码为所有属性,称为全码。
  • 外码,若R的一个属性集X不为R的主码,而为S的主码,则称X为R的外码

    • 故,在此R被称为参照关系,S为被参照关系

    • 外码建立了两个表之间的关联,方便地联系了两个关系表

    • 以图说明
      Classes 表:

      |班级ID |班级名称|
      |—|---|
      |101| 一班|
      |102 |二班|

      Students 表:
      |学生ID| 学生姓名| 班级ID|
      |—|---|—|
      |1 |小明| 101|
      |2| 小红| 102|
      |3 |小华| 101|

      明显的,Students表的班级ID可作为Classes表的外码,从而构筑班级和学生之间的联系

  • 关系的完整性,分为实体完整性,参照完整性,用户自定义完整性

    • 实体完整性,主码的值不能为空,或部分为空,因为元组以主码来唯一标识
    • 参照完整性,外码的每一个值应与主码相等,或为空,避免破坏两关系表之间的联系
    • 用户自定义完整性,为针对具体应用程序的约束条件。

关系代数

  • 关系代数,用来描述关系操作(查询操作及更新操作)的一种语言,一种简单的数学表达式。
  • 关系操作采用集合操作方式,即操作的对象和结果都为集合
  • 运算符,分为集合运算符,关系运算符,算术运算符,逻辑运算符
    • 集合运算符,即常见的几个数学运算符

      |集合运算符|含义|
      |—|---|
      |∪|并|
      |-|差|
      |∩|交|
      |×|笛卡尔积|

    • 算术比较运算符,比较大小

      |算术比较运算符|含义|
      |—|---|
      |>|大于|
      |≥|大于等于|
      |<|小于|
      |≤|小于等于|
      |=|等于|
      |≠|不等于|

    • 逻辑运算符

      |逻辑运算符|含义|
      |—|---|
      |∧|与|
      |∨|或|
      |¬|非|

    • 关系运算符

      |关系运算符|含义|
      |—|---|
      |σ|选取|
      |∏|投影|
      |⨝|自然连接|
      |⨝xθy|θ连接|
      |÷|除|

集合运算

传统的集合运算操作一般以行为单位

以以下定义说明
给定两个关系R,S,满足:
具有相同列数n
t代表元组
对应的属性,其属性性质一致

  • 并,即R和S的所有元组合并,删去重复元组,组成一个新关系
    • 记作,R∪S = {t | t ∈ R ∨ t ∈ S}
  • 差,即删去R中与S相同的元组,组成一个新关系
    • 记作,R-S = {t | t ∈ R ∧ ¬ t ∈ S}
  • 交,即既属于R,又属于S的元组,组成一个新关系
    • 记作,R∩S = {t | t ∈ R ∧ t ∈ S}
    • 特别地,也可记作,R∩S = R - (R - S)
  • 广义笛卡尔积,tr为R中元组,ts为S中元组
    • 记作,R×S = {tr ⌒ ts | tr ∈ R ∩ ts ∈ S}

关系运算

关系运算,行和列都会进行操作

给定以下定义

  • 设一个关系为R(A1,A2,……,An),括号内为R的各个属性名
    t ∈ R ,表示t为R的一个分组
    t[Ai] 表示 元组t中第i个属性的分量(值)
  • A{Ai1, Ai2, …, Aik}, 其中Ai1, Ai2, … Aik, 是A1到An的一部分, 则A被称为属性列,t[A] = {t[Ai1], t[Ai2], … , t[Aik]}表示元组t在属性列A上各分量的集合
  • R为n元关系, S为m元关系, tr ∈ R, ts ∈ S, tr ⌒ ts 称为元组的连接, 变为一个n + m列的元组,
  • 给定一个关系R(X,Y),X和Z为属性组(分别代表R中一组属性),定义t[X] = x时,x在R中的像集为Zx = {t[Z] | t ∈ R, t[X] = x}
    • 其中,所谓t[X] = x, X为一个属性组,x也为一个属性组,即X属性组在R上的特定取值
    • Zx的下标指小x
    • 总的来说,Zx即X属性组在R上的特定取值为x时,对应的Z属性组在R上的值。
      实际含义是,在一个关系上,一个属性组取一个特定值时,另一个属性组的对应集合

运算

  • 选取,σF(R)= {t | t ∈ R ∧ F(t)= ‘真’}, σ为选取运算符, F为选取的条件,F(t)= ‘真’, 即选取符合F条件的元组
  • 投影,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组,即∏A(R)= {t[A] | t ∈ R},A为条件需要的属性列
  • θ连接,定义关系R,Y,关系R和关系S分别有一个子属性集X,Y(属性列数目相同,有共同的域),设R和S的笛卡尔积为Q,选取在X,Y属性集上满足θ比较条件的Q的部分元组,组成一个新的关系,称为θ连接
    • θ为算术比较运算符,用于比较属性大小时使用(数字直接比较大小,字符则以字典顺序比较)
      • 分为“ = ”,等值连接,注意,存在特殊的等值连接——自然连接
      • “ < ”, 小于连接
      • “ > ”,大于连接
    • 记作,R⨝xθy S = {tr ⌒ ts | tr ∈ R ∧ ts ∈ S ∧ tr[X] θ ts[Y]为真}
    • 也可记作为R⨝xθy S = σxθy(R×S)
      • xθy为连接条件,即在X,Y属性集上满足θ比较条件
  • 除法,以类似除法的逻辑进行运算,通过除以相同属性集的相同属性值,得到的属性集。
    • 设有关系R(X,Y)与S(Y,Z),其中括号表示将其中完整的属性集分为两部分,其中Y表示有相同域的属性集(名字可以不同),通过除法,我们可以获得一个全新的关系P(X),其中X为R中除了相同属性集以外的部分。

    • P(X)是R中满足条件的元组的投影(符合关系的元组中符合关系的列的组合):元组在X上分量值x的像集Yx包含S在Y上投影的集合,
      记作:R÷S = {tr[X] | tr ∈ R ∧ ∏y(S) ⊆ Yx}

      • tr[X]表示R上X属性集上的部分集合
      • ∏y(S)表示关系S上Y的投影
      • Yx表示组在X上分量值x的像集Yx
      • 如图,做一个演示

      关系R

      BCD
      1b2c3
      1b2c4
      2b2c1
      3b5c2

      关系S

      F
      d5
      d6

      关系P(R÷S)

      b2

      明显的,X={A,B} = { (a1,b2), (a2,b4), (a3, b5)}
      Y = {C, D} = { (c3,d5), (c4,d6) }
      Z = { F } = { f3,f4 }
      其中元组在X上各个分量值的像集分别为:
      (a1,b2)的像集为{ (c3,d5),(c4,d6) }
      (a2,b4) 的像集为{(c1,d3)}
      (a3,b5)的像集为{(c2,d8)}
      S在Y上的投影为{(c3,d5),(c4,d6)}
      明显的,

θ连接

用两个关系R,S进行说明
R

ABC
a1b12
a1b24
a2b36
a2b48

S

BD
b15
b26
b37
b38
  • 等值连接(若C=D)
AR.BCS.BD
a2b36b26
a2b48b38

若R.B = S.B(两个关系中比较属性一样,则加关系名以标识)

AR.BCS.BD
a1b12b15
a1b24b26
a2b36b37
a2b36b38

自然连接

ABCD
a1b125
a1b246
a2b367
a2b368

等值连接,即获得R和S的笛卡尔积后,选取对应属性相同的元组组成一个新关系,比如图一的C=D或者图二的R.B =
S.B,明显的,比较的属性名可以不同。
存在特殊的等值连接——自然连接,它要求比较的属性名一致,同时不会并列两个比较的属性,会删除一个,图二和图三基本一致,但图三只有一个属性B

大于连接,也为获得R和S的笛卡尔积后,选取对应属性大于另一个关系的元组组成一个新关系;小于连接类似,不过为小于另一个关系的。

  • 除法,类似于数学中除法的选取方式,即除以相同属性值,得到剩余的属性组

    • 设有关系R(X,Y),与关系S(Y,Z),其中Y为相同属性组,名称可以不一致,但必须来自相同的域。R÷S得到商P(X),X为R的剩余部分的属性组
    • 结果P为R中满足条件的元组在X上的投影:元组在X上分量值x的像集Yx包含S在Y上投影的集合,记作:R÷S = {tr[X] | tr ∈ R ∧ ∏y(S) ⊆ Yx}
      • 其中,tr[X]为R在X属性组上的值所组成的元组
      • ∏y(S)为S在Y上投影,Yx为Y在X上的投影,即S在Y上的投影要包含于Y在X上的投影。明显的,这便是除法
    • 如图,做一个演示

    关系R

    ABCD
    a1b2c3d5
    a1b2c4d6
    a2b4c1d3
    a3b5c2d8

    关系S

    CDF
    c3d5f3
    c4d6f4

    关系P(R÷S)

    AB
    a1b2

    明显的,X = {A,B} = {(a1,b2),(a2,b4),(a3,b5)}
    Y = {C,D} = {(c3,d5),(c4,d6)}
    Z = {F} = {f3,f4}
    元组在X上各个分量值的像集分别为
    (a1,b2)的像集为{(c3,d5),(c4,d6)}
    (a2,b4)的像集为{(c1,d3)}
    (a3,b5)的像集为{(c2,d8)}
    S在Y上的投影为{(c3,d5),(c4,d6)}
    明显的,S在Y上的投影只包含于(a1,b2)的像集,故R÷S = {(a1,b2)}

  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值