数据库系统概念12-索引与散列(2)概论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Example of Hash Index 散列索引 cp337
把 索引项集 { (Key, Pointer
)} 分散列入 多桶内
数据统系统 2020/11/18
•主文件
•桶,桶内为索引
项
Hash(账号)= 账号 mod 7
12/131
Deficiencies of Static Hashing 静态散列的缺点cp338
分散均匀,随机,搜索空间 才分得小
算得快,
例子:12属相,
若干人分12桶(多:1)
电影院 分单双号入座,若干人分2桶
字典首母 ,作标签:
Hash(word)=Word[0]. 分为26 桶
宝光寺:数罗汉 .
Hash(Person,sex)=2*(Redom(Seed)+Age+1)+Sex
CP337 LINE 2 有个31进位的HASH 例子 (处理字符串)
如Hash(x)=X mod n, n=12, 12 是固定数,分为12桶, 如果开始n 太大,浪费空间, 数据增加了, n 应该动态变化 .
数据统系统 2020/11/18
13/131
Chapter 12: Indexing and Hashing
基本概念
Ordered Indices
顺序索引
B+-Tree Index Files
B+-树索引
B-Tree Index Files
B-树文件
Static Hashing
静态散列 cp335
Dynamic Hashing
动态散列
Comparison of Ordered Indexing and Hashing 比较
字典首母 ,作标签:
Hash(word)=Word[0]. 分为26 桶
宝光寺:数罗汉 .
Hash(Person,sex)=2*(Redom(Seed)+Age+1)+Sex
CP337 LINE 2 有个31进位的HASH 例子 (处理字符串)
数据统系统 2020/11/18
9/131
Handling of Bucket Overflows 处理溢出 cp336
Book :数据库概念 Ver.5 by Silberschatz 等
Chapter 12 : Indexing and Hashing
第12章 索引与散列 B
数据统系统 2020/11/18
1 1/131
Chapter 12: Indexing and Hashing
Basic Concepts
数据统系统 2020/11/18
8/131
Hash Functions cp336
散列就是要散,数据库中如果没有散开或不均匀 , 则不是好 函数,(在加密技术中,反过来,要求散列不碰撞。解释)
分散均匀,随机,搜索空间 才பைடு நூலகம்得小
算得快,
例子:12属相,
若干人分12桶(多:1)
电影院 分单双号入座,若干人分2桶
Example of Hash File Organization (Cont.) cp336
把账号表散列 10 buckets, The binary representation of the ith character is assumed to be the integer i. The hash function returns the sum of the binary representations of the characters modulo 10
Skew in distribution of records. 倾斜,扭曲,分布不均匀, Although the probability of bucket overflow can
be reduced, it cannot be eliminated; it is handled by using overflow buckets.
Index Definition in SQL SQL 中的索引
数据统系统 2020/11/18
2/131
项目驱动目标:
如何实现基于散列的文件组织和索引:
一、静态散列
二、动态散列
三、SQL中的索引定义
主要讨论问题:
1. 什么是静态散列
2. 好的散列函数该是什么样 3. 什么是动态散列 4. 如何在动态散列中插入记录 5. 如何删除动态散列中的记录
E.g. h(Perryridge) = 5 h(Round Hill) = 3 h(Brighton) = 3
上述HASH 函数 : ASCII 码 求和 ,mod 10
数据统系统 2020/11/18
5/131
Example of Hash File Organization cp336
账号表的Hash
例子:12属相,
若干人分12桶(多:1)
电影院 分单双号入座,若干人分2桶
字典首母 ,作标签:
Hash(word)=Word[0]. 分为26 桶
数据统系统 2020/11/18
7/131
Hash Functions cp336
散列就是要散,数据库中如果没有散开或不均匀 , 则不是好 函数,(在加密技术中,反过来,要求散列不碰撞。解释)
6. 与静态散列相比,动态散列有特点
7. 顺序索引与散列的区别
8. SQL中如何定义索引
数据统系统 2020/11/18
3/131
Static Hashing 静态散列 cp335
bucket(桶,常=512b--4K,)为存储单位, 散列—分散 列入桶内
数据统系统 2020/11/18
4/131
数据统系统 2020/11/18
10/131
Handling of Bucket Overflows (Cont.) cp337
Overflow chaining –. 溢出块 成为链,好查找(如下转 XX页),称为封闭 散列 ,closed hashing.
数据统系统 2020/11/18
11/131
用branch-name 作 关键字
(see previous slide for details).
E.g. h(Perryridge) = 5 h(Round Hill) = 3 h(Brighton) = 3
数据统系统 2020/11/18
6/131
Hash Functions cp336
散列就是要散,如果没有散开或不均匀 , 则不是好函数, 分散均匀,随机,搜索空间 才分得小 算得快,