chapter-3 -数据库数据模型

以下内容来源于MOOC学习—原课程请见:数据库原理与应用
考研复习

概述

chapter-3 -数据库数据模型_第1张图片

chapter-3 -数据库数据模型_第2张图片

关系及关系模式

笛卡尔积

定义在一组域上的有序对的集合,

域是一组具有相同类型的集合,比如自然数,长度小于n的字符串结合等【比如int age】

从n个域的每个域里任取一个值,构成元素集合中的一个,【name取zhao,age取15,构成 zhao,15】

每一个元素称为一个n元祖 简称元祖,元祖中每个值称为分量【name:zhao,age:15即元组】

注意基数的计算

chapter-3 -数据库数据模型_第3张图片

关系

日常生活:事物之间关系的描述,比如人的关系,电压电流

数学中:集合论里—关系本身也是一个集合,是具有某种联系的对象(序组)组合

chapter-3 -数据库数据模型_第4张图片

​ D1 D2 D3上的笛卡尔积共有12个元组(3x2x2),但是由于一个人只有一个姓名,许多元组[一个元祖表示一个学生的姓名,性别,年龄]并没有意义,因此其中有意义的即关系

​ 从笛卡尔积中取出一定语义的元祖,构成这N个域上的一个关系,或者说关系是笛卡尔积上的某个有意义的自子集R(D1,D2,…Dn)

chapter-3 -数据库数据模型_第5张图片

同时要满足:

  1. 域要求满足第一范式-------域都是原子数据的集合
  • 属性值不能再细化分成多个

image-20210116104323605

  • 属性也不能是多值属性,

chapter-3 -数据库数据模型_第6张图片

  1. DOM

chapter-3 -数据库数据模型_第7张图片

  1. 属性间的依赖关系

比如张山的性别?是男----反应姓名和性别的依赖;数据内在的性质

关系模式简化

关系名和属性名的集合 R(A1,A2,…An); 比如指导(指导老师,专业,学生姓名)

关系实例

给定关系下 某一时刻的元祖的集合(二维表),时刻变化的数据;理解为具体数据库中表值

关系模式

是关系的型的描述,静态,稳定的;比如指导(指导老师,专业,学生姓名)

关系数据库

略,参考第二章补充

概念分析

集合中的关系:关系可以是一个无限集合 • 关系中每个元组是“序组”

关系模型的关系:关系必须是有限集合 • 为关系的每个属性附加一个属性名(age)取消分量的有序性

如果不附加属性名,那么关系模式语义相同,可以表达同一个关系,如下

image-20210116105352193
chapter-3 -数据库数据模型_第8张图片

参考第二章

关系
关系是n个域上的一个n元组的集合 表是关系的“二维”呈现
关系中属性的次序和元组的次序都是任意的 在表中各列从左到右是有序的,各行从上到下也是有序的
关系中不能有相同的元组(行)[但是可以属性值可以相同,比如指导老师和学生都叫李亮] 在表中,可能包含重复的行

候选键,主键和外键

候选键:能唯一 标识一个元祖的 最小属性集

如果有多个候选键,可以选择一个作为主键

如果仅一个候选键,且候选键就是关系所有的属性,称为全键

包含候选键的属性集称为超键;

构成候选键的每个属性(候选键的每个属性)都是主属性,其他都是非主属性

外键:关系R的一个属性(集)F与关系S的主键KS对应,对应即取值相对应,称该属性(集)F是关系R的外键

chapter-3 -数据库数据模型_第9张图片
  1. 外键不一定要与相应主键同名;如果属于不同的关系(表),往往取相同的名字
  2. 外键与相应主键必须有相同的域,即属性值的数据类型要完全一致
chapter-3 -数据库数据模型_第10张图片

例:在关系模式EMP(职工号,姓名,年龄,技能)中,假设职工号唯一,每个职工只能申报一项技能,则EMP表的主键是( )。

A.职工号 B.姓名,技能 C.技能 D.职工号,技能

正确答案:A你错选为D

完整性约束

实体完整性[主属性不能为空]

如果属性A是关系R(表R)的主属性,则A不能为空值(null)

参照完整性[外键完整]

该属性(集)F是关系R的外键

该属性(集)F取值只有两种:

  • 取空值
  • 等于某个KS 的值

用户自定义的完整性

  • 属性类型约束:年龄取整数

  • 属性值的范围:成绩

  • 同一关系的不同元祖进行约束:不允许出现姓名相同的人

  • 同一关系的各种属性:工资=绩效+· 等等

关系代数

代数:操作运算符(±*/)+原子操作数

关系代数:基于一组以关系为惭怍对象的运算符+原子操作数(理解为一行数据)

传统集合运算【二目运算】:并、交、差,笛卡尔积

专门关系运算:投影、选择、连接、除

五种基本操作(可扩展得到其他)并、交、笛卡尔积、投影、选择

并∪、交∩、差-

相容关系:定义在一组相同域上的不同关系:

  • 关系名可以不同,属性名也可以不同,但是**必须具有相同个数的属性**

  • 两个关系(表)具有相同的目(列),且相应属性取值属于同一个域

并、交、差都属于相容关系

并:用关系代数的基本运算表示为R∪S={t|t∈R∨t∈S} 重复元组舍弃

差:以用关系代数的基本运算表示为R-S={t|t∈R∨t∉S} R-S表示在R中但是不在S中

交:用关系代数的基本运算表示为R∩S={t|t∈R^t∈S}=R-(R-S)

chapter-3 -数据库数据模型_第11张图片

例:将王玲的所在系改为数学系:

(S1-{(‘S01’ ‘王玲’ ‘’ ‘女’)})∪{(‘S01’ ‘王玲’ ‘数学’ ‘女’)}

投影π、选择σ

chapter-3 -数据库数据模型_第12张图片

投影:一元的,对属性[列]进行操作的运算;从关系中选取若干属性列重新组合新的关系

  1. 查询所有学生的学号、姓名:π学号,姓名(学生)

选择:一元的,对元祖[行]进行操作的运算;从关系中选取满足给定条件的元祖

  1. 选择所在系属性值为‘计算机’的元组:σ所在系=“计算机”(学生)

  2. 查询计算系学生的姓名:π姓名(σ所在系=“计算机”(学生))

  3. 查询2000-01-01以后出生的学生姓名:π姓名(σ出生时间>“2020-01-01”(学生))

  4. 查询没选修课程编号为“C02”的学生学号:π学号(选课)-π学号(σ课程编号=“c02”(选课))

σF®的R:由基本逻辑表达式组成:其中运算符包括< > = 小于等于 大于等于 不等于 与或非

注释:一元:对一个关系进行操作

广义笛卡尔积R x S

chapter-3 -数据库数据模型_第13张图片

chapter-3 -数据库数据模型_第14张图片

R是m目,S是n目,RxS得到的m+n目,共有k1*k2个元祖

如果有重名属性,则进行更名

连接∞

​ R ⋈AθB S=σF(R×S) R⋈AB S = σR.AS.B (RXS) 【R.AS.B即条件】

​ A和B分别是R和S上列数相等且可以比较的属性组(列),θ是运算符,如><,连接运算时从R和S的笛卡尔积上选取R关系在A属性组的值 与 S关系中B 的属性值 满足运算关系的元祖

可以理解为在笛卡尔积运算的基础上,进行选择运算就是连接

连接和自然连接

等值连接:比较的关系必须是A=B,即选取A和B的值相等的元祖

chapter-3 -数据库数据模型_第15张图片

自然连接:必须是同名的属性组,在结果中去除重复的列

chapter-3 -数据库数据模型_第16张图片

在自然连接时【例如S08没有对应的】,不能和另一个关系的任何元组进行连接,称为悬浮元组

