SQL数据库——关系代数(一)及解题套路

数据库的类型

我们一般会把数据库简单区分成关系型数据库(SQL)和非关系型数据库(NoSQL)。

关系型数据库:MySQL、MariaDB、PostgreSQL、Oracle、SQL Server。比较有意思的是关系型数据库的logo很多都是动物。

非关系型数据库:一般只需要知道两个——Redis和MongoDB。Redis是键值类型(Key-Value)的数据库,类似JAVA里的Collection类的Map,默认情况下Redis很难进行类似SQL里的where和级联select操作;MongoDB被称作文档型数据库,介于SQL和Redis之间,它没有表(Table)的结构,你想怎么插入就怎么插入,但是可以进行级联条件查询等操作。

关系型数据库的关系

R ( A 1 , A 2 , . . . ) R(A_1,A_2,...) R(A1,A2,...)关系模式,其中 R R R为关系名, A 1 A_1 A1等为组成该关系的属性名集合。

关系模式的详细表示为 R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F)—— U U U即为 A 1 , A 2 A_1,A_2 A1,A2 D D D U U U中属性来自的域; D O M DOM DOM为属性 U U U向域 D D D的映射集合; F F F为依赖关系,如主键、外键等。但根据考试经验,这玩意一般用不到。

可以简单把 R R R理解成一个表, A 1 A_1 A1等为属性列的名字。如一个学生信息表:学生信息表(学号,性别,生日,专业,姓名...)。这样的理解方式有助于后面对连接操作的理解。

表里的每个值被称为元组,即所谓的“行”。

关系代数

关系代数是关系型数据库所完备的一类数学逻辑。其基本运算符有:

集合/逻辑运算符 含义 比较运算符 含义
∪ \cup / ∨ \lor 并/或 > > > 大于
∩ \cap / ∧ \land 交/与 < 小于
× \times × 笛卡尔积 ≤ \leq 小等于
- ≥ \geq 大等于
¬ \neg ¬ = 等于

特殊操作还有四个:

运算符 含义 运算符 含义
σ \sigma σ (读作"“希格玛”") 选择 π \pi π ∏ \prod 投影
⋈ \Join (读作"join") (自然)连接 ÷ \div ÷

涉及到连接,除了自然连接 ⋈ \Join ,就必须提到几种扩展连接方式:

运算符 含义 运算符 含义
⋈ C {\Join}_C C θ \theta θ连接(条件连接) ⋈ o \mathop {\Join} \limits^{o} o 自然连接
⋈ o L {\mathop {\Join} \limits^{o}}_L oL 左外连接 ⋈ o R {\mathop {\Join} \limits^{o}}_R oR 右外连接

这几种连接方式将在后面和笛卡尔积做集中区分。

理解关系代数符号

从一道例题出发:

① 投影

要理解 π A 1 , A 4 ( σ A 2 < ′ 201 7 ′ ∧ A 4 = ′ 9 5 ′ ( R ⋈ S ) ) \pi_{A_1,A_4}(\sigma_{A_2<'2017'\land A_4='95'}(R\Join S)) πA1,A4(σA2<2017A4=95(RS)) 就要先从投影说起。

π \pi π ∏ \prod 被称为投影操作,但我更偏向于把它称为去冗。

  • 45
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值