Skip to content

SkyPapaya/mini_database

Repository files navigation

源代码文件列表:(每行的第一个文件是主文件,其他是辅助文件)
(1)总控模块:main.py-》整个程序的运行控制,分成7个分支
(2)公共模块:common_db.py  -》包含所有模块都引用的常量、类、函数的定义
(3)模式管理模块:schema_db.py,-》表模式存储的代码示例,辅助模块head_db.py实现模式的缓存
(3)数据管理模块:storage_db.py-》表数据管理的代码示例
(4)索引管理模块:index_db.py-》索引的代码示例
(5)查询分析器模块:query_plan_db.py,parser_db.py,lex_db.py,node_db.py-》查询分析器的代码示例
(6)平时调试测试用的模块:test_db.py


大作业内容
(1)每个.py文件会有若干个函数代码空白,用 "#to the students:to be inserted here" 标注
(2)每个学生须填充每个模块的一个函数(除公共模块)
(3)代码完成要求:实现规定函数、代码规范合理(要有完整的程序注释模块)、模块能运行

大作业评分基本依据
(差)代码缺失
(中)完成规定函数,程序逻辑没有问题,但模块的实际运行和代码规范(必须有注释)有问题
(良)完成了每个函数,代码基本规范(必须有注释),程序逻辑和模块的实际运行都没有问题
(优)不仅完成了规定的函数,单个模块可运行、代码规范(必须有注释),并且整个程序扩充完整,可以流畅运行。

大作业提交形式
(1)课程结束时,整个完整程序打包发给老师
(2)提前做好的,也可以在平时答疑时间当面讲解演示
(3)评分依据的代码要打印出来交给老师。


备注:
编程语言可以是C,C++,C#,JAVA,PYTHON等,大家也可以自主协商,参照提供的python代码,提供其他语言的源代码,考核时,主要依据规定函数的运行情况来判断。


2025年2月19日为了适应Python3.x编译器,进行了如下修改:
(1)涉及到input函数,在Python3.x版本,input函数输入的返回值类型为str,本代码采用bytes编码,所以需要将str类型转化为bytes类型
具体转换方式如下:
Str->bytes:(以字符串hello为例)
'hello'.encode('utf-8')
Bytes->str:(非必要不推荐)(print函数两者都可,因为两个函数都不涉及对变量本身的修改)
Decode函数,使用方法和上面类似
(2)选项5reload函数注释了,需实现
(3)因为涉及import lex_db(main_db.py的19行),要安装库,用命令pip3 install ply

About

数据库实验

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages