数据库4——概念

这一篇内容有点多,建议保存再看

关系数据结构

关系数据库的数学理论:

  • 集合论
  • 关系代数(信息代数)

在这里插入图片描述

1关系

  • 单一的数据结构----关系
    现实世界的实体以及实体间的各种联系均用关系来表示。
  • 数据的逻辑结构----二维表
    从用户的角度,关系模型中的逻辑结构是一张二维表。
  • 建立在集合代数的基础上

1.1 域

一组具有相同数据类型的值的集合,又称为值域。用D表示。例如整数,实数,介于某个取值范围的整数,指定长度的字符串集合,{‘男’,‘女’},介于某个取值范围的日期等。域所包含值的个数称为域的基数。域中的值无顺序。

1.2 笛卡尔积

给定一组域(可以包含相同元素),它们元素的全组合为它们的笛卡尔积。
例如: 如果 D1: A = { A1, A2 } ; D2 : B = {B1 , B2 } 则 D1 * D2 = {{A1,B1},{A1,B2},{A2,B1},{A2,B2}}

  • 笛卡尔积也是一个集合
  • 所有域的所有取值的一个集合
  • 不能有重复的

元组:笛卡尔积中的每一个元素叫做一个n元组,简称元组。
分量:笛卡尔积元素(d1,d2……dn)中的每一个di叫做一个分量,来自相应的域。
基数:若做笛卡尔积的一组域是有限的,则笛卡尔积的基数是所有域的乘积。

注意:元组不是di的集合,元组的每个分量di是按顺序排列的,(1,2,3) ≠(2,1,3)

笛卡尔积可以表示为一个二维表,表中的每行对应一个元祖,每列对应一个域。

1.3 关系

1.3.1 关系、属性、元组

在这里插入图片描述
定义:

  • 关系:笛卡尔积D1*D2*D3……Dn的任意子集称为定义在域D1,D2,D3,……,Dn上的n元关系。表示为R(D1,D2,D3,……Dn)。其中R为关系名,n为关系的目或度。
  • 属性:关系中不同的列为了加以区分,起一个名字,称为属性,n元关系必有n个属性。
  • 元祖:关系中的每个元素是关系的元祖。
1.3.2 候选码、主码、主属性
  • 候选码:若关系中的某一属性组的值能唯一的标识一个元祖,则称为该属性组为候选码(候选关键字、候选键),可以只包含一个属性,当所有属性组为候选码时,称为全码。
  • 主码:如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除元祖的操作变量,被选用的候选键称为主关系键(主键、主码、关系键、关系字)【每个关系必定有且仅有一个主码,通常选用较小的属性组合】
  • 主属性:包含在任何一个候选码中的各属性称为主属性,否则为非主属性。
1.3.3 基本关系的性质

三类关系:

  • 基本关系(基本表或基表):实际存在的表,实际存储数据的逻辑表示。
  • 查询表:查询结果对应的表。
  • 视图表:有基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

性质:

  1. 列是同质的:同一属性必须是同一种数据类型,来自同一个域。
  2. 不同的列可出自同一个域。
  3. 列的顺序无所谓。
  4. 任意两个元祖不能完全相同。
  5. 行的次序可以任意调换。
  6. 分量必须取原子量,即每一分量必须是不可分割的数据项,简单说就是列、行不能是嵌套的。

2 关系模式

关系模式:对关系的描述。是关系的框架,或称为表框架。
关系模式是,关系是值。

关系模式可形式化的表示为:R(U,D,dom,F) 简记为:R(U1,U2,U3……)

  • R:关系名
  • U:组成该关系的属性名集合
  • D:属性组u所来自的域
  • dom:属性向域的映像集合
  • F:属性间数据的以来关系

3 关系数据库

在一个给定的应用领域中,所有关系的集合构成一个关系数据库。

3.1 关系操作

基本关系操作:

  • 查询:选择(Select)、投影(Project)、连接(join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)
  • 数据更新:插入(Insert)、删除(Delete)、修改(Update)

选择、投影、并、差、笛卡尔积5种基本操作

关系数据语言:高度的非过程化,能够嵌入到其他语言中使用。

3.2 关系的完整性约束

实体完整性、参照完整性是关系模型必须满足的完整性约束条件,关系的两个不变性,应该由关系系统自动支持。

用户定义完整性是应用领域需要遵守的约束条件,体现了具体领域的语义约束,用户定义后由系统支持。

