数据库系统(3)

1. 关系模型的基本概念

1.1 关系模型简述
  • 最早由E.F.Codd在1970年提出
  • 从表(Table)及表的处理方式中抽象出来的,实在对传统表及其操作进行数学化严格定义的基础上引入【集合理论】和【逻辑学理论】提出的
  • 是数据库的三大经典数据模型之一(关系模型,层次模型,网状模型),也是现在大多数商品化数据库系统所仍然使用的数据模型
  • 标准的数据库语言(SQL语言)是建立在关系模型的基础之上的,数据库领域的众多理论也都是建立在关系模型基础之上的
1.2 关系模型研究什么
  • 一个关系(relation)就是一个Table
  • 关系模型就是来处理Table的,他有三个部分组成:
    ① 描述DB各种数据的基本结构形式(Table/Relation)
    ② 描述Table与Table之间所可能发生的各种操作(关系运算)
    ③ 描述这些操作所应遵循的约束条件(完整性约束)

总结起来就是:Table如何描述,有哪些操作,结果是什么,有哪些约束等等

在这里插入图片描述
图 1

1.3 关系模型的三个要素

□ 基本结构: Relation / Table
□ 基本操作: Relation Operator
-
图 2 基本操作的种类示意图,其中前五个:并、差、积、选择、投影是基本操作

□ 完整性约束: 实体完整性,参照完整性和用户自定义的完整性

1.4 关系运算
  • 基于 【关系代数】 的运算
  • 基于 【关系演算】 的运算:又包括 元组演算域演算
1.4.1 基于 【关系代数】的运算实例:

π 课 程 名 ( σ 课 程 号 = c 2 ( R ⋈ S ) ) \pi_{课程名}(σ_{课程号=c_2}(R⋈S)) π(σ=c2(RS)) (公式1)

可以看出,操作的对象都是集合,是一次一集合(Set-at-a-time)的操作。而非关系型的数据操作通常是一次一记录(Record-at-a-time)的操作(例如层次模型和网状模型使用指针就是一次一记录的操作)

基于关系代数设计的数据库语言(ISBL) 用计算机可识别的符号来表征关系,所以公式1转化为计算机语言为:

( ( R ∗ S ) : 课 程 号 = c 2 ) % 姓 名 , 课 程 名 ((R*S):课程号=c_2)\%姓名,课程名 ((RS):=c2)%

○ R:F表示选择运算
○ R%表示投影运算

1.4.2 元组演算实例:基于逻辑的运算

{ t ∣ ( ∃ u ) ( R ( t ) ∧ W ( u ) ∧ t [ 3 ] < u [ 1 ] ) } \{t|(∃u)(R(t)∧W(u)∧t[3]<u[1])\} {t(u)(R(t)W(u)t[3]<u[1])} (公式2)

○ 这是一个t 的集合

基于元组演算设计的数据库语言(Ingres系统的QUEL): 用于计算机可以 识别的符号表征元组演算的运算符号,所以公式2转化为计算机语言为:

range of t is R → 表示 t 是 R 的一个元组
range of u is W → 表示 u 是 W 的一个元组
retrieve t → 检索 t
where t.sage < u.sage → 检索满足这个条件的

1.4.3 域演算实例:基于示例的运算

{ t 1 , t 2 , t 3 ∣ S ( t 1 , t 2 , t 3 ) ∧ R ( t 1 , t 2 , t 3 ) ∧ t 1 < 20 ∧ t 2 > 30 } \{t_1,t_2,t_3|S(t_1,t_2,t_3)∧R(t_1,t_2,t_3)∧t_1<20∧t_2>30\} {t1,t2,t3S(t1,t2,t3)R(t1,t2,t3)t1<20t2>30} (公式3)

基于域演算设计的数据库语言(QBE:Query By Example):
在这里插入图片描述
图 3 基于域演算设计的能让计算机理解的数据库语言QBE原理示意图

1.5 开发软件的思维过程

在这里插入图片描述
图 4 根据关系运算转变成数学方式的过程来建立开发软件系统的思维图

2. 什么是关系

2.1 为什么把“表”称为关系

在这里插入图片描述
图 5 表的结构

【对“表”进行严格定义 — 关系】

① 首先定义“列”的取值范围:“域(Domain)”

  • 域是一组值的集合,这组值具有相同的数据类型
  • 如整数的集合,字符串的集合,全体学生的集合
  • 集合当中元素的个数,称为域的 基数

在这里插入图片描述
图 6 “域”的概念

