From f04cb0a33c62fb1708a09ae9ce7c2ebc98b3ac66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=99=8B=E9=B9=8F?= Date: Thu, 23 Nov 2017 15:03:38 +0800 Subject: [PATCH] Update README.md --- README.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0d36ce7..ba01452 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,32 @@ 内存集合处理器 === ->内存集合处理器提供基于List集合的仿数据库的查询处理能力,支持select、where、group by、order by以及关联查询。
->用于对内存集合数据的轻量级加工,提供统一的API,减轻对物理库的依赖。
->为后续去O后的类sql处理提供统一的API.
->支持传入类sql语句来执行集合的查询处理,这个查询语言叫做:collection query language,简称cql.
+内存集合处理器提供基于List集合的仿数据库的查询处理能力,支持select、where、group by、order by以及关联查询。
+用于对内存集合数据的轻量级加工,提供统一的API,减轻对物理库的依赖。
+为后续去O后的类sql处理提供统一的API.
+支持传入类sql语句来执行集合的查询处理,这个查询语言叫做:collection query language,简称cql.
设计思路 --- >选用mysql的语法作为cql的语法基础,将cql解析成抽象语法树,也就是将sql进行解析、语法校验、子句拆解,形成按select、from、where、group by、order by子句,然后将抽象语法树映射到易于集合处理器程序执行的集合处理模板树 +![](https://github.com/eva233man/collection-database/blob/master/doc/tree.png) + + +>抽象语法树 AST结构如下: 大致描述用到的结构,其实际结构比这个要复杂 + +![](https://github.com/eva233man/collection-database/blob/master/doc/ast.png) + + +>集合处理器模板树结构如下: + +![](https://github.com/eva233man/collection-database/blob/master/doc/template.png) + + +>程序处理流程: + +![](https://github.com/eva233man/collection-database/blob/master/doc/process.png) 版本升级说明 ---