chapter-3 -数据库数据模型_第17张图片

外连接

自然连接后:

1.如果把左右连接的悬浮元组都保存下来就是完全外连接

2.如果把左连接的悬浮元组保存下来就是左外连接

3.如果把右连接的悬浮元组保存下来就是右外连接

左(右)外连接:得到R和S的连接表后,查看左(右)表的剩余元素,补充上,无属性值赋予NULL

chapter-3 -数据库数据模型_第18张图片

举例:学校数据库中有学生和宿舍两个关系:

​ 学生(学号,姓名) 宿舍(楼名,房间号,床位号,学号)

假设有的学生不住宿,床位也可能空闲。如果要列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,则应执行–全外连接

重命名ρ

关系(表)的自身连接 或者具有相同属性时的笛卡尔积计算 时,

有相同的字段需要区分,则对表进行重命名 ρs® s就是表的名字

chapter-3 -数据库数据模型_第19张图片

除÷

前提:

  • 前提:R中的属性包含S中的所有属性
  • R÷S的属性由R中那些不出现在S中的属性组X所组成
  • R÷S的结果T元祖 + S 的元祖 都在R中

上例子:查询选修全部课程的学生

​ R选课(学号,姓名,课程名) S课程(课程名)

​ π姓名® X S 得到的是假设每名学生选择了所有课程

①π姓名® X S - R 得到没有选修全部课程的 姓名+课程

②π姓名®-π姓名(π姓名® X S - R)得到结果

R÷S=π姓名®-π姓名(π姓名® X S - R)

chapter-3 -数据库数据模型_第20张图片

chapter-3 -数据库数据模型_第21张图片

像集:本质上是一次选择行的运算和一次选择列的运算。

求x1在表A中的象集,就是先选出所有x属性中x=x1的那些行,然后选择出不包含x1的那些列。

chapter-3 -数据库数据模型_第22张图片

检查各个X在Y上的像集Yxi是否包含S

举例:

chapter-3 -数据库数据模型_第23张图片

查询选修了全部课程的学生学号

​ 第一种方法: 选课÷ 课程编号(课程) ×[错误,不符合除运算的前提]

chapter-3 -数据库数据模型_第24张图片

​ 第二种方法: π学号,课程编号(选课)÷ 课程编号(课程)√

chapter-3 -数据库数据模型_第25张图片

举例:

基于教学视频中的学生选课数据库,能正确查询出“数学系学生都学的课程的课程编号”的关系代数表达式是( π学号,课程号(选课) ÷π学号(σ所在系=‘数学’(学生)) )

基于教学视频中的学生选课数据库,能够正确查询“所有学生都选修的课程的课程编号”的关系代数表达式是( π学号,课程号(选课) ÷π学号(学生) )。

关系演算

1.将数理逻辑中的谓词演算推广到关系运算中,用谓词演算表达操作

2.关系是一个集合,因此可以用集合描述法建立谓词与关系之间的描述

3.用谓词表示关系,可用关系的谓词演算来表达关系的操作,把对关系的谓词演算的集合描述形式称为关系演算表达式


注:阅读以下内容:元组可以理解为关系(表)中一个数据,元组所有变量构成一个数组t[i]表示元组(数据)的第i个属性-------

在元组关系演算系统中,称 {t|Φ(t)} 为元组演算表达式。

其中 t 是元组变量, Φ(t) 为元组关系演算公式,简称公式。
它由原子公式和运算符组成。

原子公式有三类:

(1) R(t) R 是关系名, t 是元组变量。 R(t) 表示 t 是 R 中的元组。关系 R 可表示为: {t|R(t)}

(2) t[i] θ u[j]

​ θ 是算术比较运算符。 t[i] θ u[j] 表示断言 “ 元组 t 的第 i 个分量(属性)与元组 u 的第 j 个分量满足比较关系 θ ” 。例如, t[2] < u[3] 表示元组 t 的第 2 个分量小于元组 u 的第 3 个分量。