② 再定义 “元组”及所有可能组成的元组:笛卡尔积(Cartesian Product)

  • 一组域 D 1 , D 2 , . . . D n D_1,D_2,...D_n D1,D2,...Dn 的笛卡尔积为:
    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=\{(d_1,d_2,...,d_n)|d_i∈D_i,i=1,...,n\} D1×D2×...×Dn={(d1,d2,...,dn)diDi,i=1,...,n}
  • 笛卡尔积的每个元素 d 1 , d 2 , . . . , d n d_1,d_2,...,d_n d1,d2,...,dn 称作一个 n − 元 组 ( n − t u p l e ) n-元组(n-tuple) n(ntuple)

在这里插入图片描述
图 7 “笛卡儿积 ”的概念

【注意】
□ 元组( d 1 , d 2 , . . . , d n d_1,d_2,...,d_n d1,d2,...,dn )的每一个值 d i d_i di 叫做一个分量(component)
□ 元组( d 1 , d 2 , . . . , d n d_1,d_2,...,d_n d1,d2,...,dn )是从每一个域任取一个值所形成的一种组合,笛卡儿积是所有这种可能组合的集合,即:笛卡儿积是由 n n n 个域形成的所有可能的 n − 元 组 n-元组 n 的集合
□ 若 D i D_i Di 的基数为 m i m_i mi,则 笛卡尔积的基数,即元组 的个数为: m 1 × m 2 . . . × m n m_1×m_2...×m_n m1×m2...×mn

笛卡尔积可以表示出来所有的元组中基数随机组合的所有情况,但笛卡儿积中的元组并不是都有意义的 因此需要引入 “关系” 的概念

2.2 关系(Relation)

【关系的定义】

  • 是一组域 D 1 , D 2 , . . . D n D_1,D_2,...D_n D1,D2,...Dn 的笛卡儿积的 子集
  • 笛卡儿积中有某种意义的组合称为“关系”。
  • 由于“关系”的不同列可能来自于同一个域,为了区分,需要为每一列起一个名字,改名字即为 “属性名”
  • 也就是说,不同的 “域” 构成了 “笛卡儿积” ,而从笛卡儿积中筛选出有某些意义的部分称为 “关系” ,关系表中的每一列都要有一个名字,叫做 “列名” 或者 “属性名”

在这里插入图片描述
图 8 “关系”,“属性名” 的概念

【关系的表示】

“关系” 可以用 R ( A 1 : D 1 , A 2 : D 2 , . . . A n , D n ) R(A_1:D_1,A_2:D_2,...A_n,D_n) R(A1:D1,A2:D2,...An,Dn)表示,可以简记为: R ( A 1 , A 2 , . . . A n ) R(A_1,A_2,...A_n) R(A1,A2,...An)这种描述又被称为是 关系模式(Schema)标题(head)

  • R R R是关系的名字, A i A_i Ai属性 D i D_i Di属性所对应的域 n n n是关系的 “度” 或 “目(degree)”,关系中元组的数目称为关系的 “基数(cardinality)”
  • R ( A 1 : D 1 , A 2 : D 2 , . . . A n , D n ) R(A_1:D_1,A_2:D_2,...A_n,D_n) R(A1:D1,A2:D2,...An,Dn) 表示这个属性名字是 A 1 A_1 A1他的值来自于 D 1 D_1 D1

举例:
在这里插入图片描述
图 9 三目关系的图实例

  • 图中所示为 3 目关系,因为有三个属性(丈夫,妻子,子女)
  • 丈夫来自于“男人”这个域,妻子来自于“女人”这个域,子女来自于“儿童”这个域,当然,域的部分可以省略,所以图示为: 家庭(丈夫,妻子,子女)省略了冒号后面的部分

【域可以省略为一个表属性的类型、长度】

  • 关系模式 R ( A 1 : D 1 , A 2 : D 2 , . . . A n , D n ) R(A_1:D_1,A_2:D_2,...A_n,D_n) R(A1:D1,A2:D2,...An,Dn) 中属性向域的映像在很多DBMS系统中一般直接说明为属性的类型、长度等。
  • 例如:

在这里插入图片描述
图 10 实例

  • 其中 S#, Sname, Ssex, Sage, D#, Sclass是属性的名程
  • 相应的:char(8), char(10), char(2)等就是属性的类型,也就是上面的 D i D_i Di
2.3 关系模式与关系

① 同一关系模式下面,可以有很多关系
② 关系模式是关系的结构,关系是关系模式在某一时刻的数据
③ 关系模式是稳定的;而关系是某一个时刻的值,是随时间可能变化的
在这里插入图片描述
图 11 关系与关系模式的关系实例

2.4 思维回顾

在这里插入图片描述
图 12 什么是关系的思维回顾实例

3. 关系模型中的完整性约束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值