BigData

本文最后更新于 2026年5月26日 晚上

Week1

这个主要就是 ER Model

  • 矩形代表一个类
  • 棱形代表“操作”
  • 椭圆代表“key”,带下划线的是 unique 的 key。
  • 六边形里面一个“are”, 代表继承关系。

1:N N:M 关系

记录一道类型题:

这个题的关键是 “Functional Determined”.

例如这道题的 1,2 小问,问题只包含了三个实体中的两个,而这样就不能 “Functional Determined”,因此都 correct。

但是在 3,4,5 小文中, 因为三个实体被同时提及了,因此这之间就有关系了:Person & event determine the seat。

然后再根据线间的数字关系,进行作答。

改错题

注意点:

  • 确实需要根据现实逻辑进行修改
  • 现实逻辑与“Functional Determinism”的对应

Week2

关系的形式化表达

定义实体:[名字]:{[属性:类型]}

然后 Key Element 记得带下划线,和 ER 图一致

定义关系:[关系名]:{[来自操作实体的 Key Element。 操作自身的 Attribute]}

分为两部分。一部分为操作实体的 Key, 用来指定操作对象。另一部分是操作自身的 Attribute。用来提供相关信息。

1:N 与 1:1 关系的体现。
1:N:外键放到 N 的那一边。
1:1 外键放那边都可以,但不能都放。

几个操作符号

  • σ\sigma selection 根据给定条件选择行 例子:σyear > 2000 (movies)
  • π\pi projection 只保留表的某些列 例子:πname, year (movies)
  • \cup union 合并去重,schema 必须相同。 例子: σyear>2000(movies) ∪ σrank>7.5(movies)
  • - difference 例子: R1R2R_1-R_2, 意思是从 R1R_1 中除掉满足 R2R_2 的项。
  • ×\times Cartesian Product 字面意思,笛卡尔积
  • ρ\rho rename 重命名某一attribute 例子:ρid’←id(actors)
  • \cap intersect 字面意思,同 \cup
  • θ\bowtie_\theta Theta-Join 就是 θ\theta 本身是一个表达式,然后根据这个表达式进行表的 join
  • \bowtie Equi-join 就是所有项都相同才会join
  • γ\gamma group by 三件事一起做:groupby,aggregate, output
  • Γ\Gamma co grouping 对多个表同时进行分组。

做题的一些方法

  • 基本流程 πσ(σ)\pi \sigma (\bowtie\sigma): 从后往前看,从里往外看。 先筛选,再和表,再筛选,再输出。
  • 和表的时候记得表的结构要差不多。
  • 自己和自己和表的时候记得要重命名,要不然会冲突。

Week3

记一个比较搞耍的事情:课上老师正儿八经认为拆那有 Social Score XD

SQL

基本语法:

1
2
3
4
5
6
SELECT column1,column2
FROM table1
JOIN table2
WHERE some_condition
GROUP BY some_column
HAVING some_property

然后基本逻辑相关:

1
2
3
OR AND IS NOT
-- NULL判断:
IS NULL

Week5

这一周主要是一些优化方法,简单的说就是:

“能提前筛选的就先筛,减少工作量”。

然后还有一个小点就是 Relation Algebra 里面选列 π\pi 默认是去重的,因为是 Set Semantics, 想要不去重,就得用 Bag Semantics, 可以显式指定。


BigData
https://chenxizhou233.github.io/posts/6694cda0.html
作者
Xizhou Chen
发布于
2026年4月9日
许可协议