文章目录
数据库的类型
我们一般会把数据库简单区分成关系型数据库(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<′2017′∧A4=′95′(R⋈S)) 就要先从投影说起。
π \pi π 或 ∏ \prod ∏ 被称为投影操作&#
本文深入探讨了关系型数据库中的关系代数,包括投影、选择、连接等基本运算符。通过实例解析了不同类型的连接操作,如笛卡尔积、自然连接、条件连接等,并介绍了如何解决相关例题,帮助读者掌握关系代数的运用和解题策略。
最低0.47元/天 解锁文章
2465

被折叠的 条评论
为什么被折叠?