(3) t[i] θ c 或 c θ t[i]
这里 c 是常量,该公式表示 “t 的第 i 个分量与常量 C 满足比较关系 θ” 。例如: t[4]=3 表示元组 t 的第 4 个分量等于 3 。

​ 在关系演算中定义了 “ 自由元组变量 ” 和 “ 约束元组变量 ” 的概念。这些概念和谓词演算中的概念完全一样。若公式中的一个元组变量前有 “ 全称量词 ” 或 “ 存在量词 ” ,则称该变量为约束元组变量,否则称自由元组变量。

公式可以递归定义如下:

(l) 每个原子公式是公式。

(2) 如果 Φ 1 和 Φ 2 是公式,则 Φ 1 ∧ Φ 2 、 Φ 1 ∨ Φ 2 、 ﹁ Φ1 也是公式。分别表示:

① 如果 Φ 1 和 Φ 2 同时为真。则 Φ 1 ∧ Φ 2 才为真,否则为假;

② 如果 Φ 1 和 Φ 2 中至少一个为真,则 Φ 1 ∨ Φ 2 为真, Φ 1 和 Φ 2 同时为假 才为假;

③ 如果 Φ 1 真,则 ﹁ Φ 1 为假。

(3) 若 Φ 是公式,则 ∃ t(Φ) 也是公式。其中符号 ∃ 是存在量词符号, ∃ t(Φ) 表示:
若有一个 t 使 Φ 为真,则 ∃ t(Φ) 为真,否则 ∃ t(Φ) 为假。

(4) 若 Φ 是公式,则 ∀ t( Φ ) 也是公式。其中符号 ∀ 是全称量词符号, ∀ t( Φ ) 表示:
如果对所有 t ,都使 Φ 为真,则 ∀ t( Φ ) 必为真,否则 ∀ t( Φ ) 为假。

(5) 在元组演算公式中,各种运算符的优先次序为:
① 算术比较运算符最高;
② 量词次之,且 ∃ 的优先级高于 ∀ 的优先级;
③ 逻辑运算符最低,且 ﹁ 的优先级高于 ∧ 的优先级, ∧ 的优先级高于 ∨ 的优先级;
④ 加括号时,括号中运算符优先,同一括号内的运算符之优先级遵循 ①②③ 各项。
(6) 有限次地使用上述五条规则得到的公式是元组关系演算公式,其他公式不是元组关系演算公式。


关系演算和关系代数在表达能力上是等价的 ,体现在五种基本操作

一个元组演算表达式 {t|Φ(t)} 表示了使 Φ(t) 为真的元组集合。
关系代数的运算均可以用关系演算表达式来表示 ( 反之亦然 ) 。下面用关系演算表达式来表示五种基本运算:

(1) 并 R ∪ S={t|R(t) ∨ S(t)}

(2) 差 R - S={t|R(t) ∧ ﹁ S(t)}

(3) 笛卡尔积 R×S={t (n+m) |( ∃ u (n) )( ∃ v (m) )(R(u) ∧ S(v) ∧ t[1]=u[1] ∧ … ∧ t[n]=u[n] ∧ t[n+1]=v[1] ∧ … ∧ t[n+m]=v[m])}

注: t (n+m) 表示 t 有目数 (n+m)

(4) 投影 π t1,t2,…,tk ®={t (k) |( ∃ u )(R(u) ∧ t[1]=u[i1] ∧ …t[k]=u[ik] )}

(5) 选择 σ F ®={t|R(t ∧ F}

​ 注: F 是公式。 F 用 t[i] 代替 运 算 对 象 i 得到的等价公式。

chapter-3 -数据库数据模型_第26张图片

1.image-20210117171539506

4.

5.

你可能感兴趣的:(数据MYSQL,数据库)