2.关系数据库概论

2.1 关系的形式化定义及有关概念

2.1.1 关系的形式化定义

    • 相同数据类型的值的集合(D),又称值域;ex:字符串集合,整数集合
    • 包含的值的个数称为基数
      • D = {32,41,38},基数m = 3
  • 笛卡尔积

    • 任意一组域D1,D2…,Dn,他们中可以有相同的域。他们的笛卡尔积为 D 1 ∗ D 2 ∗ D 3 ∗ ⋯ ∗ D n = ( d 1 , d 2 d , ⋯   , d n ) ∣ d i ∈ D i D1 * D2 * D3* \cdots *Dn = {(d1, d2d, \cdots,dn) | d_i \in D_i} D1D2D3Dn=(d1,d2d,,dn)diDi

      • 每个元素(d1, d2, …, dn)叫作一个n元组,简称元组

      • 元素中每一个di叫作分量

      • 若Di是有限集,其基数为mi,则 D 1 ∗ D 2 ∗ D 3 ∗ ⋯ ∗ D n D1 * D2 * D3* \cdots *Dn D1D2D3Dn的基数M为所有域的基数的累乘积

      • 在这里插入图片描述

      • 注意可能不是每一项都有具体含义的

  • 关系

  • 笛卡尔积中有意义的子集在对应的域上称为关系,表示为 R ( D 1 ∗ D 2 ∗ D 3 ∗ ⋯ ∗ D n ) R(D1 * D2 * D3* \cdots *Dn) R(D1D2D3Dn)

  • R是关系的名字,n是关系的目或者度

  • 在这里插入图片描述

2.1.2 关系的性质

  1. 列是同质的
  2. 属性名是唯一的
  3. 码的唯一性
  4. 列的顺序无关性
  5. 行的顺序无关性
  6. 分量的原子性

在这里插入图片描述

2.1.3 关系模式与关系数据库

关系模式是型,关系是值,关系模式和关系就是性与值的联系

关系模式

对关系的描述,表示为 R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F)

R是关系名,U是组成该关系的属性的集合,D是U中属性所对应的域的集合,DOM是属性向域的映像的集合,F是改关系中各属性间的依赖关系的集合

简记为 R ( U ) R(U) R(U) R ( A 1 , A 2 , . . . ) R(A_1,A_2,...) R(A1,A2,...),A是属性名

关系数据库示例

    • 唯一能标识每个元组的单个属性火最少属性的组合
    • "学号"是学生关系的码,"课程号"是课程关系的码
    • 一个关系的码可以有多个
  • 主码

    • 选定一个叫主码,一个关系只有一个
  • 全码

    • 所有属性的组合
  • 外码

    • 就是R一个关系外S另一个关系的属性是他的主码
    • 涉及两个关系,一个属性R
    1. R,S不一定是不同的关系
    2. 通过外码可建立两个表之间的联系
    3. 自身内也可以有外码
    • 插图(P31
  • 主属性

    • 所有候选码的属性称为主属性;学生关系的学号
  • 非主属性

    • 不包含在任何一个候选码中的属性;学生关系的其他

2.3关系模型的完整型

  • 2.3.1实体完整性

    • 主属性不能为空
    • 任何一行可分辨
  • 2.3.2参照完整性(安全性保障)

    • 规则中外码F可以取空值,前提是该外码F同时不是其所在关系R的主属性
  • 用户自定义完整性

    • DBMS负责检查和处理
    1. 属性的取值满足用户定义的约束条件
    2. 反映某一具体应用所涉及的数据满足语义要求

2.4关系模型的数据操作

2.4.1关系模型的数据操作的分类

关系操作主要分为查询、操纵;查询最重要

查询包括:选择、投影、连接、除、并、交、差

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

2.5关系代数

运算符:集合、专门的关系运算符、比较运算符、逻辑运算符

2.5.1 集合运算

交、并、差、笛卡尔积

符号解释

  1. t ∈ R t\in R tR表示t是R的一个元组。 t [ A i ] t[A_i] t[Ai]表示元组t中对应属性 A i A_i Ai的一个分量(有没有大佬能举一个例子这是啥意思qwq)
  2. R是n目关系,S为m目关系。 t r ∈ R , t s ∈ S , t r t s ⌢ t_r \in R, t_s \in S,\overset{\frown} {t_rt_s} trR,tsStrts称为元组的连接。连接是一贯(n+m)的元组(老师说首尾连接)

集合运算满足的条件

  1. R和S具有相同的目n,即R和S都有n个属性
  2. R和S中相应的属性都取自同一个域

2.5.2专门的关系运算

符号:

  1. t [ A ] t[A] t[A]表示元组t在属性列A上的诸分量的集合
  2. 象集

在这里插入图片描述

  • 选择

    • σ s e x = ‘ 男 ′ ( S t u d e n t ) σ_{sex= ‘男'}(Student) σsex=(Student)
    • σ D n o = ‘ D 1 ’ ∧ s e x = ‘ 男 ’ ( S t u d e n t ) σ_{Dno=‘D1’∧sex=‘男’}(Student) σDno=D1sex=(Student)
  • 投影

    • π D n o ( S t u d e n t ) π_{Dno}(Student) πDno(Student)

      π 5 ( S t u d e n t ) π_5(Student) π5(Student)

  • 连接(多个表合成一个)

    • 一般连接(带判断)
    • 等值连接(判断相等后连接)
    • 自然连接(去掉重复的属性列
    • 自然连接的基本形式( π A ( σ F ( R ∞ S ) ) π_A(σ_F(R∞S)) πA(σF(RS))
    • 查询技巧:
      • 首先看查询的条件F和结果A中涉及到的属性列来自哪些表,将其归置到最少的表中查询。
      • 若涉及多个表则需将表进行连接,表间有相同属性时可直接相连,否则寻求与各表有相同属性的中间表进行连接,且将中间联系表写在中间位置。
    • 连接的优化形式:先选择,再投影,最后连接
  • 否定,用差来做

    • 没有选修C3课程的学生的学号=全部的学生的学号-选修C3课程的学生的学号
  • 除法(好复杂qwq

    • 定义不写了

程的学生的学号=全部的学生的学号-选修C3课程的学生的学号

  • [外链图片转存中…(img-VFeU4YFq-1616580069550)]

  • 除法(好复杂qwq

    • 定义不写了
    • 在这里插入图片描述
  • 除法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值