CN109408510A - 一种数据模型的规范方法及装置 - Google Patents
一种数据模型的规范方法及装置 Download PDFInfo
- Publication number
- CN109408510A CN109408510A CN201811222822.9A CN201811222822A CN109408510A CN 109408510 A CN109408510 A CN 109408510A CN 201811222822 A CN201811222822 A CN 201811222822A CN 109408510 A CN109408510 A CN 109408510A
- Authority
- CN
- China
- Prior art keywords
- standardization
- name
- field
- inventory
- word
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据模型的规范方法及装置,在确定规范化单词清单后,基于规范化单词清单中的单词,确定规范化表名清单中的每个表名、规范化数据类型清单中的每个数据类型的类型名,以及规范化字段清单中每个字段的字段名,而每个字段的类型名从规范化数据类型清单中选取,最后确定规范化数据库表字段清单,并基于该清单生成SQL脚本,规范化数据库表字段清单中的每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。本发明通过将单词、表名、数据类型和字段进行规范化,实现对数据库表字段的规范化,也即实现对数据模型的规范化。
Description
技术领域
本发明涉及计算机技术领域,更具体的说,涉及一种数据模型的规范方法及装置。
背景技术
数据模型(Data Model)是数据特征的抽象。数据(Data)是描述事物的符号记录,模型(Model)是现实世界的抽象。数据模型从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供了一个抽象的框架。
在系统开发时数据模型起着重要作用。然而,现有数据模型的设计并不规范,甚至还比较杂乱,数据表名、字段名、数据类型、数据长度、数据格式等的设计都是随意的,从而造成相同业务含义的数据有各种不同的名字、类型、长度和描述信息。例如,某个系统包含有多个数据库表,各个数据库表的日期字段有字符型、数字型、时间戳型、压缩性等多种数据类型,格式有年月日、日月年、月日年等,因此,系统在同时使用多个数据库表时,往往需要多次进行繁琐的格式转换和数值转换,即便如此,也避免不了出现接口不匹配、数据格式不匹配等情况,而出现系统程序错误等情况。
发明内容
有鉴于此,本发明公开一种数据模型的规范方法及装置,以实现对数据库表字段的规范化,从而实现对数据模型的规范化。
一种数据模型的规范方法,包括:
确定规范化单词清单;
确定规范化表名清单,所述规范化表名清单中的每个表名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
确定规范化数据类型清单,所述规范化数据类型清单中的每个数据类型包括:类型名和基础信息数据,所述类型名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
确定规范化字段清单,所述规范化字段清单中每个字段的字段名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,每个字段的类型名为从所述规范化数据类型清单中选取的;
确定规范化数据库表字段清单,所述规范化数据库表字段清单中,每个数据库表字段的表名为从所述规范化表名清单中选取的一个表名,每个数据库表字段的字段名为从所述规范化字段清单中选取的一个字段名或由选取的多个字段名组成的;
基于所述规范化数据库表字段清单生成SQL脚本。
可选的,所述基础信息数据包括:字段类型、字段长度、描述信息和数据取值范围。
可选的,还包括:
检测每个数据库表字段的表名是否为规范化表名;
检测每个数据库表字段的字段名是否为规范化字段名。
可选的,所述检测每个数据库表字段的表名是否为规范化表名,具体包括:
判断每个数据库表字段的表名是否在所述规范化表名清单中;
如果所述表名不在所述规范化表名清单中,则将不在所述规范化表名清单中的表名进行标注并输出;
如果所述表名在所述规范化表名清单中,则将从所述表名中提取出的单词作为第一单词,判断所述第一单词是否在所述规范化单词清单中;
如果所述第一单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第一单词进行标注并输出;
如果所述第一单词在所述规范化单词清单中,则确定所述第一单词对应的表名为规范化表名。
可选的,所述检测每个数据库表字段的字段名是否为规范化字段名,具体包括:
判断每个数据库表字段的字段名是否在所述规范化字段名清单中;
如果所述字段名不在所述规范化字段名清单中,则将不在所述规范化字段名清单中的字段名进行标注并输出;
如果所述字段名在所述规范化字段名清单中,则将从所述字段名中提取出的单词作为第二单词,判断所述第二单词是否在所述规范化单词清单中;
如果所述第二单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第二单词进行标注并输出;
如果所述第二单词在所述规范化单词清单中,则确定所述第二单词对应的字段名为规范化字段名。
可选的,当每个数据库表字段的表名为规范化表名,且每个数据库表字段的字段名为规范化字段名之后,还包括:
为数据库添加表索引。
可选的,所述基于规范化数据库表字段清单生成SQL脚本的过程包括:
生成DDL脚本。
可选的,还包括:
将生成的所述SQL脚本提交给数据库执行,完成数据库的建立。
一种数据模型的规范装置,包括:
第一确定单元,用于确定规范化单词清单;
第二确定单元,用于确定规范化表名清单,所述规范化表名清单中的每个表名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
第三确定单元,用于确定规范化数据类型清单,所述规范化数据类型清单中的每个数据类型包括:类型名和基础信息数据,所述类型名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
第四确定单元,用于确定规范化字段清单,所述规范化字段清单中每个字段的字段名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,每个字段的类型名为从所述规范化数据类型清单中选取的;
第五确定单元,用于确定规范化数据库表字段清单,所述规范化数据库表字段清单中,每个数据库表字段的表名为从所述规范化表名清单中选取的一个表名,每个数据库表字段的字段名为从所述规范化字段清单中选取的一个字段名或由选取的多个字段名组成的;
生成单元,用于基于所述规范化数据库表字段清单生成SQL脚本。
可选的,所述基础信息数据包括:字段类型、字段长度、描述信息和数据取值范围。
可选的,还包括:
第一检测单元,用于检测每个数据库表字段的表名是否为规范化表名;
第二检测单元,用于检测每个数据库表字段的字段名是否为规范化字段名。
可选的,所述第一检测单元具体用于:
判断每个数据库表字段的表名是否在所述规范化表名清单中;
如果所述表名不在所述规范化表名清单中,则将不在所述规范化表名清单中的表名进行标注并输出;
如果所述表名在所述规范化表名清单中,则将从所述表名中提取出的单词作为第一单词,判断所述第一单词是否在所述规范化单词清单中;
如果所述第一单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第一单词进行标注并输出;
如果所述第一单词在所述规范化单词清单中,则确定所述第一单词对应的表名为规范化表名。
可选的,所述第二检测单元具体用于:
判断每个数据库表字段的字段名是否在所述规范化字段名清单中;
如果所述字段名不在所述规范化字段名清单中,则将不在所述规范化字段名清单中的字段名进行标注并输出;
如果所述字段名在所述规范化字段名清单中,则将从所述字段名中提取出的单词作为第二单词,判断所述第二单词是否在所述规范化单词清单中;
如果所述第二单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第二单词进行标注并输出;
如果所述第二单词在所述规范化单词清单中,则确定所述第二单词对应的字段名为规范化字段名。
可选的,还包括:
表索引添加单元,用于当每个数据库表字段的表名为规范化表名,且每个数据库表字段的字段名为规范化字段名之后,为数据库添加表索引。
可选的,所述生成单元包括:
生成子单元,用于生成DDL脚本。
可选的,还包括:
执行单元,用于将所述生成单元生成的所述SQL脚本提交给数据库执行,完成数据库的建立。
从上述的技术方案可知,本发明公开的数据模型的规范方法及装置,在确定规范化单词清单后,基于规范化单词清单中的单词,确定规范化表名清单中的每个表名、规范化数据类型清单中的每个数据类型的类型名,以及规范化字段清单中每个字段的字段名,而每个字段的类型名从规范化数据类型清单中选取,最后确定规范化数据库表字段清单,并基于该清单生成SQL脚本,规范化数据库表字段清单中的每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。本发明通过将单词、表名、数据类型和字段进行规范化,实现对数据库表字段的规范化,也即实现对数据模型的规范化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种数据模型的规范方法流程图;
图2为本发明实施例公开的一种检测每个数据库表字段的表名的方法流程图;
图3为本发明实施例公开的一种检测每个数据库表字段的字段名的方法流程图;
图4为本发明实施例公开的一种数据模型的规范装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据模型的规范方法及装置,在确定规范化单词清单后,基于规范化单词清单中的单词,确定规范化表名清单中的每个表名、规范化数据类型清单中的每个数据类型的类型名,以及规范化字段清单中每个字段的字段名,而每个字段的类型名从规范化数据类型清单中选取,最后确定规范化数据库表字段清单,规范化数据库表字段清单中的每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。本发明通过将单词、表名、数据类型和字段进行规范化,实现对数据库表字段的规范化,也即实现对数据模型的规范化。
参见图1,本发明一实施例公开的一种数据模型的规范方法流程图,该方法包括步骤:
步骤S101、确定规范化单词清单;
具体的,规范化单词清单中包含的单词为表名、字段名、索引名等允许出现的单词,比如Customer、Account等。
在实际应用中,规范化单词清单中包含的单词可以包含两部分内容:第一部分为:单词,比如Customer和Account等;第二部分为:单词适用类型,比如表名、字段名和索引名等。
为方便理解,本发明公开了一种规范化单词清单,具体参见表1。
表1
其中,表1中,“Y”表示“适用”,“N”表示“不适用”。
步骤S102、确定规范化表名清单,所述规范化表名清单中的每个表名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
比如,从规范化单词清单中选取的单词为:Customer、Info,基于这些单词可以得到表名Customer_Info,单词之间可以用分割符(如下划线’_’)分开或者用首字母大写标识。
为方便理解,本发明公开了一种规范化表名清单,具体参见表2。
表2
表名 | 描述 |
Customer_Info | 客户信息表 |
Account_info | 账户信息表 |
步骤S103、确定规范化数据类型清单,所述规范化数据类型清单中的每个数据类型包括:类型名和基础信息数据;
其中,所述类型名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,比如,类型名为:账号、会计日、备注等。
基础信息数据包括但不限于:字段类型、字段长度、描述信息和数据取值范围等等。
字段类型通常有:字符串string、变长字符串varchar、整数integer、十进制数decimal、浮点数float、双精度浮点数double、日期型date、时间戳timestamp、行唯一标识rowid、大对象BLOB(Binary Large Object)等。
字段长度指字符串的长度、十进制数据的长度和小数位数,大对象的最大长度等。
描述信息描述字段的业务含义,例如描述该字段存放客户的通讯地址,国籍。
数据取值范围表示:如:不允许空,大于0,参照国家码参数表、0000000000-9999999999,取值为Y/N
为方便理解,本发明公开了一种规范化数据类型清单,具体参见表3。
表3
其中,字段类型,比如,数字型、字符型、日期型等等。
步骤S104、确定规范化字段清单,所述规范化字段清单中每个字段的字段名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,每个字段的类型名为从所述规范化数据类型清单中选取的;
在实际应用中,规范化字段清单中每个字段可以包括:字段名、类型名、补充描述和补充取值范围。
补充描述表示:如客户号,账户活期定期类型。
补充取值范围表示:如“不可为空”,“A=活期,B=定期”。
为方便理解,本发明公开了一种规范化字段清单,具体参见表4。
表4
步骤S105、确定规范化数据库表字段清单,所述规范化数据库表字段清单中,每个数据库表字段的表名为从所述规范化表名清单中选取的一个表名,每个数据库表字段的字段名为从所述规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。
具体的,在确定数据库表字段清单时,每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段组成的。由于规范化字段清单中每个字段名都有相对应的类型名,而每个类型名又是从规范化数据类型清单中选取的,因此,基于规范化数据类型清单,又可以确定每个类型名对应的基础信息数据,该基础信息数据包括:字段类型、字段长度、描述信息和数据取值范围等等。
因此,基于规范化单词清单、规范化表名清单、规范化数据类型清单、规范化字段清单和规范化数据库表字段清单这五个清单之间的关联关系,可以实现数据库表字段的规范化,因此也就实现了数据模型的规范化,并且数据库表字段语句可自动生成。
步骤S106、基于规范化数据库表字段清单生成SQL脚本。
其中,结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
综上可知,本发明公开的数据模型的规范方法,在确定规范化单词清单后,基于规范化单词清单中的单词,确定规范化表名清单中的每个表名、规范化数据类型清单中的每个数据类型的类型名,以及规范化字段清单中每个字段的字段名,而每个字段的类型名从规范化数据类型清单中选取,最后确定规范化数据库表字段清单,并基于该清单生成SQL脚本,规范化数据库表字段清单中的每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。本发明通过将单词、表名、数据类型和字段进行规范化,实现对数据库表字段的规范化,也即实现对数据模型的规范化。
另外,相对于现有数据模型缺乏规范化管理,只能基于单文件管理而言,本发明通过对数据模型进行规范化,可以实现对多文件管理。
需要特别说明的是,基于单文件管理指的是:在一个文件中包含了数据模型的全部信息,目前只能对一个文件中包含的数据模型进行管理,而无法多个文件合作交叉引用管理。
其中,在步骤S106生成SQL脚本之后,还可以包括步骤:
将生成的SQL脚本提交给数据库执行,完成数据库的建立。
需要说明的是,目前,由于现有数据模型缺乏规范化管理,数据模型的设计比较随意,因此在对数据模型进行检查时,无法按照用户定制规则进行检查。而本发明实现了对数据模型的规范化,因此可以按照用户定制的规则进行检查。
因此,本发明还可以自动连接数据库系统建立数据库表、备注和索引。并且,本发明还支持从数据库中导出规范化单词清单、规范化表名清单、规范化数据类型清单、规范化字段清单和规范化数据库表字段清单,并可自动进行规范检查,包括:表名、字段名、数据类型、数据长度、备注和索引等是否符合规范化要求。具体的,在实际应用中,可以将表名、字段名、数据类型、数据长度、备注和索引等对相对应的规范标准进行比较,当表名、字段名、数据类型、数据长度、备注和索引等在相对应的规范标准范围内时,则确定表名、字段名、数据类型、数据长度、备注和索引等符合规范化要求,反之,当表名、字段名、数据类型、数据长度、备注和索引等不在相对应的规范标准范围内时,则确定表名、字段名、数据类型、数据长度、备注和索引等不符合规范化要求。
以表名和字段名为例进行说明。
为进一步优化上述实施例,在步骤S105之后,还可以包括:
检测每个数据库表字段的表名是否为规范化表名;
以及,检测每个数据库表字段的字段名是否为规范化字段名。
本发明通过对每个数据库表字段的表名和字段名进行检测,来保证数据库表字段的规范化。
参见图2,本发明一实施例公开的一种检测每个数据库表字段的表名的方法流程图,该方法包括步骤:
步骤S201、判断每个数据库表字段的表名是否在所述规范化表名清单中,如果否,则执行步骤S202,反之则执行步骤S203;
步骤S202、将不存在所述规范化表名清单中的表名进行标注并输出;
步骤S203、将从所述表名中提取出的单词作为第一单词,判断所述第一单词是否在所述规范化单词清单中,如果否,则执行步骤S204,反之则执行步骤S205;
步骤S204、将不在所述规范化单词清单中的第一单词进行标注并输出;
步骤S205、确定所述第一单词对应的表名为规范化表名。
参见图3,本发明一实施例公开的一种检测每个数据库表字段的字段名的方法流程图,该方法包括步骤:
步骤S301、判断每个数据库表字段的字段名是否在所述规范化字段清单中,如果否,则执行步骤S302,反之则执行步骤S303;
步骤S302、将不在所述规范化字段清单中的字段名进行标注并输出;
步骤S303、将从所述字段名中提取出的单词作为第二单词,判断所述第二单词是否在所述规范化单词清单中,如果否,则执行步骤S304,反之则执行步骤S305;
步骤S304、将不在所述规范化单词清单中的第二单词进行标注并输出;
步骤S305、确定每个数据库表字段的字段名为规范化字段名。
综上可知,本发明通过将每个数据库表字段的表名与规范化表名清单进行比较,来初步确定表名是否为规范化表名,在确定表名在规范化表名清单中时,还会进一步从表名中提取单词,并判断提取出的单词是否在规范化单词清单中,只有从表名中提取出的单词在规范化单词清单中才最终确定表名为规范化表名;同样,通过将每个数据库表字段的字段名与规范化字段清单进行比较,来初步确定字段名是否为规范化字段,在确定字段名在规范化字段清单中时,还会进一步从字段名中提取单词,并判断提取出的单词是否在规范化单词清单中,只有从字段名中提取出的单词在规范化单词清单中才最终确定字段名为规范化字段名。当表名不在规范化表名清单中、字段名不在规范化字段清单中和/或从表名中提取的单词,从字段名中提取出的单词不在规范化单词清单中时,将会输出提示信息,来提醒用户哪些信息为非规划化信息,以便用户进行及时修改。
需要特别说明的是,在实际应用中,对数据库表字段的表名和字段名的检测过程具体依据实际需要而定,可以先检测字段名以及字段名中的单词,后检测表名以及表名中的单词;或是先检测表名以及表名中的单词,后检测字段名以及字段名中的单词;或是表名和字段名的检测过程同时执行,本发明在此不做限定。
需要说明的是,当对规范化数据库表字段清单中的每个数据库表字段均检查完毕,且所有的数据库表字段均为规范化的数据库表字段时,为进一步优化上述实施例,还可以包括步骤:
步骤:为数据库添加表索引。
为方便理解,本发明公开了一种表索引,具体参见表5。
表5
索引名 | 字段名 | 升序降序 | 序号 | 描述 |
Customer_Info_idx1 | Customer_Number | 升序 | 1 | 客户信息索引1 |
Customer_Info_idx2 | Customer_name | 升序 | 1 | 客户信息索引2 |
Account_info_idx | Account_Number | 升序 | 1 | 账户信息索引1 |
Account_info_idx2 | Balance | 降序 | 1 | 账户信息索引2 |
Account_info_idx2 | Account_Number | 降序 | 2 | 账户信息索引2 |
在实际应用中,表索引可用表5自动生成,或用直接写SQL语句的方式来建立。
例如:
为进一步优化上述实施例,步骤S106具体可以包括:
步骤:生成DDL脚本。
例如:
工具读取以上规范化信息,可以自动生成建立客户信息表的SQL建表DDL脚本如下:
CREATE TABLE CUSTOMER_INFO(
CUSTOMER_NUMBER CHAR(10),
CUSTOMER_NAME VARCHAR(200),
HOME_ADDRESS VARCHAR(200),
NATIONALITY STRING(2),
CONSTRAINT PK_CIF_PERS_NAME PRIMARY KEY(CUSTOMER_NUMBER)
)
COMMENT ON TABLE CUSTOMER_INFO IS'客户信息表';
COMMENT ON COLUMN CUSTOMER_INFO.CUSTOMER_NUMBERIS'客户号';
COMMENT ON COLUMN CUSTOMER_INFO.CUSTOMER_NAME IS'客户名';
其中,DDL(Data Definition Language,数据库模式定义语言)是用于描述数据库中要存储的现实世界实体的语言。
与上述方法实施例相对应,本发明还公开了一种数据模型的规范装置。
参见图4,本发明一实施例公开的一种数据模型的规范装置的结构示意图,该装置包括:
第一确定单元401,用于确定规范化单词清单;
具体的,规范化单词清单中包含的单词为表名、字段名、索引名等允许出现的单词,比如Date、Customer、Account。
在实际应用中,规范化单词清单中包含的单词可以包含两部分内容:第一部分为:单词,比如Date、Customer和Account等;第二部分为:单词适用类型,比如表名、字段名和索引名等。
第二确定单元402,用于确定规范化表名清单,所述规范化表名清单中的每个表名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
第三确定单元403,用于确定规范化数据类型清单,所述规范化数据类型清单中的每个数据类型包括:类型名和基础信息数据;
其中,所述类型名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,比如,类型名为:账号、会计日、备注等。
基础信息数据包括但不限于:字段类型、字段长度、描述信息和数据取值范围等等,在实际应用中,字段类型,比如,数字型、字符型、日期型等等。
第四确定单元404,用于确定规范化字段清单,所述规范化字段清单中每个字段的字段名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,每个字段的类型名为从所述规范化数据类型清单中选取的;
在实际应用中,规范化字段清单中每个字段可以包括:字段名、类型名、补充描述和补充取值范围。
第五确定单元405,用于确定规范化数据库表字段清单,所述规范化数据库表字段清单中,每个数据库表字段的表名为从所述规范化表名清单中选取的一个表名,每个数据库表字段的字段名为从所述规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。
具体的,在确定数据库表字段清单时,每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段组成的。由于规范化字段清单中每个字段名都有相对应的类型名,而每个类型名又是从规范化数据类型清单中选取的,因此,基于规范化数据类型清单,又可以确定每个类型名对应的基础信息数据,该基础信息数据包括:字段类型、字段长度、描述信息和数据取值范围等等。
因此,基于规范化单词清单、规范化表名清单、规范化数据类型清单、规范化字段清单和规范化数据库表字段清单这五个清单之间的关联关系,可以实现数据库表字段的规范化,因此也就实现了数据模型的规范化,并且数据库表字段语句可自动生成。
生成单元406,用于基于所述规范化数据库表字段清单生成SQL脚本。
其中,结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
需要特别说明的是,本实施例中,规范化单词清单、规范化表名清单、规范化数据类型清单、规范化字段清单和规范化数据库表字段清单的具体组成,相互之间的关系等请参见方法实施例对应部分,此处不再赘述。
综上可知,本发明公开的数据模型的规范装置,在确定规范化单词清单后,基于规范化单词清单中的单词,确定规范化表名清单中的每个表名、规范化数据类型清单中的每个数据类型的类型名,以及规范化字段清单中每个字段的字段名,而每个字段的类型名从规范化数据类型清单中选取,最后确定规范化数据库表字段清单,并基于该清单生成SQL脚本,规范化数据库表字段清单中的每个数据库表字段的表名为从规范化表名清单中选取的一个表名,字段名为从规范化字段清单中选取的一个字段名或由选取的多个字段名组成的。本发明通过将单词、表名、数据类型和字段进行规范化,实现对数据库表字段的规范化,也即实现对数据模型的规范化。
另外,相对于现有数据模型缺乏规范化管理,只能基于单文件管理而言,本发明通过对数据模型进行规范化,可以实现对多文件管理。
需要特别说明的是,基于单文件管理指的是:在一个文件中包含了数据模型的全部信息,目前只能对一个文件中包含的数据模型进行管理,而无法多个文件合作交叉引用管理。
为进一步优化上述实施例,规范装置还可以包括:
执行单元,用于将生成单元生成的所述SQL脚本提交给数据库执行,完成数据库的建立。
目前,由于现有数据模型缺乏规范化管理,数据模型的设计比较随意,因此在对数据模型进行检查时,无法按照用户定制规则进行检查。而本发明实现了对数据模型的规范化,因此可以按照用户定制的规则进行检查。
因此,本发明还可以自动连接数据库系统建立数据库表、备注和索引。并且,本发明还支持从数据库中导出规范化单词清单、规范化表名清单、规范化数据类型清单、规范化字段清单和规范化数据库表字段清单,并可自动进行规范检查,包括:表名、字段名、数据类型、数据长度、备注和索引等是否符合规范化要求。具体的,在实际应用中,可以将表名、字段名、数据类型、数据长度、备注和索引等对相对应的规范标准进行比较,当表名、字段名、数据类型、数据长度、备注和索引等在相对应的规范标准范围内时,则确定表名、字段名、数据类型、数据长度、备注和索引等符合规范化要求,反之,当表名、字段名、数据类型、数据长度、备注和索引等不在相对应的规范标准范围内时,则确定表名、字段名、数据类型、数据长度、备注和索引等不符合规范化要求。
以表名和字段名为例进行说明。因此,为进一步优化上述实施例,数据模型的规范装置还可以包括:
第一检测单元,用于检测每个数据库表字段的表名是否为规范化表名;
第二检测单元,用于检测每个数据库表字段的字段名是否为规范化字段名。
本发明通过对每个数据库表字段的表名和字段名进行检测,来保证数据库表字段的规范化。
较优的,第一检测单元具体用于:
判断每个数据库表字段的表名是否在所述规范化表名清单中;
如果所述表名不在所述规范化表名清单中,则将不在所述规范化表名清单中的表名进行标注并输出;
如果所述表名在所述规范化表名清单中,将则从所述表名中提取出的单词作为第一单词,判断所述第一单词是否在所述规范化单词清单中;
如果所述第一单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第一单词进行标注并输出;
如果所述第一单词在所述规范化单词清单中,则确定所述第一单词对应的表名为规范化表名。
较优的,第二检测单元具体用于:
判断每个数据库表字段的字段名是否在所述规范化字段名清单中;
如果所述字段名不在所述规范化字段名清单中,则将不在所述规范化字段名清单中的字段名进行标注并输出;
如果所述字段名在所述规范化字段名清单中,则将从所述字段名中提取出的单词作为第二单词,判断所述第二单词是否在所述规范化单词清单中;
如果所述第二单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第二单词进行标注并输出;
如果所述第二单词在所述规范化单词清单中,则确定所述第二单词对应的字段名为规范化字段名。
综上可知,本发明通过将每个数据库表字段的表名与规范化表名清单进行比较,来初步确定表名是否为规范化表名,在确定表名在规范化表名清单中时,还会进一步从表名中提取单词,并判断提取出的单词是否在规范化单词清单中,只有从表名中提取出的单词在规范化单词清单中才最终确定表名为规范化表名;同样,通过将每个数据库表字段的字段名与规范化字段清单进行比较,来初步确定字段名是否为规范化字段,在确定字段名在规范化字段清单中时,还会进一步从字段名中提取单词,并判断提取出的单词是否在规范化单词清单中,只有从字段名中提取出的单词在规范化单词清单中才最终确定字段名为规范化字段名。当表名不在规范化表名清单中、字段名不在规范化字段清单中和/或从表名中提取的单词,从字段名中提取出的单词不在规范化单词清单中时,将会输出提示信息,来提醒用户哪些信息为非规划化信息,以便用户进行及时修改。
需要说明的是,当对规范化数据库表字段清单中的每个数据库表字段均检查完毕,且所有的数据库表字段均为规范化的数据库表字段时,为进一步优化上述实施例,数据模型的规范装置还可以包括:
表索引添加单元,用于当每个数据库表字段的表名为规范化表名,且每个数据库表字段的字段名为规范化字段名之后,为数据库添加表索引。
表索引的表示形式可参见方法实施例中的表5。
在实际应用中,表索引可用直接写SQL语句的方式来建立。
为进一步优化上述实施例,生成单元406包括:
生成子单元,用于生成DDL脚本。
其中,DDL(Data Definition Language,数据库模式定义语言)是用于描述数据库中要存储的现实世界实体的语言,DDL脚本的表示形式可参见方法实施例对应部分,此处不再赘述。
需要特别说明的是,装置实施例中各组成部分的具体工作原理,请参见方法实施例对应部分,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (16)
1.一种数据模型的规范方法,其特征在于,包括:
确定规范化单词清单;
确定规范化表名清单,所述规范化表名清单中的每个表名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
确定规范化数据类型清单,所述规范化数据类型清单中的每个数据类型包括:类型名和基础信息数据,所述类型名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
确定规范化字段清单,所述规范化字段清单中每个字段的字段名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,每个字段的类型名为从所述规范化数据类型清单中选取的;
确定规范化数据库表字段清单,所述规范化数据库表字段清单中,每个数据库表字段的表名为从所述规范化表名清单中选取的一个表名,每个数据库表字段的字段名为从所述规范化字段清单中选取的一个字段名或由选取的多个字段名组成的;
基于所述规范化数据库表字段清单生成SQL脚本。
2.根据权利要求1所述的规范方法,其特征在于,所述基础信息数据包括:字段类型、字段长度、描述信息和数据取值范围。
3.根据权利要求1所述的规范方法,其特征在于,还包括:
检测每个数据库表字段的表名是否为规范化表名;
检测每个数据库表字段的字段名是否为规范化字段名。
4.根据权利要求3所述的规范方法,其特征在于,所述检测每个数据库表字段的表名是否为规范化表名,具体包括:
判断每个数据库表字段的表名是否在所述规范化表名清单中;
如果所述表名不在所述规范化表名清单中,则将不在所述规范化表名清单中的表名进行标注并输出;
如果所述表名在所述规范化表名清单中,则将从所述表名中提取出的单词作为第一单词,判断所述第一单词是否在所述规范化单词清单中;
如果所述第一单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第一单词进行标注并输出;
如果所述第一单词在所述规范化单词清单中,则确定所述第一单词对应的表名为规范化表名。
5.根据权利要求3所述的规范方法,其特征在于,所述检测每个数据库表字段的字段名是否为规范化字段名,具体包括:
判断每个数据库表字段的字段名是否在所述规范化字段名清单中;
如果所述字段名不在所述规范化字段名清单中,则将不在所述规范化字段名清单中的字段名进行标注并输出;
如果所述字段名在所述规范化字段名清单中,则将从所述字段名中提取出单词作为第二单词,判断所述第二单词是否在所述规范化单词清单中;
如果所述第二单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第二单词进行标注并输出;
如果所述第二单词在所述规范化单词清单中,则确定所述第二单词对应的字段名为规范化字段名。
6.根据权利要求3所述的规范方法,其特征在于,当每个数据库表字段的表名为规范化表名,且每个数据库表字段的字段名为规范化字段名之后,还包括:
为数据库添加表索引。
7.根据权利要求1所述的规范方法,其特征在于,所述基于规范化数据库表字段清单生成SQL脚本的过程包括:
生成DDL脚本。
8.根据权利要求1所述的规范方法,其特征在于,还包括:
将生成的所述SQL脚本提交给数据库执行,完成数据库的建立。
9.一种数据模型的规范装置,其特征在于,包括:
第一确定单元,用于确定规范化单词清单;
第二确定单元,用于确定规范化表名清单,所述规范化表名清单中的每个表名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
第三确定单元,用于确定规范化数据类型清单,所述规范化数据类型清单中的每个数据类型包括:类型名和基础信息数据,所述类型名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的;
第四确定单元,用于确定规范化字段清单,所述规范化字段清单中每个字段的字段名为从所述规范化单词清单中选取的一个单词或由选取的多个单词组合得到的,每个字段的类型名为从所述规范化数据类型清单中选取的;
第五确定单元,用于确定规范化数据库表字段清单,所述规范化数据库表字段清单中,每个数据库表字段的表名为从所述规范化表名清单中选取的一个表名,每个数据库表字段的字段名为从所述规范化字段清单中选取的一个字段名或由选取的多个字段名组成的;
生成单元,用于基于所述规范化数据库表字段清单生成SQL脚本。
10.根据权利要求9所述的规范装置,其特征在于,所述基础信息数据包括:字段类型、字段长度、描述信息和数据取值范围。
11.根据权利要求9所述的规范装置,其特征在于,还包括:
第一检测单元,用于检测每个数据库表字段的表名是否为规范化表名;
第二检测单元,用于检测每个数据库表字段的字段名是否为规范化字段名。
12.根据权利要求11所述的规范装置,其特征在于,所述第一检测单元具体用于:
判断每个数据库表字段的表名是否在所述规范化表名清单中;
如果所述表名不在所述规范化表名清单中,则将不在所述规范化表名清单中的表名进行标注并输出;
如果所述表名在所述规范化表名清单中,则将从所述表名中提取出的单词作为第一单词,判断所述第一单词是否在所述规范化单词清单中;
如果所述第一单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第一单词进行标注并输出;
如果所述第一单词在所述规范化单词清单中,则确定所述第一单词对应的表名为规范化表名。
13.根据权利要求11所述的规范装置,其特征在于,所述第二检测单元具体用于:
判断每个数据库表字段的字段名是否在所述规范化字段名清单中;
如果所述字段名不在所述规范化字段名清单中,则将不在所述规范化字段名清单中的字段名进行标注并输出;
如果所述字段名在所述规范化字段名清单中,则将从所述字段名中提取出的单词作为第二单词,判断所述第二单词是否在所述规范化单词清单中;
如果所述第二单词不在所述规范化单词清单中,则将不在所述规范化单词清单中的第二单词进行标注并输出;
如果所述第二单词在所述规范化单词清单中,则确定所述第二单词对应的字段名为规范化字段名。
14.根据权利要求11所述的规范装置,其特征在于,还包括:
表索引添加单元,用于当每个数据库表字段的表名为规范化表名,且每个数据库表字段的字段名为规范化字段名之后,为数据库添加表索引。
15.根据权利要求9所述的规范装置,其特征在于,所述生成单元包括:
生成子单元,用于生成DDL脚本。
16.根据权利要求9所述的规范装置,其特征在于,还包括:
执行单元,用于将所述生成单元生成的所述SQL脚本提交给数据库执行,完成数据库的建立。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811222822.9A CN109408510A (zh) | 2018-10-19 | 2018-10-19 | 一种数据模型的规范方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811222822.9A CN109408510A (zh) | 2018-10-19 | 2018-10-19 | 一种数据模型的规范方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408510A true CN109408510A (zh) | 2019-03-01 |
Family
ID=65467907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811222822.9A Pending CN109408510A (zh) | 2018-10-19 | 2018-10-19 | 一种数据模型的规范方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408510A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116402478A (zh) * | 2023-06-07 | 2023-07-07 | 成都普朗克科技有限公司 | 基于语音交互的生成清单的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186639A (zh) * | 2011-12-31 | 2013-07-03 | 腾讯科技(北京)有限公司 | 数据生成方法及系统 |
US20140304263A1 (en) * | 2013-04-04 | 2014-10-09 | Ganesh Vaitheeswaran | In-database provisioning of data |
CN106933972A (zh) * | 2017-02-14 | 2017-07-07 | 杭州数梦工场科技有限公司 | 利用自然语言处理技术定义数据元素的方法以及装置 |
CN108256074A (zh) * | 2018-01-17 | 2018-07-06 | 链家网(北京)科技有限公司 | 校验处理的方法、装置、电子设备和存储介质 |
-
2018
- 2018-10-19 CN CN201811222822.9A patent/CN109408510A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186639A (zh) * | 2011-12-31 | 2013-07-03 | 腾讯科技(北京)有限公司 | 数据生成方法及系统 |
US20140304263A1 (en) * | 2013-04-04 | 2014-10-09 | Ganesh Vaitheeswaran | In-database provisioning of data |
CN106933972A (zh) * | 2017-02-14 | 2017-07-07 | 杭州数梦工场科技有限公司 | 利用自然语言处理技术定义数据元素的方法以及装置 |
CN108256074A (zh) * | 2018-01-17 | 2018-07-06 | 链家网(北京)科技有限公司 | 校验处理的方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
黄雅琼: "数据库逻辑设计中的规范化", 《信息记录材料》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116402478A (zh) * | 2023-06-07 | 2023-07-07 | 成都普朗克科技有限公司 | 基于语音交互的生成清单的方法和装置 |
CN116402478B (zh) * | 2023-06-07 | 2023-09-19 | 成都普朗克科技有限公司 | 基于语音交互的生成清单的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7792793B2 (en) | Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer | |
US7925658B2 (en) | Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report | |
US9098566B2 (en) | Method and system for presenting RDF data as a set of relational views | |
US20060251073A1 (en) | Methods and apparatus for transferring data | |
US20050183002A1 (en) | Data and metadata linking form mechanism and method | |
US9229971B2 (en) | Matching data based on numeric difference | |
US20060288021A1 (en) | Information processor, schema definition method and program | |
CN107357593A (zh) | 源代码文件组建方法、装置、电子终端及可读存储介质 | |
CN101673287A (zh) | 一种sql语句生成方法及系统 | |
WO2005055001A2 (en) | Method for assisting in automated conversion of data and associated metadata | |
CN104679903B (zh) | 一种数据表的操作方法及装置 | |
CN101452441A (zh) | 一种电子表格通用数据解析导入方法 | |
CN101901262A (zh) | 基于面向对象模型的企业建库和业务数据显示的方法 | |
CN101634942A (zh) | 一种动态创建数据表的方法和系统 | |
CN103020318A (zh) | 一种对数据库中数据库表维护的方法 | |
CN103198141A (zh) | 层级关系下数据记录访问控制方法和装置 | |
CN103246753A (zh) | 一种根据数据库结构生成实体元数据模型的方法 | |
CN115525624A (zh) | 批量数据建模和数据处理的方法 | |
CN109408510A (zh) | 一种数据模型的规范方法及装置 | |
CN103885765A (zh) | 一种xbrl元素的编码方法 | |
CN112487198A (zh) | 物理模型处理方法、装置、电子设备及计算机存储介质 | |
Ola | Relational databases with exclusive disjunctions | |
US20050137846A1 (en) | On-demand creation of Java locale source | |
CN114881001A (zh) | 基于人工智能的报表生成方法及相关设备 | |
Mazón et al. | Applying transformations to model driven data warehouses |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190301 |