数据库原理——第二章-关系数据库

本文详细介绍了关系数据库的概念,包括关系数据结构、关系模式、关系操作和完整性约束。关系模型由关系数据结构、关系操作集合和关系完整性约束组成。讨论了关系的型与值,强调了实体完整性和参照完整性的规则。此外,还涵盖了关系操作如查询、插入、删除和修改,以及关系代数中的各种运算,如选择、投影、连接和除法。最后,提到了用户自定义完整性,允许根据实际需求定义额外的约束。
摘要由CSDN通过智能技术生成

关系数据库

关系数据库系统是支持关系模型的数据库系统。
关 系 模 型 {   关 系 数 据 结 构   关 系 操 作 集 合   关 系 完 整 性 约 束 关系模型 \begin{cases} \ 关系数据结构 \\ \ 关系操作集合\\ \ 关系完整性约束\\ \end{cases}    

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

1.1 关系

在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。
关 系 {   域 ( D o m a i n )   笛 卡 尔 积 ( C a r t e s i a n   P r o d u c t )   关 系 ( R e l a t i o n ) 关系 \begin{cases} \ 域(Domain) \\ \ 笛卡尔积(Cartesian\ Product)\\ \ 关系(Relation)\\ \end{cases}  (Domain) (Cartesian Product) (Relation)

  1. 域:一组具有相同数据类型的值的集合
  2. 笛卡尔积:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述
    Tips:数学上笛卡尔积没有交换律,但是在数据库中,做了拓展,因为语义上交换前后一致**。
  3. 关系:一组域中有意义的元组构成的子集,表示为R(D1, D2, …, Dn)
    • R: 关系名;
    • n为关系的度或者目(degree):域的数量
    • 关系的几个重要概念
      • 超码(Super Key):任意一个候选码的超集。
      • 候选码(Candidate Key):能唯一标识元组的属性(组)
      • 主码(Primary Key):多个候选码中选定一个作主码。
      • 主属性(Prime Attribute):候选码中的诸属性。
      • 非主属性(Non-Key Attribute):不出现在任何候选码中的属性
  4. 关系的三种类型:
类型内容
基本关系(基本表)数据库中的表,实际存在的表,是实际存储数据的逻辑表示
查询表查询结果对应的表
视图表有基本表或者其他视图表导出的虚表,不对应实际存储的数据,即把某些属性单独导出
  1. 关系性质:在这里插入图片描述

1.2 关系模式

  1. 关系的型与值
    • 关系的:关系的结构(字段名、字段个数、域等)
    • 关系的:关系中具体的元组,关系的实例。
  2. 关系模式(Relation Schema)即关系的型的定义,关系的描述,指出关系的结构在这里插入图片描述
    Tips:属性是域的子集,不同属性可能来自同一个域**
  3. 关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,二关系是动态的、随时间不断变化的,应为关系操作在不断地更新着数据库中的数据。

1.3 关系数据库

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

  • 关系数据库的:也称关系数据库模式,是对关系数据库的模式。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式
  • 关系数据库的这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

1.4 关系模型的存储结构

二、关系操作

  1. 常用操作方式:

    • 查询(query)操作;
    • 插入、删除、修改(update)操作;
  2. 特点:集合操作方式、操作的对象和结果都是集合。

  3. 关系数据语言的种类:在这里插入图片描述

  4. 关系数据语言SQL的特点:在这里插入图片描述

三、关系完整性约束

三类完整性约束:实体完整性(entity integrity)参照完整性(referential integrity)用户定义的完整性(user-defined intergrity)

3.1 实体完整性

  1. 描述:若属性A是基本关系R的主属性,则属性A不能取空值(null value)
  2. 说明:
    • 实体完整性规则是针对基本关系而言的。
    • 现实世界中的实体是可区分的。
    • 关系模型中以主码作为唯一性标识。
    • 主码中的属性即主属性不能取空值。

3.2 参照完整性

  1. 描述:F是基本关系R的一个或一组属性,若F不是关系R的码,但F与基本关系S的主码Ks相对应,则称:
    • F是基本关系R的外码(Foreign key)
    • 基本关系R为参照关系(Referencing Relation)
    • 基本关系S为被参照关系-目标关系(Referenced Relation)。
      Tips在这里插入图片描述
      外码取值的可能情况:
    • 空(NULL);(进行关系操作时,有时关系中的某属性值在当前时刻时填不上)
    • 目标关系中存在的值;
      Tips:表内属性间的参照也要有存在的值。

3.3 用户自定义完整性

  1. 描述:根据客观实际的一些约束条件,用户自定义额外的完整性约束。
  2. 关系模型应提供定义和检验这类完整性的 机制,以便用统一的系统的方法处理它们, 而不要由应用程序承担这一功能。通常由 RDBMS的Check约束提供这类检查。

四、关系代数

关系代数(Relational Algebra):以集合为基础,定义一组运算,由已知关系经过一列运算得到需要的查询结果。

  • 关系代数的运算对象是关系,运算结果亦为关系
  • 关系运算的分类:传统的集合运算专门的关系运算

4.1 传统的集合运算

  1. 二目运算,包括并、差、交、广义笛卡尔积4种;前三个更适用于关系模式一致的关系。在这里插入图片描述

  2. 广义笛卡尔积运算实例:在这里插入图片描述

4.2 专门的关系运算

选择

在这里插入图片描述

Tips:比较运算符里的 ≠ \neq = ,实际上在SQL语言里是 < > <> <> .在这里插入图片描述

投影

在这里插入图片描述

Tips:投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)在这里插入图片描述

综合例题:在这里插入图片描述

连接

在这里插入图片描述

  1. 等值连接:A=B

  2. 自然连接:AB为相同属性组,且去除重复的属性且等值。(取消重复列,只保留相同属性的共同实体)
    等值连接与自然连接:在这里插入图片描述
    一般连接:解题步骤:

    1. 确定结果中的属性列
    2. 确定参与比较的属性列
    3. 逐一取R中的元组分别和S中与其符合比较关系的元组进行拼接。
  3. 外连接:连接中舍弃的元组(悬浮元组),也进行保留的连接称做外连接。(不保留的是自然连接)在这里插入图片描述

    1. 右外连接:保留右边关系S中舍弃的元组的连接称做右外连接。
    2. 左外连接:保留左边关系R中舍弃的元组的连接称做左外连接。

除法

  1. 象集
    在这里插入图片描述
  2. 除法:设关系R除以关系S的结果为关系T,则
    在这里插入图片描述

重命名
在这里插入图片描述

聚集操作

g s u m ( s a l a r y ) ( T e a c h e r ) g_{sum(salary)}(Teacher) gsum(salary)(Teacher)
在这里插入图片描述

例题:
在这里插入图片描述
易错:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值