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 外键放那边都可以,但不能都放。
几个操作符号
- selection 根据给定条件选择行 例子:σyear > 2000 (movies)
- projection 只保留表的某些列 例子:πname, year (movies)
- union 合并去重,schema 必须相同。 例子: σyear>2000(movies) ∪ σrank>7.5(movies)
- difference 例子: , 意思是从 中除掉满足 的项。
- Cartesian Product 字面意思,笛卡尔积
- rename 重命名某一attribute 例子:ρid’←id(actors)
- intersect 字面意思,同
- Theta-Join 就是 本身是一个表达式,然后根据这个表达式进行表的 join
- Equi-join 就是所有项都相同才会join
- group by 三件事一起做:groupby,aggregate, output
- co grouping 对多个表同时进行分组。
做题的一些方法
- 基本流程 : 从后往前看,从里往外看。 先筛选,再和表,再筛选,再输出。
- 和表的时候记得表的结构要差不多。
- 自己和自己和表的时候记得要重命名,要不然会冲突。
Week3
记一个比较搞耍的事情:课上老师正儿八经认为拆那有 Social Score XD
SQL
基本语法:
1 | |
然后基本逻辑相关:
1 | |
Week5
这一周主要是一些优化方法,简单的说就是:
“能提前筛选的就先筛,减少工作量”。
然后还有一个小点就是 Relation Algebra 里面选列 默认是去重的,因为是 Set Semantics, 想要不去重,就得用 Bag Semantics, 可以显式指定。
BigData
https://chenxizhou233.github.io/posts/6694cda0.html