用 Typescript + node 实现一个简单的数据库。
js/typescript最熟练,性能方面,对于一个普通的应用足够了。
- 查询管理器:
sql解析器,预处理(语义检查),逻辑计划,物理计划,计划执行,关系代数的基本运算;
目前支持大部分的DML,DDL还不支持,不过可以在启动前通过配置来实现创建数据表等操作; - 存储管理器:
文件管理,缓冲区; - 索引:
主索引使用b+树文件,辅助索引目前还不支持; - 事务管理器: 目前还在写。
SQL语句类型 | 是否支持 |
---|---|
SELECT语句 | 是 |
INSERT语句 | 是 |
UPDATE语句 | 是 |
DELETE语句 | 是 |
WHERE子句 | 是 |
JOIN子句 | 是 |
笛卡尔积 | 是 |
LIKE | 是 |
ORDER | 是 |
关于DDL,比如创建数据库,选择数据库,创建数据表等语句可以在启动前通过修改schema.json文件来实现。
npm install
node-db支持两种使用方式
- 命令行
npm run start
启动后可以直接在命令行里输入SQL:
- 使用客户端 + 服务器
启动server:
npm run server
或者开启debug模式:
npm run server:debug
此外,还需要安装并启动另外一个项目node-db-client
安装
npm install
运行
npm run serve
打开:http://localhost:8080/#/home
# unit tests
$ npm run test