3.2.1 实体完整性(主码)

若属性A是基本关系R的主属性,则属性A不能取空值。

3.2.2 参照完整性(外码)

外码:设F是基本关系R的一个或一组属性,但不是关系R的主码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。R为参照关系,S为被参照关系。 R、S可以是用一个关系。

例:
学生(学号、姓名、性别、系号、年龄) 【这里的系号可设为外码】
系(系号,地址)

参照完整性: 若属性(属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
(1)或者取空值(F的每个属性值均为空值)
(2)或者等于S中的某个元组的主码值

3.2.3 用户定义的完整性

某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。例如:某个属性值必须取唯一值,某些属性值之间必须满足一定的函数关系,某个属性的取值范围在[a,b]区间等。

4 关系代数

关系代数是一种抽象的查询语言,是关系操纵语言的一种传统表达方式,是用对关系的运算来表达查询

运算符主要包括四类:

  • 集合运算符:∪(并),∩(交),﹣(差),χ(广义笛卡尔积);
  • 专门的关系运算符:δ(选择),∏(投影),∞(连接),*(自然连接),÷(除);
  • 算数比较运算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于);
  • 逻辑运算符:∧(与),∨(或),┐(非);

相容性关系:即两个关系具有相同的度(属性数目),两个关系对应的属性的值来自相同的域。除了笛卡尔积外,要求参与传统集合运算的关系必须满足上述的相容性定义。

4.1 并

RUS = { t | t ∈ R∨ t ∈ S}
在这里插入图片描述
在这里插入图片描述

4.2 差

R - S = { t | t ∈ R ∧ ┐t ∈ S}
在这里插入图片描述
在这里插入图片描述

4.3 交

R∩S = { t | t ∈ R ∧ t ∈ S}
并,差为基本运算,但是交不是 R∩S = R - (R - S)
在这里插入图片描述
在这里插入图片描述

4.4 笛卡尔积

R X S = {tr ∩ ts | tr ∈ R ∧ ts ∈ S}
在这里插入图片描述
在这里插入图片描述

5 专门的关系运算

5.1 一些概念

元组的分量: 用t[Ai]表示某一关系Ai属性的一个值,称为元组的分量。
属性列/域列: 所有属性中选择部分属性称为属性列。
在这里插入图片描述
元组的连接:
在这里插入图片描述
象集: 给定一个关系R(X,Z),X和Z为属性组,定义当t[X] = x时,x在R中的象集为:Zx = {t[Z] | t ∈ R,t[X] = x},即x的象集为X的值为x的元组的其他属性值。

求象集过程:

  • 先确定X,Z属性组
  • 然后确定 x 的值
  • 找出关系中在X属性组上取 x 值的元组
  • 求这些元组在Z属性组上的分量t[Z]的集合

5.2 选择

在这里插入图片描述
其中,F是一个表达式,即选择R中满足F表达式的元组。

例:查询工资高于1000元的男教师。
在这里插入图片描述

5.3 投影

在这里插入图片描述
A为属性列,即从R中选择A属性列展示。A可以为列所在列数。

例:查询学生的姓名和所在系。
在这里插入图片描述

5.4 连接

二目运算。
在这里插入图片描述
θ为比较运算符,AθB称为连接条件。
选择R,S满足连接条件的元组。

  • 当θ 为 = 时,称为等值连接。
  • 当θ为 < 时,称为小于连接。
  • 当θ为 > 时,称为大于连接。

在这里插入图片描述
在这里插入图片描述

两种常用的连接运算:

  • 等值连接:从两个关系的笛卡尔积中选取A,B属性相等的元组。【进行比较的两列属性名可以不同,连接后不会删除属性列】
  • 自然连接:特殊的等值连接,两个关系中进行比较的分量必须是相同的属性组,并把重复的属性列去掉。【进行比较的两列属性必须相同,连接后删除重复的属性列】
  • 等值连接和自然连接都会把不符合连接条件的元组舍掉。

三种外连接方式:

  • 全外连接:连接后把所有的元组保存,没有值的赋NULL
  • 左外连接:连接后保存左面关系的元组,没有值的赋NULL
  • 右外连接:连接后保存右面关系的元组,没有值的赋NULL

5.5 除法

在这里插入图片描述
在这里插入图片描述

5.6 综合

关系运算可以嵌套使用:

例:查询选修了全部课程的学生学号和姓名。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值