CN110109893A - 数据建模和操作的方法和装置 - Google Patents
数据建模和操作的方法和装置 Download PDFInfo
- Publication number
- CN110109893A CN110109893A CN201810105614.4A CN201810105614A CN110109893A CN 110109893 A CN110109893 A CN 110109893A CN 201810105614 A CN201810105614 A CN 201810105614A CN 110109893 A CN110109893 A CN 110109893A
- Authority
- CN
- China
- Prior art keywords
- concrete database
- database
- concrete
- query language
- data type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000003860 storage Methods 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 27
- 238000011161 development Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012800 visualization Methods 0.000 description 7
- 230000006854 communication Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据建模和操作的方法和装置,能够提供统一的数据建模流程,使得数据建模可灵活配置,易于修改和维护,并且提供统一的数据库结构化查询语言,使数据建模和操作达到跨平台的目的,简化开发过程。该方法包括:利用表存储模板和统一数据类型创建表;将所述表映射到具体数据库中;以及利用统一结构化查询语言操作所述具体数据库。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据建模和操作的方法和装置。
背景技术
在报表开发的过程中,根据业务需求在各种数据库上建立表结构是一个普遍的操作,用户可以通过各种数据操作语句定义数据的存储结构。此外,在产品的正式上线过程中,建立表结构的同时还需要增加安全机制,用户的建表语句通过层层审批才能用于在正式环境的数据库中创建项目所必须的库表结构。目前大多数关系型数据库建表流程大致如此。此外,其他数据库中,例如非关系型数据库或是Elasticsearch(ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。ES是ElasticSearch的缩写。本发明实施例中,它可以作为一个数据库,但不是关系型的数据库,用于存储和操作数据),它们的数据建模过程也需要在相应的***中进行申请流程。
现有技术的数据建模和操作方案大致如下:关系型数据库数据建模需要将要执行的操作使用SQL语句编写出来,然后放在关系型数据库数据操作申请***中,等待负责人员层层审批;Elasticsearch建模的申请流程需要在关系型数据库申请***之外的***中申请;此外,在数据操作阶段,需要使用具体数据库扩展后的结构化查询语言对具体数据库进行增删改查操作。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
各种具体的数据库的数据建模流程不统一;此外,不同的数据库结构化查询语言强依赖于各自的数据库规范。这使得数据建模与操作的开发成本和维护成本都比较高。
发明内容
有鉴于此,本发明实施例提供一种数据建模和操作的方法和装置,能够提供统一的数据建模流程,使得数据建模可灵活配置,易于修改和维护,并且提供统一的数据库结构化查询语言,使数据建模和操作达到跨平台的目的,简化开发过程。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据建模和操作的方法。
本发明实施例的一种数据建模和操作的方法包括:利用表存储模板和统一数据类型创建表;将所述表映射到具体数据库中;以及利用统一结构化查询语言操作所述具体数据库。
可选地,在利用表存储模板和统一数据类型创建表之前,所述方法还包括:预先定义表存储模板和统一数据类型,其中,表存储模板包括表名称信息和字段信息。
可选地,将所述表映射到具体数据库中包括:根据统一数据类型与具体数据库中数据类型的对应关系,将表映射到具体数据库中。
可选地,利用统一结构化查询语言操作所述具体数据库包括:将利用统一结构化查询语言编写的统一查询语句映射为具体数据库查询语句;利用所述具体数据库查询语句操作所述具体数据库。
可选地,在利用所述具体数据库查询语句操作所述具体数据库之前,所述方法还包括:对所述具体数据库查询语句进行校验。
可选地,对所述具体数据库查询语句进行校验包括:获取具体数据库的查询语言词素;利用正则表达式描述所述查询语言词素的模式,生成有限状态自动机;利用所述有限状态自动机校验所述具体数据库查询语句是否符合所述具体数据库的查询语言词素,若符合,则执行利用所述具体数据库查询语句操作所述具体数据库的步骤。
为实现上述目的,根据本发明实施例的另一方面,提供了一种数据建模和操作的装置。
本发明实施例的一种数据建模和操作的装置包括:创建模块,用于利用表存储模板和统一数据类型创建表;映射模块,用于将所述表映射到具体数据库中;以及操作模块,用于利用统一结构化查询语言操作所述具体数据库。
可选地,所述装置还包括:定义模块,用于在利用表存储模板和统一数据类型创建表之前,预先定义表存储模板和统一数据类型,其中,表存储模板包括表名称信息和字段信息。
可选地,所述映射模块还用于:根据统一数据类型与具体数据库中数据类型的对应关系,将表映射到具体数据库中。
可选地,所述操作模块还用于:将利用统一结构化查询语言编写的统一查询语句映射为具体数据库查询语句;利用所述具体数据库查询语句操作所述具体数据库。
可选地,所述操作模块还用于:在利用所述具体数据库查询语句操作所述具体数据库之前,对所述具体数据库查询语句进行校验。
可选地,所述操作模块还用于:获取具体数据库的查询语言词素;利用正则表达式描述所述查询语言词素的模式,生成有限状态自动机;利用所述有限状态自动机校验所述具体数据库查询语句是否符合所述具体数据库的查询语言词素,若符合,则执行利用所述具体数据库查询语句操作所述具体数据库的步骤。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的数据建模和操作的方法。
为实现上述目的,根据本发明实施例的又一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的数据建模和操作的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用将各种数据库的表的逻辑定义抽象出来,提供统一的数据建模流程,使得数据建模可灵活配置,易于修改和维护;并且通过提供统一的数据库结构化查询语言,使数据建模和操作达到跨平台的目的,简化开发过程的技术效果;本发明实施例中,还可以利用可视化界面的方式以可配置化的方式将建模逻辑封装起来,通过工作流的方式增加审批过程,并且结合统一结构化查询语言的统一操作,从而可以快速的处理包括Elasticsearch在内的各种数据库的建表、审批、语句操作逻辑,使数据建模和操作不依赖于任何具体数据库的规则,具有跨平台的特性,节约了时间成本,有助于报表数据建模的统一和规范化;本发明实施例中,通过预先设定表存储模板和统一数据类型,从而可以规范化、流程化的定义表;通过统一数据类型,以及统一数据类型与具体数据库字段类型之间的映射,从而可以在表建立完成之后,直接高效的将表映射到具体数据库中;通过使用统一结构化查询语言,并基于统一结构化查询语言和具体数据库查询语言之间的映射配置,从而可以在操作具体数据库中的表的时候不依赖于各自的数据库规范,降低操作成本。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据建模和操作的方法的主要流程的示意图;
图2是根据本发明实施例的数据建模和操作的方法定义的表存储模板的结构示意图;
图3是根据本发明实施例的数据建模和操作的方法进行数据操作的流程图;
图4是根据本发明实施例的数据建模和操作的装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例提供一种数据建模和操作的方法和装置,能够提供统一的数据建模流程以及统一的数据库结构化查询语言,使得数据建模可灵活配置,易于修改和维护,并且使数据建模和操作达到跨平台的目的,简化开发过程。
图1是根据本发明实施例的数据建模和操作的方法的主要流程的示意图,如图1所示,本发明实施例的一种数据建模和操作的方法,主要包括如下步骤:
步骤S101:利用表存储模板和统一数据类型创建表。在利用表存储模板和统一数据类型创建表之前,该方法还可以包括:预先定义表存储模板和统一数据类型,其中,表存储模板包括表名称信息和字段信息。
步骤S102:将表映射到具体数据库中。具体可以是,根据统一数据类型与具体的需要建表的数据库(以下简称“具体数据库”)中数据类型的对应关系,将表映射到具体数据库中。
步骤S103:利用统一结构化查询语言操作具体数据库。将利用统一结构化查询语言编写的统一查询语句映射为具体数据库查询语句;利用所述具体数据库查询语句操作所述具体数据库。
其中,在利用所述具体数据库查询语句操作所述具体数据库之前,本发明实施例中,还可以包括:对具体数据库查询语句进行校验。校验的具体过程可以是:获取具体数据库的查询语言词素;利用正则表达式描述所述查询语言词素的模式,生成有限状态自动机;利用所述有限状态自动机校验所述具体数据库查询语句是否符合所述具体数据库的查询语言词素,若符合,则执行利用所述具体数据库查询语句操作所述具体数据库的步骤。
为了实现本发明实施例的数据建模和操作的方法,本发明实施例中,可以开发一套数据建模和操作***,对外发布功能接口,以可视化界面作为数据建模与审批的操作单元,将建模、审批、操作的生产分为三个功能模块:创建表,发布审批(并在发布审批环节启动工作流),统一结构化查询。以这三个内置的功能模块为基本单元,以实际业务驱动建模与审批的实现,完成数据库建表的开发。
数据建模和操作整体逻辑如下:
创建表模块
本发明实施例中,表是数据建模的基础,是对数据存储结构的抽象。实质上,本发明实施例中的表是一种面向抽象层面的关系型表定义,并考虑各个现行数据库的实现规则(保存和操作表的规格),由统一结构化查询模块提供的自有规则的表。本发明实施例中,可以称之为“逻辑表”。逻辑表的规则不依赖于任何具体的数据库,并且封装了不同数据库规则的差异及限制。一张逻辑表对于对应若干物理表,物理表的数量取决于对逻辑表中逻辑字段的数量的设定。例如,设置逻辑表分表的字段个数上限为50,当逻辑表的字段数量超过50个时,在生成物理表的时候自动拆表,每个物理表的名称为逻辑表名称加“_N”后缀,“N”为物理表的个数。同一张逻辑表拆分出来的物理表通过GUID关联。
本发明实施例中,使用统一结构化查询语句来对创建的表进行查询。因为逻辑表具体存储逻辑要在不同的数据库中实现,所以统一结构化查询语句要映射到不同的数据库中实现,具体查询等操作的实现将在统一结构化查询部分详述。
创建逻辑表具体步骤如下:
1、定义出逻辑表的表存储模板
表存储模板描述了逻辑表的属性信息。表存储模板可由两部分构成:表名称信息和字段信息。表名称信息存储表标题,表标识,创建时间,修改时间,创建人等信息;字段信息存储字段标题,字段标识,字段类型等信息,结构参见图2。
其中,字段又可分为两部分设计:自定义字段和***字段。自定义字段是业务字段信息,由开发人员根据具体业务需求创建;***字段是建表阶段由***自动生成的,这些字段可以是由***隐含定义的内置字段,是建表阶段强制生成的。主要包括:删除标识(标注当前记录是否被删除)、创建时间(标注当前记录创建时间)、更新时间(标注当前记录更新时间)、创建人(标注当前记录创建人)、更新人(标注当前记录更新人)、时间戳等字段信息。***字段的意义在于规范了数据建模的格式,使开发人员在建模阶段可专心于业务字段的设计。
2、定义建模的统一数据类型
数据类型约束了数据库当中数据储存的不同位置,每一套数据库上提供了不同的数据类型的实现。本发明实施例中,通过建立统一数据类型,使统一数据类型可以映射到不同数据存储软件的数据类型。例如,定义统一数据类型:long,这个数据类型代表了长整形的数据,它可以映射到MySQL数据库中的bigint类型,也可以映射到Oracle数据库中的number(20)类型,也可以映射到ES中的long类型。当需要查询数据信息时,统一数据类型会根据不同的数据库映射到各自对应的数据类型。统一数据类型的优点在于,抽象了不同数据库中数据类型的表现形式,使开发者不需要关注与具体数据库的种类,做到了一次编写,到处运行的跨平台运行方案。本发明实施例中,统一数据类型对照表可以采用如下对应关系:
统一数据类型 | MySQL数据库 | Oracle数据库 | ES存储 | 数据建模数据类型含义 |
int | int | number(10) | integer | 存储整数型数据 |
short | smallint | number(5) | short | 存储短整数型数据 |
long | bigint | number(20) | long | 存储长整数型数据 |
number(s,e) | Decimal(s,e) | number(s,e) | double | 存储数值型的数据 |
float | float | real | float | 存储浮点型的数据 |
string | varchar | varchar | string | 存储字符串的数据 |
date | datatime | date | date | 存储时间型的数据 |
3、创建数据建模界面
构建可视化的建模窗口,建模界面可以由三部分构成:导航栏(包括新增逻辑表按钮,修改逻辑表按钮,删除逻辑表按钮,新增字段按钮,修改字段按钮,删除字段按钮,预发布按钮,正式发布按钮)、字段查询部分、字段描述部分。
本发明实施例中,构建可视化的建模窗口可以利用Java开发可视化界面。可视化建模窗口可以方便建立逻辑表。举例介绍:点击新增逻辑表按钮,弹出一个窗口,在其中需要输入表标题,表标识,创建时间,修改时间,创建人等信息,然后点击保存,这些信息就保存到数据库中。
建模界面中,导航栏按钮功能可以设置如下:
新增逻辑表按钮:点击此按钮,输入逻辑表存储模板的具体信息(包括表标题,表标识,创建时间,修改时间,创建人等信息),保存到数据库。
表存储模板表名称信息设计如下:
表名称信息 | 数据类型 | 字段描述 |
ID | Bigint | 模板表定义主键 |
Name | Varchar | 模板表定义标识 |
Title | Varchar | 模板表定义标题 |
createTime | Date | 模板表定义创建时间 |
UpdateTime | Date | 模板表定义修改时间 |
Createtor | Varchar | 模板表定义修改人 |
修改逻辑表按钮:点击此按钮,更新模板信息,保存到数据库。
删除逻辑表按钮:点击此按钮,删除选中的逻辑表。
新增字段按钮:点击此按钮,输入表存储模板信息,保存到数据库。
字段信息字段设计如下:
字段名称 | 字段类型 | 字段描述 |
ID | Bigint | 字段定义主键 |
Name | Varchar | 字段定义名称 |
Title | Varchar | 字段定义标题 |
FromTable | Varchar | 字段所属表 |
FieldType | Varchar | 字段的类型 |
Default | Varchar | 字段的默认值 |
修改字段按钮:点击此按钮,更新改当前字段模板信息,保存到数据库。
删除字段按钮:点击此按钮,删除当前字段模板信息,保存到数据库。
预发布按钮:当建立逻辑表并新增N个字段后,点击预发布按钮,输入具体数据库的IP、数据库名称和数据库类型,就可以把逻辑表映射到具体的数据库中。此功能供开发人员在开发过程中调用。
正式发布按钮,当完成程序的开发和调试后,点击此按钮,启动工作流,通过责任人员层层审批(即前述“发布审批(并在发布审批环节启动工作流。将逻辑表发布到真正的线上数据库中。
发布审批模块
本发明实施例中的发布审批功能可以根据正式发布环境需求而设定,数据建模之后需要层层审批才可以正式建库。通常情况下,审批对象是逻辑表,审批主体是预先确认好的责任人员,必须征得他们同意程序才能上线。可以设定审批规则为:每个审批人员有同意和驳回两个权限,如果同意,则跳转到下一个审批人,最后一个审批人同意,则完成,如果不同意,便打回来修改后再申请。
统一结构化查询模块
当创建逻辑表并将其映射到具体数据库之后,可以创建一种结构化查询语言,对包括各种关系型数据库和Elasticsearch等在内的各类数据库进行统一查询,这种统一查询语言可以命名为统一结构化查询语言。本发明实施例中,统一结构化查询语言可以基于SQL92标准规范,开发的一种面向逻辑表的语法,它的目标是将目前市场上流行的各种数据库存在的相异透明化,向开发者提供一种无关数据库的数据存储及访问方式,达到在跨平台的目的。本发明实施例中,SQL专指一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
图3是根据本发明实施例的数据建模和操作的方法进行数据操作的流程图。如图3所示,本发明实施例中,利用映射技术实现消除各种数据库中存在的规则差异,使用有限状态自动机校验映射后的具体数据库查询语句是否符合当前具体数据库的SQL规范,具体设计如下:
1、采用映射的技术把统一结构化查询语言映射到具体数据库,生成具体数据库查询语句。统一结构化查询语言示例:select substr('abcd',2,2)value from dual,将统一结构化查询语言语法中每一个词法单元,比如select、substr、from、where,根据语义和不同的具体数据库分别建立不同的对应关系。例如统一结构化查询语言里的substr和MySQL数据库里的substring建立映射。映射的目的就是把统一结构化查询语言语句翻译成具体数据库可识别的具体数据库查询语句,供具体数据库调用。
2、使用正则表达式描述具体数据库的查询语言词素的模式,然后将词素模式转换成有限状态自动机,自动识别映射完成的具体数据库查询语句是否符合具体数据查询语言的词素描写,如果符合,则在具体的数据库执行具体数据库查询语句,不符合,则提示统一结构化查询语言语句有问题。
本发明实施例中,具体数据库的SQL查询语言词素是字符串组合中的一个字符序列,正则表达式是一种可以很方便的描述词素模式的方法。例如SQL字符串:select skufrom XX;词素是:select,sku,from,XX。正则表达式是:select*from*。这里*代表任意字符串,意思是:只要字符串符合select*from*这个模式就可以判断它是正确的,例如selectbus from X和select m from Y,这里的*号可以被任意字符串取代,但是select、from不能被改变。
有限状态自动机是一组状态的集合,每读入一个字符,活动状态将被改变。状态机的当前状态为一个终止状态时,就表示识别出了一个模式串。以select为例,读入s字符,下一个字符必须是e,否则报错,如果是e的话,再读入下一个字符,必须是l,否则报错,只有*,可以是任意字符。
在ES中,Elasticsearch-sql是给予ES的提供SQL查询服务的工具。可使用Elasticsearch-sql将统一结构化查询语言转换成ES支持的结构语言,可以使用户很方便的用SQL的方式查询ES的数据,不必困扰于ES复杂的查询表达式,同时提供了超越SQL的功能。
根据本发明实施例的数据建模和操作的技术方案可以看出,因为采用将各种数据库的表的逻辑定义抽象出来,提供统一的数据建模流程,使得数据建模可灵活配置,易于修改和维护;并且通过提供统一的数据库结构化查询语言,使数据建模和操作达到跨平台的目的,简化开发过程的技术效果;本发明实施例中,还可以利用可视化界面的方式以可配置化的方式将建模逻辑封装起来,通过工作流的方式增加审批过程,并且结合统一结构化查询语言的统一操作,从而可以快速的处理包括Elasticsearch在内的各种数据库的建表、审批、语句操作逻辑,使数据建模和操作不依赖于任何具体数据库的规则,具有跨平台的特性,节约了时间成本,有助于报表数据建模的统一和规范化;本发明实施例中,通过预先设定表存储模板和统一数据类型,从而可以规范化、流程化的定义表;通过统一数据类型,以及统一数据类型与具体数据库字段类型之间的映射,从而可以在表建立完成之后,直接高效的将表映射到具体数据库中;通过使用统一结构化查询语言,并基于统一结构化查询语言和具体数据库查询语言之间的映射配置,从而可以在操作具体数据库中的表的时候不依赖于各自的数据库规范,降低操作成本。
图4是根据本发明实施例的数据建模和操作的装置的主要模块的示意图。
如图4所示,本发明实施例的数据建模和操作的装置400主要包括如下模块:创建模块401、映射模块402以及操作模块403。
其中,创建模块401可用于利用表存储模板和统一数据类型创建表;映射模块402可用于将所述表映射到具体数据库中;以及操作模块403可用于利用统一结构化查询语言操作所述具体数据库。
本发明实施例中,装置400还可包括:定义模块(图中未示出),可用于在利用表存储模板和统一数据类型创建表之前,预先定义表存储模板和统一数据类型,其中,表存储模板包括表名称信息和字段信息。
映射模块402还可用于:根据统一数据类型与具体数据库中数据类型的对应关系,将表映射到具体数据库中。
操作模块403还可用于:将利用统一结构化查询语言编写的统一查询语句映射为具体数据库查询语句;利用所述具体数据库查询语句操作所述具体数据库。此外,在利用所述具体数据库查询语句操作所述具体数据库之前,还对具体数据库查询语句进行校验。
具体校验过程如下:获取具体数据库的查询语言词素;利用正则表达式描述所述查询语言词素的模式,生成有限状态自动机;利用所述有限状态自动机校验所述具体数据库查询语句是否符合所述具体数据库的查询语言词素,若符合,则执行利用所述具体数据库查询语句操作所述具体数据库的步骤。
从以上描述可以看出,因为采用将各种数据库的表的逻辑定义抽象出来,提供统一的数据建模流程,使得数据建模可灵活配置,易于修改和维护;并且通过提供统一的数据库结构化查询语言,使数据建模和操作达到跨平台的目的,简化开发过程的技术效果;本发明实施例中,还可以利用可视化界面的方式以可配置化的方式将建模逻辑封装起来,通过工作流的方式增加审批过程,并且结合统一结构化查询语言的统一操作,从而可以快速的处理包括Elasticsearch在内的各种数据库的建表、审批、语句操作逻辑,使数据建模和操作不依赖于任何具体数据库的规则,具有跨平台的特性,节约了时间成本,有助于报表数据建模的统一和规范化;本发明实施例中,通过预先设定表存储模板和统一数据类型,从而可以规范化、流程化的定义表;通过统一数据类型,以及统一数据类型与具体数据库字段类型之间的映射,从而可以在表建立完成之后,直接高效的将表映射到具体数据库中;通过使用统一结构化查询语言,并基于统一结构化查询语言和具体数据库查询语言之间的映射配置,从而可以在操作具体数据库中的表的时候不依赖于各自的数据库规范,降低操作成本。
图5示出了可以应用本发明实施例的数据建模和操作方法或数据建模和操作装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据建模和操作方法一般由服务器505执行,相应地,数据建模和操作装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机***600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括创建模块、映射模块和操作模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,创建模块还可以被描述为“用于利用表存储模板和统一数据类型创建表的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:利用表存储模板和统一数据类型创建表;将所述表映射到具体数据库中;以及利用统一结构化查询语言操作所述具体数据库。
根据本发明实施例的技术方案,因为采用将各种数据库的表的逻辑定义抽象出来,提供统一的数据建模流程,使得数据建模可灵活配置,易于修改和维护;并且通过提供统一的数据库结构化查询语言,使数据建模和操作达到跨平台的目的,简化开发过程的技术效果;本发明实施例中,还可以利用可视化界面的方式以可配置化的方式将建模逻辑封装起来,通过工作流的方式增加审批过程,并且结合统一结构化查询语言的统一操作,从而可以快速的处理包括Elasticsearch在内的各种数据库的建表、审批、语句操作逻辑,使数据建模和操作不依赖于任何具体数据库的规则,具有跨平台的特性,节约了时间成本,有助于报表数据建模的统一和规范化;本发明实施例中,通过预先设定表存储模板和统一数据类型,从而可以规范化、流程化的定义表;通过统一数据类型,以及统一数据类型与具体数据库字段类型之间的映射,从而可以在表建立完成之后,直接高效的将表映射到具体数据库中;通过使用统一结构化查询语言,并基于统一结构化查询语言和具体数据库查询语言之间的映射配置,从而可以在操作具体数据库中的表的时候不依赖于各自的数据库规范,降低操作成本。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种数据建模和操作的方法,其特征在于,包括:
利用表存储模板和统一数据类型创建表;
将所述表映射到具体数据库中;以及
利用统一结构化查询语言操作所述具体数据库。
2.根据权利要求1所述的方法,其特征在于,在利用表存储模板和统一数据类型创建表之前,所述方法还包括:预先定义表存储模板和统一数据类型,其中,表存储模板包括表名称信息和字段信息。
3.根据权利要求1所述的方法,其特征在于,将所述表映射到具体数据库中包括:根据统一数据类型与具体数据库中数据类型的对应关系,将表映射到具体数据库中。
4.根据权利要求1所述的方法,其特征在于,利用统一结构化查询语言操作所述具体数据库包括:
将利用统一结构化查询语言编写的统一查询语句映射为具体数据库查询语句;
利用所述具体数据库查询语句操作所述具体数据库。
5.根据权利要求4所述的方法,其特征在于,在利用所述具体数据库查询语句操作所述具体数据库之前,所述方法还包括:对所述具体数据库查询语句进行校验。
6.根据权利要求5所述的方法,其特征在于,对所述具体数据库查询语句进行校验包括:
获取具体数据库的查询语言词素;
利用正则表达式描述所述查询语言词素的模式,生成有限状态自动机;
利用所述有限状态自动机校验所述具体数据库查询语句是否符合所述具体数据库的查询语言词素,若符合,则执行利用所述具体数据库查询语句操作所述具体数据库的步骤。
7.一种数据建模和操作的装置,其特征在于,包括:
创建模块,用于利用表存储模板和统一数据类型创建表;
映射模块,用于将所述表映射到具体数据库中;以及
操作模块,用于利用统一结构化查询语言操作所述具体数据库。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:定义模块,用于在利用表存储模板和统一数据类型创建表之前,预先定义表存储模板和统一数据类型,其中,表存储模板包括表名称信息和字段信息。
9.根据权利要求7所述的装置,其特征在于,所述映射模块还用于:根据统一数据类型与具体数据库中数据类型的对应关系,将表映射到具体数据库中。
10.根据权利要求7所述的装置,其特征在于,所述操作模块还用于:
将利用统一结构化查询语言编写的统一查询语句映射为具体数据库查询语句;
利用所述具体数据库查询语句操作所述具体数据库。
11.根据权利要求10所述的装置,其特征在于,所述操作模块还用于:在利用所述具体数据库查询语句操作所述具体数据库之前,对所述具体数据库查询语句进行校验。
12.根据权利要求11所述的装置,其特征在于,所述操作模块还用于:
获取具体数据库的查询语言词素;
利用正则表达式描述所述查询语言词素的模式,生成有限状态自动机;
利用所述有限状态自动机校验所述具体数据库查询语句是否符合所述具体数据库的查询语言词素,若符合,则执行利用所述具体数据库查询语句操作所述具体数据库的步骤。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810105614.4A CN110109893A (zh) | 2018-02-02 | 2018-02-02 | 数据建模和操作的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810105614.4A CN110109893A (zh) | 2018-02-02 | 2018-02-02 | 数据建模和操作的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110109893A true CN110109893A (zh) | 2019-08-09 |
Family
ID=67483279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810105614.4A Pending CN110109893A (zh) | 2018-02-02 | 2018-02-02 | 数据建模和操作的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109893A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990396A (zh) * | 2019-10-12 | 2020-04-10 | 贝壳技术有限公司 | 数据存储方法、装置及存储介质 |
CN111767266A (zh) * | 2020-05-15 | 2020-10-13 | 杭州传化智能制造科技有限公司 | 实体联系模型设计方法、装置、计算机设备和存储介质 |
CN111767299A (zh) * | 2019-12-18 | 2020-10-13 | 北京沃东天骏信息技术有限公司 | 数据库操作方法、装置、***、存储介质及电子设备 |
CN112328672A (zh) * | 2020-11-04 | 2021-02-05 | 成都中科大旗软件股份有限公司 | 一种数据服务映射api接口的方法、***、存储介质及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193947A (zh) * | 2010-03-18 | 2011-09-21 | 华为技术有限公司 | 数据访问处理方法及*** |
CN105260403A (zh) * | 2015-09-22 | 2016-01-20 | 广东同望科技股份有限公司 | 通用跨数据库访问方法 |
CN105426481A (zh) * | 2015-11-19 | 2016-03-23 | 北京京东尚科信息技术有限公司 | 处理数据的方法及装置 |
CN106933837A (zh) * | 2015-12-29 | 2017-07-07 | 航天信息股份有限公司 | 一种数据库表模型及创建方法 |
US20180004782A1 (en) * | 2014-07-31 | 2018-01-04 | Quickbase, Inc. | Dynamic modeling of data in relational databases |
-
2018
- 2018-02-02 CN CN201810105614.4A patent/CN110109893A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193947A (zh) * | 2010-03-18 | 2011-09-21 | 华为技术有限公司 | 数据访问处理方法及*** |
US20180004782A1 (en) * | 2014-07-31 | 2018-01-04 | Quickbase, Inc. | Dynamic modeling of data in relational databases |
CN105260403A (zh) * | 2015-09-22 | 2016-01-20 | 广东同望科技股份有限公司 | 通用跨数据库访问方法 |
CN105426481A (zh) * | 2015-11-19 | 2016-03-23 | 北京京东尚科信息技术有限公司 | 处理数据的方法及装置 |
CN106933837A (zh) * | 2015-12-29 | 2017-07-07 | 航天信息股份有限公司 | 一种数据库表模型及创建方法 |
Non-Patent Citations (2)
Title |
---|
付兴宏等: ""基于自动机技术的XML复杂数据类型验证"", 《黑龙江科技学院学报》, vol. 15, no. 5, 30 September 2005 (2005-09-30), pages 317 * |
秦广赞: ""基于静态分析的防SQL注入过滤模块的设计与实现"", 《中国知网 硕士电子期刊》, pages 29 - 30 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990396A (zh) * | 2019-10-12 | 2020-04-10 | 贝壳技术有限公司 | 数据存储方法、装置及存储介质 |
CN110990396B (zh) * | 2019-10-12 | 2024-02-27 | 贝壳技术有限公司 | 数据存储方法、装置及存储介质 |
CN111767299A (zh) * | 2019-12-18 | 2020-10-13 | 北京沃东天骏信息技术有限公司 | 数据库操作方法、装置、***、存储介质及电子设备 |
CN111767266A (zh) * | 2020-05-15 | 2020-10-13 | 杭州传化智能制造科技有限公司 | 实体联系模型设计方法、装置、计算机设备和存储介质 |
CN112328672A (zh) * | 2020-11-04 | 2021-02-05 | 成都中科大旗软件股份有限公司 | 一种数据服务映射api接口的方法、***、存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177231B (zh) | 报表生成方法和报表生成装置 | |
US10984913B2 (en) | Blockchain system for natural language processing | |
CN113692582B (zh) | 用于建立数据隐私管线和合约协议以共享数据的用户接口 | |
US11599663B2 (en) | Computer-implemented methods, systems comprising computer-readable media, and electronic devices for completing queries propagated across a plurality of datasources | |
US8712965B2 (en) | Dynamic report mapping apparatus to physical data source when creating report definitions for information technology service management reporting for peruse of report definition transparency and reuse | |
US8423514B2 (en) | Service provisioning | |
US7673282B2 (en) | Enterprise information unification | |
US9251222B2 (en) | Abstracted dynamic report definition generation for use within information technology infrastructure | |
CN110109893A (zh) | 数据建模和操作的方法和装置 | |
KR102237877B1 (ko) | 실시간 협업지원 지능형 소프트웨어 자동 개발 시스템 및 그 방법 | |
CN108829746B (zh) | 一种基于内存数据库的主数据管理***及装置 | |
CN106886406A (zh) | 开发代码或文档的生成方法和装置 | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
US20210349887A1 (en) | System and method for automatically suggesting remote query parameters based for customized data integration process | |
CN109002289A (zh) | 一种构建数据模型的方法和装置 | |
CN102023859B (zh) | 面向数字化研制环境的可靠性维修性保障性软件集成方法 | |
CN110334545A (zh) | 一种基于sql的权限控制方法、装置和电子设备 | |
US20190147088A1 (en) | Reporting and data governance management | |
CN109960212A (zh) | 任务发送方法和装置 | |
CN103678396A (zh) | 一种基于数据模型的数据备份方法和装置 | |
CN110889013A (zh) | 一种基于xml的数据关联方法、装置、服务器及存储介质 | |
AU2017351024B2 (en) | Processing application programming interface (API) queries based on variable schemas | |
CN111782820A (zh) | 知识图谱创建方法及装置、可读存储介质及电子设备 | |
CN107273425A (zh) | 一种基于orm框架的数据库开发方法及装置 | |
US10318524B2 (en) | Reporting and data governance management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |