Skip to content

jean-docker/LinuxDatabase

Repository files navigation

LinuxDatabase

  • 总体要求

    • linux环境下,采用C或C++
    • 存储一张表,然后能对该表进行查询、添加等操作
    • 上述功能以API的形式提供给应用使用
  • 存储要求

    • 利用已学的文件操作API,在文件系统中存储一张表
    • 该表有100个属性,每个属性都是8字节大小(int64_t)
    • 需要支持的最大行数为1百万行
  • 添加要求

    • 提供API函数,实现向表格添加一行的功能(添加到表格的末尾)
  • 搜索要求

    • 提供API函数,实现对表格的某一个属性进行范围查找或精确查找的功能。例如:
      • 查找在属性A上,大于等于50,小于等于100的所有行,当上下限相等时,即为精确查找
    • 用户可以指定在哪一个属性上进行搜索
    • 当搜索结果包含的行数过多时,可以只返回一小部分,如10行等
  • 索引要求

    • 提供API函数,为表格的某一个属性建立索引结构,以实现快速搜索
    • 自行选择使用哪种数据结构,建立索引结构,比如B+树等
    • 建立的索引结构,需要保存到一个文件中(索引文件);下次重启应用程序,并执行搜索任务时,应先检查是否已为相应属性建立了索引结构,即,搜索功能实现时,需要查找是否有索引文件存在,若有,则使用该文件加速搜索
  • 并发要求

    • 应用程序可以以多线程的方式,使用我们提供的上述API

    • 要保证多线程环境下,表、索引结构、索引文件的一致性(考虑互斥的要求)

  • 测试要求

    • 表中的数据随机生成
    • 测试用例要覆盖主要的需求
  • 附加

    • 插入、删除、修改表中的数据不做要求
    • 要求使用C或C++语言

About

linux高级环境编程作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published