数据库系统概论笔记(2)

第二章 关系数据库

关系数据库:支持关系模型的数据库系统。

2.1关系数据结构及形式化定义

关系:

  • 域:一组具有相同数据类型的值的集合。(蕴含列的取值范围)
  • 域的基数:一个域允许的不同取值个数。
  • 笛卡尔积:(域上的集合运算)
    所有域(D1,D2,...,Dn)所有取值的组合(一个组合是一个元组,元组中有n个分量(值)称为n元组)
    组合不能重复(不允许冗余)
  • 关系:笛卡尔积的有限子集称为在域D1,D2,...,Dn上的关系。
    一般表示为R(D1,D2,...,Dn)R是关系的名字,n是关系的目或度,n为多少就称为n元关系)
    关系中的每个元素是关系中的元组,通常用t来表示。
    属性:每列的名字,用来区分域(域可以相同,属性一定不同)
    候选码:某一最少属性组的值能唯一标识一个元组。(候选码可以有多个)
    全码:关系模式的所有属性组成该关系模式的候选码。
    主属性:候选码的所有属性称为主属性,不在任何候选码内的属性称为非主属性。
    主码:在多个候选码中选定其中一个为主码。
    外码:设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的的主码,若FKs相对应,则称FR的外码。(R是参照关系,S是被参照关系,两者可以为同一关系)
    外码是用来和其他表建立联系用的,当然建立连接也可以不用外键

关系的三种类型:基本关系(基本表/基表)、查询表、视图表。

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

基本关系的6个性质:

  1. 列是同质的
  2. 一域可有多列,一列即一属性,不同列属性名不同。
  3. 行顺序无所谓
  4. 列顺序无所谓
  5. 任意两个元组的候选码不能取相同的值。
  6. 分量必须取原子值。(关系第一范式(规范化的关系称为范式))

关系模式:关系的描述,可表示为R(U,D,DOM,F)

  • R:关系名
  • U:组成该关系的属性名集合
  • DU中属性所来自的域
  • DOM:属性到域的映像集合
  • *F:属性间数据的依赖关系集合

关系数据库的值是关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
关系模式是稳定的,关系是变化的

2.2关系操作

5种基本的关系操作:选择、投影、并、差、笛卡尔积。
关系操作特点:集合操作方式,操作的对象和结果都是集合。
*早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。
SQL:结构化查询语言

2.3关系的完整性

三类完整性约束:实体完整性、参照完整性、用户定义完整性。(前两个是必须满足的,称为关系的两个不变性)

实体完整性规则:主属性的值不能取空值。(空值包括不存在/无意义/未知)
参照完整性规则:每一个元组在外码F上的值 或为空值等于S中某个元组的主码值。(外码F对应基本关系S的主码)
用户定义的完整性:针对某一具体关系数据库的约束条件。

2.4关系代数

关系代数:一种抽象的查询语言,用关系的运算表达查询
关系代数按运算符的不同可分为

  • 传统的集合运算(从行的角度进行)
  • 专门的关系运算(涉及行和列)

传统的集合运算:

(交并差操作要求 目数相同 且 属性取自同一个域(可比))

  • 并:关系R与关系S的并,记作:RS={t|tRtS}
  • 差:关系R与关系S的差,记作:RS={t|tRtS}
  • 交:关系R与关系S的交,记作:RS={t|tRtS}(也可以表示成RS=R(RS)
  • 笛卡尔积:关系R与关系S的笛卡尔积(广义),记作:R×S={trts^|trRtsS}

专门的关系运算:

t[Ai]:元组t(某行) 相应于 属性Ai的一个分量(某列)。
t[A]=(t[Ai1],t[Ai2],...,t[Aik])表示元组t(某行) 在属性列(属性组)A={Ai1,Ai2,...,Aik}上诸分量(多列) 的集合。(t[A¯]同理)
trts^:元组trts的连接(串接)。(trR,tsS,若RmSn目,则trts^m+n目)
象集:R中属性组X上值为x的诸元组在Z上分量的集合,记为Zx={t[Z]tR,t[X]=x}

  • 选择(限制):关系R中满足给定条件的诸元组,记作σF(R)={ttRF(t)=}。(行的角度)
    F表示选择条件,是一个逻辑表达式,基本形式为X1θY1θ是比较运算符(“不等于”表达为“<>”其它一样),另外可用逻辑运算符,,
  • 投影:从R中选择出若干属性列组成新的关系,记作A(R)={t[A]tR}AR中的属性列)(列的角度)
  • 连接(θ连接):从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记作RS={trts^trRtsStr[A]θts[B]}(除了自然连接,其他都是行的角度)
    AB分别为RS上列数相等且可比的属性组,θ是比较运算符)
    等值相连:θ=的连接运算
    自然连接:一种特殊的等值连接,两个关系中进行比较的分量必须是同名的属性组
    悬浮元组:自然连接时,关系R(或关系S)上的某些元组因在关系S(或关系R)中找不到公共属性上值相等的元组而被舍弃,被舍弃的元组称为悬浮元组
    外连接(全连接):把悬浮元组也保存在结果关系中,其他属性上填NULL,称为外连接。
    左外连接:只保留左边关系R中的悬浮元组。
    右外连接:只保留右边关系S中的悬浮元组。
  • 除运算:给定关系R(X,Y)S(Y,Z)R.YS.Y出自相同域集,元组在X上分量值x的象集Yx包含SY上投影的集合,记作R÷S={tr[X]trRY(S)Yx}(同时从行和列的角度进行运算)
    (关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中)

相关例子可以看书P56

关系运算的5种基本运算:并、差、笛卡尔积、选择、投影。(其它运算均可以用这5中基本运算来表达)

*2.5关系运算

略(不讲)

posted @   kksk43  阅读(296)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
特效
黑夜
侧边栏隐藏
点击右上角即可分享
微信分享提示