一种面向对象的加密列式SQL数据库管理系统的设计方法技术方案

技术编号:34087544 阅读:17 留言:0更新日期:2022-07-11 20:22
本发明专利技术提出了一种面向对象的加密的列式SQL数据库管理系统的设计方法,该方法将所有SQL请求以对象的形式存储起来,并且将其作为参数传递至各个层面,贯穿了一次SQL查询的整个周期,同时对数据进行二次加密,并且对数据实现列式存储和查询。实现列式存储和查询。

【技术实现步骤摘要】
一种面向对象的加密列式SQL数据库管理系统的设计方法


[0001]本专利技术提出了一种列式SQL数据库管理系统的设计方法,该方法将来自SQL语言的请求转化成一个对象,通过该对象实现了数据的存储,查询删除等。同时该方法对数据进行了加密,有效的保护了数据。

技术介绍

[0002]Socket编程技术,对象编程技术。

技术实现思路

[0003]目前市面上已经存在一些SQL数据库管理系统,但是编程的方法都比较古老,本专利技术提出了一种面向对象的,能够对数据进行二次加密的,列式SQL数据库管理系统的设计方法。通过该方法,我们能够将SQL请求转变成一个对象,QueryContent, 再通过传递该对象,实现整个数据查询流程的高效传递,从而实现了数据库管理系统的功能。
[0004]该系统分为客户端和服务器,它们之间使用SOCKET进行通信,服务器这边首先接收到客户端的SQL请求,然后它会打开一个文本,从该文本中读取SQL请求的内容,然后通过分析该SQL请求的内容,生成一个对象,QueryContent, 然后将该对象作为一个参数,传递下去,直到本次查询终结。
[0005]QueryContent作为本系统的核心参数传递者,它包含所有的查询有关的信息,一般说来,包含如下信息,string 格式的query_type, int 格式的query_type_code,string格式的config_home,一个CreateTable, 一个InsertTable,一个SelectTable,一个DropTable, 一个DeleteTable,一个UpdateTable,一个CreateDatabase, 一个DropDatabase, 一个UseDatabase。除去string格式和int格式的,剩下的都是新的类,用于保存SQL请求参数的。其中CreateTable主要包含string格式的table_name,int格式的size, map<string, ColumnType>的create_list。其中table_name为表格的名称,size为创建表格参数的个数,create_list为参数的具体内容。InsertTable主要包含string格式的table_name,int格式的size,map<int,string>的insert_list。SelectTable主要包含string格式的table_name, int格式的size,map<int, string>的select_list。DropTable主要包含string格式的table_name, int格式的size。DeleteTable主要包含string格式的table_name,int格式的size。UpdateTable主要包含string格式的table_name, int 格式的size。CreateDatabase主要包含string格式的database_name,DropDatabase主要包含string格式的database_name,UseDatabase主要包含string格式的database_name。一次SQL请求语句的分析,可以将该QueryContent的相关参数填满。并且配置好query_type_code。该query_type_code包含不同的类别,主要包含如下种类:CS_SELECT_TABLE, CS_SELECT_TABLE_ALL, CS_CREATE_TABLE, CS_INSERT_TABLE, CS_UPDATE_TABLE, CS_DROP_TABLE, CS_DELETE_TABLE, CS_CREATE_DATABASE, CS_DROP_DATABASE, CS_USE_DATABASE, CS_SHOW_DATABASE,根据不同的类别,服务器执行不同的行为,CS_SELECT_
TABLE主要执行select table的行为,CS_SELECT_TABLE_ALL主要执行select *的行为,CS_CREATE_TABLE主要执行create table的行为,CS_INSERT_TABLE主要执行insert 的行为,CS_UPDATE_TABLE主要执行update table的行为,CS_DROP_TABLE主要执行drop table的行为,CS_DELETE_TABLE主要执行delete table的行为,CS_CREATE_DATABASE主要执行do create database的行为,CS_DROP_DATABASE主要执行drop database的行为,CS_USE_DATABASE主要执行use database的行为,CS_SHOW_DATABASE主要执行show database的行为。
[0006]该数据加密主要指在存储引擎层面的加密,包含两层数据加密,第一层加密是指,将SQL请求中的创建数据库和表格的名称进行加密,即将其进行名称到数字的转化,我们使用哈希表来存储该对应关系,举个例子,我们需要创建名称为School的数据库,在该数据库中创建名称为Students, Driver的表格,我们先建立一个数据库名称的对面关系表格,里面主要是数据库名称的对应关系,比如map[

school

] = 1, 将school对应到1, 我们将其保存下来,称之为config.dat, 同时对于该数据库,我们生成哈希表,用于存储该数据库中表格名称的对应关系,比如,map[

students

] = 1, map[

driver

] = 2, 我们将其保存下来,命名为Set1.dat。这样,我们形成了表格名称的对应关系,students对应到1, driver对应到2,这样,我们有了第一层的加密,将数据库名称和表格名称转化成数字。我们将对应表格的数据文件保存为数据库序列+表格序列的形式,比如,该例子中school数据库中students表格中的数据信息,保存形式为Set1_dat_1_data.dat,其中Set1代表school数据库,dat_1代表students表格。
[0007]第二层加密是指,将存储的数据文本进行加密,当我们创建了数据库,生成了表格的数据文件,数据文件分为类型文件和数据文件,我们对这两类文件都进行加密,使之明文不可见。具体的加密算法可以有不同的算法,只要使之明文不可见就行了。举个例子,我们将所有的数据文件进行按字母读取,然后对每个读取的字节加1,这样,然后生成新的数据文件,新的数据文件明文看不懂,旧的数据文件删除,从而达到数据文件保密的目的。
[0008]有了加密,也有对应的解密过程,对于第一层的加密,当服务器有需要读取相关数据库的数据或者相关数据表格的数据的读取修改的需求时,服务器先调用相关的哈希表,通过输入相关的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.“该系统分为客户端和服务器,它们之间使用SOCKET进行通信,服务器这边首先接收到客户端的SQL请求,然后它会打开一个文本,从该文本中读取SQL请求的内容,然后通过分析该SQL请求的内容,生成一个对象,QueryContent, 然后将该对象作为一个参数,传递下去,直到本次查询终结”,第5句,原文内容如下:“QueryContent作为本系统的核心参数传递者,它包含所有的查询有关的信息,一般说来,包含如下信息,string 格式的query_type, int 格式的query_type_code,string格式的config_home,一个CreateTable, 一个InsertTable,一个SelectTable,一个DropTable, 一个DeleteTable,一个UpdateTable,一个CreateDatabase, 一个DropDatabase, 一个UseDatabase,除去string格式和int格式的,剩下的都是新的类,用于保存SQL请求参数的,其中CreateTable主要包含string格式的table_name,int格式的size, map<string, ColumnType>的create_list,其中table_name为表格的名称,size为创建表格参数的个数,create_list为参数的具体内容,InsertTable主要包含string格式的table_name,int格式的size,map<int,string>的insert_list,SelectTable主要包含string格式的table_name, int格式的size,map<int, string>的select_list,DropTable主要包含string格式的table_name, int格式的size,DeleteTable主要包含string格式的table_name,int格式的size,UpdateTable主要包含string格式的table_name, int 格式的size,CreateDatabase主要包含string格式的database_name,DropDatabase主要包含string格式的database_name,UseDatabase主要包含string格式的database_name,一次SQL请求语句的分析,可以将该QueryContent的相关参数填满,并且配置好query_type_code,该query_type_code包含不同的类别,主要包含如下种类:CS_SELECT_TABLE, CS_SELECT_TABLE_ALL, CS_CREATE_TABLE, CS_INSERT_TABLE, CS_UPDATE_TABLE, CS_DROP_TABLE, CS_DELETE_TABLE, CS_CREATE_DATABASE, CS_DROP_DATABASE, CS_USE_DATABASE, CS_SHOW_DATABASE,根据不同的类别,服务器执行不同的行为,CS_SELECT_TABLE主要执行select table的行为,CS_SELECT_TABLE_ALL主要执行select *的行为,CS_CREATE_TABLE主要执行create table的行为,CS_INSERT_TABLE主要执行insert 的行为,CS_UPDATE_TABLE主要执行update table的行为,CS_DROP_TABLE主要执行drop table的行为,CS_DE...

【专利技术属性】
技术研发人员:ꢀ五一IntClG零六F一六二二
申请(专利权)人:天津询达数据科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1