From 9e0739a93c3754a6583251fe5a3a203a25ffb4bb Mon Sep 17 00:00:00 2001 From: yinkanglong_lab Date: Thu, 8 Apr 2021 00:13:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 数据库/Redis/ch0补充.md | 3 ++ 数据库/Redis/{0redis.md => ch1概述.md} | 0 数据库/Redis/image/2021-04-07-23-46-25.png | Bin 0 -> 78439 bytes 数据库/设计篇——1.规范化.md | 43 ++++++++++------- 数据结构/5 散列表.md | 51 +++++++++++++++++---- 数据结构/image/2021-04-07-23-38-56.png | Bin 0 -> 26871 bytes 6 files changed, 72 insertions(+), 25 deletions(-) create mode 100644 数据库/Redis/ch0补充.md rename 数据库/Redis/{0redis.md => ch1概述.md} (100%) create mode 100644 数据库/Redis/image/2021-04-07-23-46-25.png create mode 100644 数据结构/image/2021-04-07-23-38-56.png diff --git a/数据库/Redis/ch0补充.md b/数据库/Redis/ch0补充.md new file mode 100644 index 00000000..4c3327cb --- /dev/null +++ b/数据库/Redis/ch0补充.md @@ -0,0 +1,3 @@ +> https://blog.csdn.net/zh15732621679/article/details/80614091 +### Redis使用场景 +![](image/2021-04-07-23-46-25.png) \ No newline at end of file diff --git a/数据库/Redis/0redis.md b/数据库/Redis/ch1概述.md similarity index 100% rename from 数据库/Redis/0redis.md rename to 数据库/Redis/ch1概述.md diff --git a/数据库/Redis/image/2021-04-07-23-46-25.png b/数据库/Redis/image/2021-04-07-23-46-25.png new file mode 100644 index 0000000000000000000000000000000000000000..4947c52e321e2231c7385f6882b3d38296eb8f3c GIT binary patch literal 78439 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 B^tk{4 literal 0 HcmV?d00001 diff --git a/数据库/设计篇——1.规范化.md b/数据库/设计篇——1.规范化.md index 5e76657c..9d3666a4 100644 --- a/数据库/设计篇——1.规范化.md +++ b/数据库/设计篇——1.规范化.md @@ -6,9 +6,20 @@ 如果 {A1,A2,... ,An} 是关系的一个或多个属性的集合,该集合函数决定了关系的其它所有属性并且是最小的,那么该集合就称为**键码**。 -对于 A-\>B,如果能找到 A 的真子集 A',使得 A'-\> B,那么 A-\>B 就是**部分函数依赖**,否则就是**完全函数依赖**。 +### 部分函数依赖 +* 设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。 -对于 A-\>B,B-\>C,则 A-\>C 是一个**传递函数依赖**。 +* 举个例子:学生基本信息表R中(学号,身份证号,姓名)当然学号属性取值是唯一的,在R关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号); + +### 完全函数依赖 + +* 设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。 +* 例子:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级); + +### 传递函数依赖 + +* 设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。 +* 例子:在关系R(学号 ,宿舍, 费用)中,(学号)->(宿舍),宿舍!=学号,(宿舍)->(费用),费用!=宿舍,所以符合传递函数的要求; ## 2 异常 @@ -49,9 +60,7 @@ 每个非主属性完全函数依赖于键码。 -可以通过分解来满足。 - - **分解前**
+> **分解前** | Sno | Sname | Sdept | Mname | Cname | Grade | | :---: | :---: | :---: | :---: | :---: |:---:| @@ -61,16 +70,15 @@ | 3 | 学生-3 | 学院-2 | 院长-2 | 课程-2 | 95 | 以上学生课程关系中,{Sno, Cname} 为键码,有如下函数依赖: +``` +Sno -> Sname, Sdept +Sdept -> Mname +Sno, Cname-> Grade +``` +* Grade 完全函数依赖于键码{Sno,Cname},它没有任何冗余数据,每个学生的每门课都有特定的成绩。 +* Sname, Sdept 和 Mname 都部分依赖于键码{Sno,Cname},当一个学生选修了多门课时,这些数据就会出现多次,造成大量冗余数据。 -- Sno -\> Sname, Sdept -- Sdept -\> Mname -- Sno, Cname-\> Grade - -Grade 完全函数依赖于键码,它没有任何冗余数据,每个学生的每门课都有特定的成绩。 - -Sname, Sdept 和 Mname 都部分依赖于键码,当一个学生选修了多门课时,这些数据就会出现多次,造成大量冗余数据。 - - **分解后**
+> **分解后** 关系-1 @@ -103,10 +111,11 @@ Sname, Sdept 和 Mname 都部分依赖于键码,当一个学生选修了多门 非主属性不传递函数依赖于键码。 上面的 关系-1 中存在以下传递函数依赖: +``` +Sno -> Sdept -> Mname +``` -- Sno -\> Sdept -\> Mname - -可以进行以下分解: +> 可以进行以下分解: 关系-11 diff --git a/数据结构/5 散列表.md b/数据结构/5 散列表.md index d154f553..0708dca4 100644 --- a/数据结构/5 散列表.md +++ b/数据结构/5 散列表.md @@ -2,6 +2,9 @@ > 包含集合和映射。即unordered_set和unordreed_map两种数据结构的实现方式。 +> 参考文献 +> * [https://www.cnblogs.com/gongcheng-/p/10894205.html#_label1_0](https://www.cnblogs.com/gongcheng-/p/10894205.html#_label1_0) + ## 1 哈希表简介 ### 哈希表的概念 @@ -22,7 +25,7 @@ 1. 当我们插入一个新的键时,哈希函数将决定该键应该分配到哪个桶中,并将该键存储在相应的桶中; 2. 当我们想要搜索一个键时,哈希表将使用相同的哈希函数来查找对应的桶,并只在特定的桶中进行搜索。 -### 哈希函数示例 +### 哈希函数 ![](image/2021-03-13-12-51-08.png) @@ -33,7 +36,10 @@ - 如果我们搜索 1987,我们将使用相同的哈希函数将 1987 映射到 2。因此我们在桶 2 中搜索,我们在那个桶中成功找到了 1987。 - 例如,如果我们搜索 23,将映射 23 到 3,并在桶 3 中搜索。我们发现 23 不在桶 3 中,这意味着 23 不在哈希表中。 -### 哈希表的关键——哈希函数 +### 常用hash函数 +* + +## 2.1 哈希表的关键——哈希函数 * 哈希函数是哈希表中最重要的组件,该哈希表用于将键映射到特定的桶。在上一节的示例中,我们使用 `y = x % 5` 作为散列函数,其中 `x` 是键值,`y` 是分配的桶的索引。 @@ -44,21 +50,50 @@ * 哈希函数的设计是一个开放的问题。其思想是尽可能将键分配到桶中,理想情况下,完美的哈希函数将是键和桶之间的一对一映射。然而,在大多数情况下,哈希函数并不完美,它需要在桶的数量和桶的容量之间进行权衡。 -### 哈希表的关键——冲突解决 +## 2.2 哈希表的关键——冲突解决 +### 问题分析 * 理想情况下,如果我们的哈希函数是完美的一对一映射,我们将不需要处理冲突。不幸的是,在大多数情况下,冲突几乎是不可避免的。例如,在我们之前的哈希函数(_y = x % 5_)中,1987 和 2 都分配给了桶 2,这是一个`冲突`。 -* 冲突解决算法应该解决以下几个问题: - 1. 如何组织在同一个桶中的值? - 2. 如果为同一个桶分配了太多的值,该怎么办? - 3. 如何在特定的桶中搜索目标值? * 根据我们的哈希函数,这些问题与`桶的容量`和可能映射到`同一个桶`的`键的数目`有关。 * 让我们假设存储最大键数的桶有 `N` 个键。如果 N是常数且很小,我们可以简单地使用一个数组将键存储在同一个桶中。如果 N 是可变的或很大,我们可能需要使用`高度平衡的二叉树`来代替。 +### 开放寻址法(open addressing) -## 哈希表的实现 +* 这种方法也称再散列法,其基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,…,直到找出一个不冲突的哈希地址pi ,将相应元素存入其中。这种方法有一个通用的再散列函数形式: + +``` +Hi=(H(key)+di)% m i=1,2,…,n +``` + +* 其中H(key)为哈希函数,m 为表长,di称为增量序列。增量序列的取值方式不同,相应的再散列方式也不同。 + +### 链接法 +![](image/2021-04-07-23-38-56.png) +* 把散列到同一槽中的所有元素都存放在一个链表中。每个槽中有一个指针,指向所有散列到该槽的元素构成的链表的头。如果不存在这样的元素,则指针为空。如果链接法使用的是双向链表,那么删除操作的最坏情况运行时间与插入操作相同,都为O(1),而平均情况下一次成功的查找需要Θ(1+α)时间。α是装填因子。 + +* 将散列表定义为一个由m个头指针组成的指针数 组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。在拉链法中,装填因子α可以大于 1,但一般均取α≤1。 + +* 优点:处理冲突简单,且无堆积现象,即非同义词决不会发生冲突,因此平均查找长度较短;由于拉链法中各链表上的结点空间是动态申请的,故它更适合于造表前无法确定表长的情况;开放定址法为减少冲突,要求装填因子α较小,故当结点规模较大时会浪费很多空间。而拉链法中可取α≥1,且结点较大时,拉链法中增加的指针域可忽略不计,因此节省空间;删除结点的操作易于实现。只要简单地删去链表上相应的结点即可 + +* 缺点:指针需要额外的空间,故当结点规模较小时,开放定址法较为节省空间,而若将节省的指 + +### 优缺点 + +* 开放散列表(open hashing)/拉链法(针对桶链结构) + 1. 优点:①对于记录总数频繁可变的情况,处理的比较好(也就是避免了动态调整的开销) ②由于记录存储在结点中,而结点是动态分配,不会造成内存的浪费,所以尤其适合那种记录本身尺寸(size)很大的情况,因为此时指针的开销可以忽略不计了 ③删除记录时,比较方便,直接通过指针操作即可 + 2. 缺点: ①存储的记录是随机分布在内存中的,这样在查询记录时,相比结构紧凑的数据类型(比如数组),哈希表的跳转访问会带来额外的时间开销 ②如果所有的 key-value 对是可以提前预知,并之后不会发生变化时(即不允许插入和删除),可以人为创建一个不会产生冲突的完美哈希函数(perfect hash function),此时封闭散列的性能将远高于开放散列 ③由于使用指针,记录不容易进行序列化(serialize)操作 +* 封闭散列(closed hashing)/ 开放定址法 + 1. 优点: ①记录更容易进行序列化(serialize)操作 ②如果记录总数可以预知,可以创建完美哈希函数,此时处理数据的效率是非常高的 + 2. 缺点: + 1. 存储记录的数目不能超过桶数组的长度,如果超过就需要扩容,而扩容会导致某次操作的时间成本飙升,这在实时或者交互式应用中可能会是一个严重的缺陷 + 2. 使用探测序列,有可能其计算的时间成本过高,导致哈希表的处理性能降低 ③由于记录是存放在桶数组中的,而桶数组必然存在空槽,所以当记录本身尺寸(size)很大并且记录总数规模很大时,空槽占用的空间会导致明显的内存浪费 + 3. 删除记录时,比较麻烦。比如需要删除记录a,记录b是在a之后插入桶数组的,但是和记录a有冲突,是通过探测序列再次跳转找到的地址,所以如果直接删除a,a的位置变为空槽,而空槽是查询记录失败的终止条件,这样会导致记录b在a的位置重新插入数据前不可见,所以不能直接删除a,而是设置删除标记。这就需要额外的空间和操作。 + + +## 3 哈希表的实现 ### 自己设计哈希函数 diff --git a/数据结构/image/2021-04-07-23-38-56.png b/数据结构/image/2021-04-07-23-38-56.png new file mode 100644 index 0000000000000000000000000000000000000000..a592d261d6d1f79591da0174736980d2d60b5b27 GIT binary patch literal 26871 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 Q$BLf3msOUjlrjnaF9a&iivR!s literal 0 HcmV?d00001