-
总体要求
- linux环境下,采用C或C++
- 存储一张表,然后能对该表进行查询、添加等操作
- 上述功能以API的形式提供给应用使用
-
存储要求
- 利用已学的文件操作API,在文件系统中存储一张表
- 该表有100个属性,每个属性都是8字节大小(int64_t)
- 需要支持的最大行数为1百万行
-
添加要求
- 提供API函数,实现向表格添加一行的功能(添加到表格的末尾)
-
搜索要求
- 提供API函数,实现对表格的某一个属性进行范围查找或精确查找的功能。例如:
- 查找在属性A上,大于等于50,小于等于100的所有行,当上下限相等时,即为精确查找
- 用户可以指定在哪一个属性上进行搜索
- 当搜索结果包含的行数过多时,可以只返回一小部分,如10行等
- 提供API函数,实现对表格的某一个属性进行范围查找或精确查找的功能。例如:
-
索引要求
- 提供API函数,为表格的某一个属性建立索引结构,以实现快速搜索
- 自行选择使用哪种数据结构,建立索引结构,比如B+树等
- 建立的索引结构,需要保存到一个文件中(索引文件);下次重启应用程序,并执行搜索任务时,应先检查是否已为相应属性建立了索引结构,即,搜索功能实现时,需要查找是否有索引文件存在,若有,则使用该文件加速搜索
-
并发要求
-
应用程序可以以多线程的方式,使用我们提供的上述API
-
要保证多线程环境下,表、索引结构、索引文件的一致性(考虑互斥的要求)
-
-
测试要求
- 表中的数据随机生成
- 测试用例要覆盖主要的需求
-
附加
- 插入、删除、修改表中的数据不做要求
- 要求使用C或C++语言
-
Notifications
You must be signed in to change notification settings - Fork 5
jean-docker/LinuxDatabase
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
linux高级环境编程作业
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published