Skip to content

HIT-DB: 模拟数据库磁盘读写并实现相应算法

Notifications You must be signed in to change notification settings

my-university-labs/db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

数据库算法模拟

使用extmem库模拟数据库的磁盘读写,并在此基础上完成以下任务:

  1. 随机生成数据
  2. 读取并显示数据
  3. 磁盘7路归并排序
  4. 磁盘数据线性搜索算法
  5. 磁盘数据二元搜索算法
  6. 磁盘数据hash索引
  7. 集合的并、交、差运算
  8. nested loop join
  9. sort merge jion
  10. hash join

模拟过程介绍:

磁盘上存储两个关系R和S,其中,二者满足如下要求:

关系R具有两个属性A和B,其中A和B的属性值均为int型(4个字节),A的值域为[1,40],B的值域为[1,1000]。

关系S具有两个属性C和D,其中C和D的属性值均为int型(4个字节)。C的值域为[20,60],D的值域为[1,1000]。

使用Exemem程序存储以上两个关系:

关系的物理存储形式为磁盘块序列B1,B2,…,Bn,其中Bi的最后4个字节存放Bi+1的地址。R和S的每个元组为8个字节,块的大小设置为64个字节,缓冲区大小设置为512+8=520个字节。这样,每块可存放7个元组和1个后继磁盘块地址,缓冲区内可最多存放8个块。本程序中R中包含16* 7 = 112个元组,S中包含32* 7 = 224个元组。

怎样运行

git clone https://github.com/dongchangzhang/dboperation-sim
cd dboperation-sim
make clean
make
./main

About

HIT-DB: 模拟数据库磁盘读写并实现相应算法

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published