12.07.2015 Views

数据库课程设计1: 可扩展哈希

数据库课程设计1: 可扩展哈希

数据库课程设计1: 可扩展哈希

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

数 据 库 课 程 设 计 1: 可 扩 展 哈 希1. 实 验 平 台Linux 或 者 Windows2. 编 程 语 言仅 能 使 用 C/C++, 不 允 许 使 用 STL。3. 实 现 算 法可 扩 展 哈 希 , 具 体 算 法 请 见 课 件 中 的 第 5 至 12 张 。算 法 实 现 分 为 两 大 部 分 , 第 一 部 分 是 建 立 索 引 , 第 二 部 分 是 查 询 。 建 立 索 引 是 将 输 入 的每 一 条 记 录 根 据 指 定 的 键 值 放 入 合 适 的 哈 希 桶 内 , 当 哈 希 桶 已 满 时 , 需 要 进 行 分 裂 。 查 询 是根 据 输 入 的 键 值 返 回 具 有 相 同 键 值 的 记 录 , 返 回 的 记 录 可 能 有 不 止 一 条 。4. 实 现 过 程(1) 读 入 由 tpc-h 生 成 的 lineitem.tbl, 以 L_ORDERKEY 属 性 作 为 键 值 将 记 录 放 入 合 适 的 哈 希 桶内 。(2) 读 入 测 试 文 件 testinput.in 内 的 数 据 , 数 据 中 包 含 多 个 需 要 查 询 的 键 值 , 具 体 格 式 请 见 [6.数 据 输 入 输 出 说 明 ]。(3) 将 通 过 键 值 查 询 得 到 的 所 有 记 录 都 输 出 到 testoutput.out 文 件 中 , 具 体 格 式 请 见 [6. 数 据输 入 输 出 说 明 ]。5. 实 现 细 节(1) 只 能 使 用 P 个 页 , 每 个 页 的 大 小 为 8K bytes, 一 个 哈 希 桶 的 大 小 和 一 个 页 的 大 小 相 同 。考 虑 以 下 两 种 情 况 :a) P=8( 也 就 是 整 个 内 存 中 仅 能 使 用 8 个 页 , 这 8 个 页 用 于 存 放 索 引 和 哈 希桶 的 数 据 )b) P=128( 也 就 是 整 个 内 存 中 仅 能 使 用 128 个 页 , 这 128 个 页 用 于 存 放 索 引和 哈 希 桶 的 数 据 )由 于 页 的 数 量 有 所 限 制 ,lineitem.tbl 的 数 据 和 对 其 建 立 的 索 引 不 可 能 都 放 在 内 存 里 ,所 以 频 繁 的 文 件 读 写 (I/O) 是 不 可 避 免 的 。 请 比 较 P=8 和 P=128 两 种 情 况 下 ,I/O 的 次数 、 目 录 的 大 小 、 哈 希 桶 的 数 量 、 查 询 的 速 度 ( 每 秒 执 行 查 询 的 数 量 )、I/O 用 时 占查 询 总 用 时 的 比 例 等 。(2) 对 于 哈 希 桶 内 的 数 据 , 采 用 < 键 , 数 据 记 录 > 的 方 式 进 行 存 储 。 详 细 内 容 请 参 考 课 件 中 的 第 16、17 张 。(3) 对 于 存 储 哈 希 桶 数 据 的 页 面 , 使 用 变 长 记 录 的 方 式 进 行 存 储 。 关 于 变 长 记 录 , 请 参考 课 件 中 的 第 31 张 。(4) 使 用 时 钟 页 面 算 法 进 行 页 面 置 换 , 请 参 考 中 的 第 19 张 。(5) 分 别 实 现 从 低 位 和 从 高 位 进 行 扩 展 的 哈 希 。 详 细 内 容 请 参 考 课 件 中 的 第 10 张 。 比 较 这 两 种 哈 希 方 法 , 包 括 桶 的 分 裂 方 式 、 桶 分 裂 时 桶 内 数据 的 分 配 方 式 、I/O 的 次 数 、 目 录 的 大 小 、 桶 的 数 量 、 查 询 的 速 度 ( 每 秒 执 行 查 询 的数 量 )、I/O 用 时 占 查 询 总 用 时 的 比 例 等 。(6) 将 建 立 的 哈 希 索 引 输 出 到 新 的 文 件 中 , 命 名 为 hashindex.out, 格 式 自 定 。(7) 对 于 每 个 查 询 结 果 , 请 按 照 L_PARTKEY 属 性 的 值 进 行 排 序 。1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!