我正在考虑设计和实现自己的SQL等效语言(DDL+DML),它应该是:
- 一种纯关系代数语言,并且
- 具有优雅的Lisp-/Scheme-类语法。
假设使用MySQL这样的RDBMS,我需要从哪里开始进行语言设计工作呢?在存储引擎层之上,例如InnoDB?
我不知道所有RDBMS功能通常都位于存储引擎之上吗?我的当前直觉理解是,创建RDBMS(如MySQL)所需的大部分工作已经在存储引擎(特别是InnoDB)中完成,你只需要创建一个包装器语言即可。但我也知道,如果那真的是正确的,为什么MySQL会首先存在呢!