CN105912665B - 一种Neo4j向关系型数据库的模型转换和数据迁移方法 - Google Patents
一种Neo4j向关系型数据库的模型转换和数据迁移方法 Download PDFInfo
- Publication number
- CN105912665B CN105912665B CN201610224210.8A CN201610224210A CN105912665B CN 105912665 B CN105912665 B CN 105912665B CN 201610224210 A CN201610224210 A CN 201610224210A CN 105912665 B CN105912665 B CN 105912665B
- Authority
- CN
- China
- Prior art keywords
- attribute
- relationship
- neo4j
- relevant database
- converted
- 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.)
- Active
Links
- 230000005012 migration Effects 0.000 title claims abstract description 37
- 238000013508 migration Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 28
- 238000012216 screening Methods 0.000 claims description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 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/214—Database migration 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Neo4j向关系型数据库的模型转换和数据迁移方法,包括如下步骤:S1:提取Neo4j的概念模型;S2:用户筛选需要进行转换的标签实体和关系实体;S3:查找所有包含属性的关系实体,并将所述包含属性的关系实体全部转换成关系型数据库概念模型中的表;S4:将需要进行转换的所有标签实体转换成关系型数据库概念模型中的表;S5:建立表达关系型数据库概念模型中各个表之间的关系属性;S6:建成完整的关系型数据库的概念模型;S7:进行数据迁移。本发明利用模型转换的方法解决了Neo4j向关系型数据库数据迁移的问题,同时使数据迁移更加准确,并且更加容易操作。
Description
技术领域
本发明涉及计算机数据库技术领域,尤其涉及一种Neo4j向关系型数据库的模型转换和数据迁移方法。
背景技术
在数据建模领域早期一共有两大主要的流派,一个是关系模型,逐渐演化成了关系型数据库;另一个是语义网络采用的网络结构,现在演化成了非关系数据中的图形数据库。在图形数据库最为流行、最具代表的数据库是Neo4j。
Neo4j是一款高性能的、世界领先的图形数据库,具有灵活的结构和完备的事务特性。Neo4j与关系型数据库相比各有优劣。Neo4j的优点在于其把所有的数据保存在了网络中而不是关系型数据库中的表的形式,因此具有良好的查询速度,特别适合运用于社交网络、买卖网络等关系的表达。目前包括Facebook、阿里巴巴、百度等许多大公司都在使用Neo4j。
从目前来看,随着大数据时代的到来,很多应用面临着检索速度、数据存储等问题。很多用户选择使用Neo4j,利用网络存储的优势提高查询的性能,同时提供更加灵活的存储。同时,也存在一些应用为了保证数据的ACID特性需要将Neo4j中的数据导入到关系型数据库中,关系型数据库具有数据结构化,模型易于理解,数据容易维护,数据完整,操作相对方便。目前比较常见的做法是直接利用ETL工具进行数据迁移,这种情况下缺少可视化的展现,无法实现优的性能,数据迁移容易发生误差,并且不易操作。
发明内容
本发明的目的之一在于提供一种Neo4j向关系型数据库的模型转换和数据迁移方法,以解决现有数据迁移方法无法实现优的性能,缺少可视化的展现,数据迁移容易发生误差,并且不易操作的问题。
本发明的发明目的是通过下述技术方案来实现的:
本发明所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,包括如下步骤:
步骤S1:提取Neo4j的概念模型;
步骤S2:从步骤S1中得到的Neo4j的概念模型中筛选需要进行转换的标签实体和关系实体;
步骤S3:从步骤S2中筛选得到的需要进行转换的关系实体中查找包含属性的关系实体,并将所述包含属性的关系实体转换成关系型数据库概念模型中的表;
步骤S4:将步骤S2中筛选得到的需要进行转换的标签实体转换成关系型数据库概念模型中的表;
步骤S5:建立表达步骤S3和步骤S4得到的关系型数据库概念模型中各个表之间的关系属性;
步骤S6:根据步骤S3和步骤S4得到的表和步骤S5建立的各个表之间的关系属性组建成完整的关系型数据库的概念模型;
步骤S7:根据步骤S6组建成的完整的关系型数据库的概念模型进行数据迁移。
进一步的,所述步骤S1:提取Neo4j的概念模型的步骤,包括如下步骤:
步骤S1.1:调用Neo4j的API(应用程序编程接口)得到Neo4j中所有的标签;
步骤S1.2:将步骤S1.1中得到的标签中相同的标签归为同种类型的标签,针对每一种类型的标签遍历其节点,同时遍历节点的属性,最终得到关于每种类型标签的属性全集;
步骤S1.3:根据步骤S1.1中得到的标签,调用Neo4j的API得到Neo4j中的关系;
步骤S1.4:将步骤S1.3中得到的关系中相同的关系归为同种类型的关系,遍历每一种类型关系的所有属性,得到关于每种类型的关系的属性全集;
步骤S1.5:将步骤S1.2中得到的每种类型的标签转换为概念模型中的标签实体,再将步骤S1.2中得到的每种类型标签的属性全集转换为概念模型中标签实体的属性;
步骤S1.6:将步骤S1.4中得到的每种类型的关系转换为概念模型中的关系实体,将步骤S1.4中得到的每种类型的关系的属性全集转换为关系实体的属性。
进一步的,所述步骤S1.5中还包括:在概念模型中标签实体的属性中添加Neo4j自带的ID(身份标识号码)属性。
进一步的,所述步骤S1.6中还包括:在概念模型中的关系实体的属性中添加用于表示Neo4j中关系方向的起始ID属性和目的ID属性。
进一步的,所述步骤S3中:将所述包含属性的关系实体转换成关系型数据库概念模型中的表,具体包括如下步骤:
步骤S3.1:将所述包含属性的关系实体名转换为关系型数据库概念模型中的表的标题名;
步骤S3.2:将所述包含属性的关系实体的属性转换为关系型数据库概念模型中的表的属性;
步骤S3.2:将所述包含属性的关系实体的起始ID属性和目的ID属性转换为关系型数据库概念模型中表中的起始ID属性和目的ID属性。
进一步的,所述步骤S4:将步骤S2中筛选得到的需要进行转换的标签实体转换成关系型数据库概念模型中的表,具体包括如下步骤:
步骤S4.1:将所述需要进行转换的标签实体名转换为关系型数据库概念模型中的表的标题名;
步骤S4.2:将所述需要进行转换的标签实体的属性转换为关系型数据库概念模型中的表的属性;
步骤S4.3:将所述需要进行转换的标签实体的ID属性转换为关系型数据库概念模型中的表中的ID属性。
进一步的,所述步骤S5:建立表达步骤S3和步骤S4得到的关系型数据库概念模型中各个表之间的关系属性的步骤,具体包括如下步骤:
步骤S5.1:从步骤S2中筛选得到的需要进行转换的关系实体中查找所有不带属性的关系实体,将不带属性的关系实体中箭头指向的标签实体转换后对应的表上添加一个表达外键的属性;
步骤S5.2:建立关系型数据库概念模型中所有表的主外键关系。
进一步的,所述步骤S5.1中所述的表达外键的属性包括所述不带属性的关系实体中箭头起始端的标签实体名和所述不带属性的关系实体名。
进一步的,所述步骤S7:根据步骤S6组建成的完整的关系型数据库的概念模型进行数据迁移的步骤,具体包括:
将步骤S1中得到的Neo4j的概念模型指定为原数据的位置,将步骤S6中组建成的完整的关系型数据库的概念模型指定为目标数据的位置,通过ETL工具进行数据迁移。
本发明的有益效果:本发明利用模型转换的方法解决了Neo4j向关系型数据库数据迁移的问题,同时使数据迁移更加准确,并且更加容易操作。
附图说明
图1为本发明所述的Neo4j向关系型数据库的模型转换和数据迁移方法的流程图。
图2为本发明所述的提取Neo4j的概念模型的流程图。
图3为本发明所述的Neo4j中包含的四个基本元素之间的关联示意图。
图4为本发明实施例1中提出的Neo4j中节点和关系的关联图。
图5为本发明实施例1中提取得到的Neo4j的ER图型概念模型。
图6为本发明实施例2中提出的Neo4j的ER图型概念模型。
图7为本发明实施例2中转换后的关系型数据库ER图型概念模型。
具体实施方式
下文将结合具体实施方式详细描述本发明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。
如图1所示,本发明所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,包括如下步骤:
步骤S1:提取Neo4j的概念模型。该概念模型通过ER图中的实体和属性进行表示。
Neo4j包含的四个基本元素为:
1.节点(Nodes):Neo4j把数据存储在节点和关系上,这两者都可以包含属性;
2.关系(Relationships):在Neo4j中通过关系连接的方式把所有的节点组织起来,一个关系有一个开始节点和一个结束节点(即有向图),关系也可以包含属性;
3.属性(Properties):节点和关系都可以包含属性,这里的属性和ER图中的属性可以理解为相同的概念;
4.标签(Labels):标签为节点分配了类型或者角色。类似于关系型数据库的表(Tables)的概念,比如关系型数据库中的学生表、老师表分别对应了Neo4j中的学生标签和老师标签。
为使更好地理解Neo4j包含的四个基本元素之间的关系,现举例说明:
如图3所示,其中A~D代表四个节点,R1~R4代表关系,P1~P10代表属性,其中P1~P6是节点上的属性,P7~P10是关系上的属性。可以看出节点和属性,关系和属性都是通过一个Key-Value的双向列表来保存的。对于一个节点而言,节点和关系也是通过一个Key-Value的双向列表来保存的,比如A节点相关的R1、R2、R3之间是双向列表保存的,C节点相关的R1和R3之间是双向列表保存的。这样的底层存储使得Neo4j具有很快的遍历和查询速度。
通过Neo4j的四个基本元素和对整个网络的遍历操作,本发明提出了一种提取Neo4j的概念模型方法。如图2所示,具体的提取方法如下:
步骤S1.1:调用Neo4j的API得到Neo4j中所有的标签;
步骤S1.2:将步骤S1.1中得到的标签中相同的标签归为同种类型的标签,针对每一种类型的标签遍历其所有节点,同时遍历所有节点的所有属性,最终得到关于所有类型标签的属性全集;
步骤S1.3:根据步骤S1.1中得到的标签,调用Neo4j的API得到Neo4j中所有的关系;
步骤S1.4:将步骤S1.3中得到的关系中相同的关系归为同种类型的关系,遍历每一种类型关系的所有属性,得到关于所有类型的关系的属性全集;
步骤S1.5:将步骤S1.2中得到的所有的标签转换为概念模型中的标签实体,再将步骤S1.2中得到的所有类型标签的属性全集转换为概念模型中标签实体的属性,同时在标签实体的属性中添加一个Neo4j自带的ID属性;
步骤S1.6:将步骤S1.4中得到的所有类型的关系转换为概念模型中的关系实体,将步骤S1.4中得到的所有类型的关系的属性全集转换为关系实体的属性;同时在关系实体属性中添加用于表示Neo4j中关系方向的起始ID和目的ID这个两个属性。起始ID和目的ID的这两个属性值就是Neo4j自带的用于唯一区分的ID。
步骤S2:用户从步骤S1中得到的Neo4j的概念模型中筛选需要进行转换的标签实体和关系实体,及其对应的属性。该步骤相当于一个数据库的设计过程。
步骤S3:从步骤S2中筛选得到的需要进行转换的关系实体中查找所有包含属性的关系实体,并将所述包含属性的关系实体全部转换成关系型数据库概念模型中的表。步骤S3中:将所述包含属性的关系实体转换成关系型数据库概念模型中的表,具体包括如下步骤:
步骤S3.1:将所述包含属性的关系实体名转换为关系型数据库概念模型中的表的标题名;
步骤S3.2:将所述包含属性的关系实体的属性转换为关系型数据库概念模型中的表的属性;
步骤S3.2:将所述包含属性的关系实体的起始ID属性和目的ID属性转换为关系型数据库概念模型中的表中的起始ID属性和目的ID属性。
步骤S4:将步骤S2中筛选得到的需要进行转换的所有标签实体转换成关系型数据库概念模型中的表。该步骤中具体包括如下步骤:
步骤S4.1:将所述需要进行转换的标签实体名转换为关系型数据库概念模型中的表的标题名;
步骤S4.2:将所述需要进行转换的标签实体的属性转换为关系型数据库概念模型中的表的属性;
步骤S4.3:将所述需要进行转换的标签实体的ID属性转换为关系型数据库概念模型中的表中的ID属性。
步骤S5:建立表达步骤S3和步骤S4得到的关系型数据库概念模型中各个表之间的关系属性的步骤,该步骤具体包括如下步骤:
步骤S5.1:从步骤S2中筛选得到的需要进行转换的关系实体中查找所有不带属性的关系实体,将不带属性的关系实体中箭头指向的标签实体转换后对应的表上添加一个表达外键的属性。表达外键的属性包括所述不带属性的关系实体中箭头起始端的标签实体名和所述不带属性的关系实体名。
步骤S5.2:建立关系型数据库概念模型中所有表的主外键关系。
步骤S6:根据步骤S3和步骤S4得到的表和步骤S5建立的各个表的关系属性组建成完整的关系型数据库的概念模型。
步骤S7:根据步骤S6组建成的完整的关系型数据库的概念模型进行数据迁移。具体步骤为:将步骤S1中得到的Neo4j的概念模型指定为原数据的位置,将步骤S6中组建成的完整的关系型数据库的概念模型指定为目标数据的位置,通过ETL工具进行数据迁移。
Neo4j向关系型数据库的模型转换其本质上是数据库中表的设计和建立的过程,具体的数据还保存在Neo4j中。本发明利用MetaModel进行数据迁移操作,MetaModel是一个Apache基金会的正式项目。其目的是开发一套对关系型数据库和非关系型数据库通用的,面向Java的CRUD接口。参照各种关系型数据库的java接口,MoetaModel设计了一套基于SQL语言的Java接口。通过使用该接口,用户可以通过同样的Java API对包括Oracle、SQLserver、MySQL在内的关系型数据库和包括MongoDB、HBase、Cassandra在内的非关系型数据库进行CRUD操作。
实施例1
现举例说明上述步骤S1中Neo4j的概念模型提取方法:
如图4所示,图中有3个节点,分别为Sally、John、NW,其中Sally、John的标签为Person,NW的标签为Book。例子中有3个关系,其中Person之间有Friend_Of关系,Person和Book之间有Has_Read关系。节点和关系都包含一些属性。可以看出每一个节点相当于关系型数据库的一条记录,每一个标签相当于关系型数据库的一个表,虽然每个节点可能有很多种关联的关系,但是可以按照节点的标签来分类。
步骤a:首先调用Neo4j的API,得到Neo4j中所有的标签,分别为Person和Book。
步骤b:对于Person标签,遍历Sally和John这两个节点,然后遍历Sally、John的所有属性得到一个属性全集。例如Sally节点包含了Name、Sex的属性,John节点包含了Name、Age的属性,那么最终得到的属性全集为{Name、Sex、Age};同理,可得到Book标签对应的属性全集为{Title、Authors}。
步骤c:调用Neo4j的API得到Neo4j中所有类型的关系,分别为Friend_Of关系和Has_Read关系。
步骤d:遍历Friend_Of关系和Has_Read关系的所有属性,对于Friend_Of关系得到的属性全集是{Since},对于Has_Read关系得到的属性全集是{Rateing、On}。
步骤e:将Person和Book标签转变为ER图型概念模型中的标签实体,即图5中带有小标Label的Person实体和Book实体;并将步骤b中得到的Person和Book标签的属性全集转换为概念模型中Person和Book实体的属性;同时在所有实体的属性上添加一个Neo4j自带的ID属性。
步骤f:将Friend_Of关系和Has_Read关系转变为ER图型概念模型中的关系实体,即图5中带有小标Relationship的Friend_Of实体和Has_Read实体;并将步骤d中得到的Friend_Of关系和Has_Read关系的属性全集分别转换为Friend_Of实体和Has_Read实体的属性;同时分别在Friend_Of实体和Has_Read实体的属性中添加用于表示Neo4j中关系方向的起始ID(FormID)和目的ID(ToID)这个两个属性。
ER图型概念模型中实体之间的连线是根据Neo4j中关系的方向来得到的,例如在图5中Has_Read关系都是从Person节点指向Book节点,Friend_Of关系都是从Person节点指向Person节点,所以变成概念模型之后还是保留这样的方向。
实施例2
现举例说明Neo4j向关系型数据库的模型转换方法,具体方法如下:
步骤Ⅰ:利用上述方法提取Neo4j的概念模型,得到如图6所示的ER图型概念模型。其中包括带有小标Label的Person实体和Book实体的标签实体,带有小标Relationship的Friend_Of实体、Has_Read实体和Has_Write实体的关系实体;其中Friend_Of实体和Has_Read实体为包含有属性的关系实体,Has_Write实体为不包含属性的关系实体。
步骤Ⅱ:选择对提取的Neo4j的ER图型概念模型中的全部实体和属性进行转换。
步骤Ⅲ:将Neo4j的ER图型概念模型中包含属性的Friend_Of实体和Has_Read实体转换成关系型数据库ER图型概念模型中的表(Tables),即如图7所示的带有小标Tables的Friend_Of表和Has_Read表。其中Friend_Of和Has_Read分别为Friend_Of表和Has_Read表的标题名。实体中的属性也对应着转换为表的属性。
步骤Ⅳ:将Neo4j的ER图型概念模型中的Person实体和Book实体转换成关系型数据库概念模型中的表,即如图7所示的带有小标Tables的Person表和Book表;Person和Book分别为Person表和Book表的标题名。实体中的属性也对应着转换为表的属性。
步骤Ⅴ:如图7所示,将Neo4j的ER图型概念模型中不包含属性的Has_Write实体箭头指向的Book实体转换后对应的Book表上添加一个表达外键的Person_Has_Write属性。
步骤Ⅵ:如图7所示,根据Neo4j的ER图型概念模型的关系实体属性中的起始ID(FormID)和目的ID(ToID)建立关系型数据库概念模型中Person表、Book表、Friend_Of表和Has_Read表的主外键关系表。如图5中的左上角表示主外键关系的PK_FK表中,ID(Person)是指用Person表中的ID为主键,FormID(Friend_of)表示Friend_of表中的FormID为外键。
本发明具有的优势如下:
(1)本发明提出了一种Neo4j向关系型数据库模型转换和数据迁移方法,通过模型转换的方法实现了更加简便、科学、直观的数据迁移;
(2)本发明提出了一种关于Neo4j的概念模型的表示形式和提取方法;
(3)本发明在模型转换的基础上自动实现了MetaModel的相关接口,能够使数据从Neo4j向关系型数据库进行自动迁移,不需要人工参与。
当然应意识到,虽然通过本发明的示例已经进行了前面的描述,但是对本发明做出的将对本领域的技术人员显而易见的这样和其他的改进及改变应认为落入如本文提出的本发明宽广范围内。因此,尽管本发明已经参照了优选的实施方式进行描述,但是,其意并不是使具新颖性的设备由此而受到限制,相反,其旨在包括符合上述公开部分、权利要求的广阔范围之内的各种改进和等同修改。
Claims (9)
1.一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,包括如下步骤:
步骤S1:提取Neo4j的概念模型;
步骤S2:从步骤S1中得到的Neo4j的概念模型中筛选需要进行转换的标签实体和关系实体;
步骤S3:从步骤S2中筛选得到的需要进行转换的关系实体中查找包含属性的关系实体,并将所述包含属性的关系实体转换成关系型数据库概念模型中的表;
步骤S4:将步骤S2中筛选得到的需要进行转换的标签实体转换成关系型数据库概念模型中的表;
步骤S5:建立表达步骤S3和步骤S4得到的关系型数据库概念模型中各个表之间的关系属性;
步骤S6:根据步骤S3和步骤S4得到的表和步骤S5建立的各个表之间的关系属性组建成完整的关系型数据库的概念模型;
步骤S7:根据步骤S6组建成的完整的关系型数据库的概念模型进行数据迁移。
2.如权利要求1所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S1:提取Neo4j的概念模型的步骤,包括如下步骤:
步骤S1.1:调用Neo4j的API得到Neo4j中所有的标签;
步骤S1.2:将步骤S1.1中得到的标签中相同的标签归为同种类型的标签,针对每一种类型的标签遍历其节点,同时遍历节点的属性,最终得到关于每种类型标签的属性全集;
步骤S1.3:根据步骤S1.1中得到的标签,调用Neo4j的API得到Neo4j中的关系;
步骤S1.4:将步骤S1.3中得到的关系中相同的关系归为同种类型的关系,遍历每一种类型关系的所有属性,得到关于每种类型的关系的属性全集;
步骤S1.5:将步骤S1.2中得到的每种类型的标签转换为概念模型中的标签实体,再将步骤S1.2中得到的每种类型标签的属性全集转换为概念模型中标签实体的属性;
步骤S1.6:将步骤S1.4中得到的每种类型的关系转换为概念模型中的关系实体,将步骤S1.4中得到的每种类型的关系的属性全集转换为关系实体的属性。
3.如权利要求2所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S1.5中还包括:在概念模型中标签实体的属性中添加Neo4j自带的ID属性。
4.如权利要求3所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S1.6中还包括:在概念模型中的关系实体的属性中添加用于表示Neo4j中关系方向的起始ID属性和目的ID属性。
5.如权利要求4所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S3中:将所述包含属性的关系实体转换成关系型数据库概念模型中的表,具体包括如下步骤:
步骤S3.1:将所述包含属性的关系实体名转换为关系型数据库概念模型中的表的标题名;
步骤S3.2:将所述包含属性的关系实体的属性转换为关系型数据库概念模型中的表的属性;
步骤S3.2:将所述包含属性的关系实体的起始ID属性和目的ID属性转换为关系型数据库概念模型中表中的起始ID属性和目的ID属性。
6.如权利要求4所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S4:将步骤S2中筛选得到的需要进行转换的标签实体转换成关系型数据库概念模型中的表,具体包括如下步骤:
步骤S4.1:将所述需要进行转换的标签实体名转换为关系型数据库概念模型中的表的标题名;
步骤S4.2:将所述需要进行转换的标签实体的属性转换为关系型数据库概念模型中的表的属性;
步骤S4.3:将所述需要进行转换的标签实体的ID属性转换为关系型数据库概念模型中的表中的ID属性。
7.如权利要求1所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S5:建立表达步骤S3和步骤S4得到的关系型数据库概念模型中各个表之间的关系属性的步骤,具体包括如下步骤:
步骤S5.1:从步骤S2中筛选得到的需要进行转换的关系实体中查找所有不带属性的关系实体,将不带属性的关系实体中箭头指向的标签实体转换后对应的表上添加一个表达外键的属性;
步骤S5.2:建立关系型数据库概念模型中所有表的主外键关系。
8.如权利要求7所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S5.1中所述的表达外键的属性包括所述不带属性的关系实体中箭头起始端的标签实体名和所述不带属性的关系实体名。
9.如权利要求1所述的一种Neo4j向关系型数据库的模型转换和数据迁移方法,其特征在于,所述步骤S7:根据步骤S6组建成的完整的关系型数据库的概念模型进行数据迁移的步骤,具体包括:
将步骤S1中得到的Neo4j的概念模型指定为原数据的位置,将步骤S6中组建成的完整的关系型数据库的概念模型指定为目标数据的位置,通过ETL工具进行数据迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610224210.8A CN105912665B (zh) | 2016-04-12 | 2016-04-12 | 一种Neo4j向关系型数据库的模型转换和数据迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610224210.8A CN105912665B (zh) | 2016-04-12 | 2016-04-12 | 一种Neo4j向关系型数据库的模型转换和数据迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105912665A CN105912665A (zh) | 2016-08-31 |
CN105912665B true CN105912665B (zh) | 2019-05-03 |
Family
ID=56745868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610224210.8A Active CN105912665B (zh) | 2016-04-12 | 2016-04-12 | 一种Neo4j向关系型数据库的模型转换和数据迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105912665B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170847B (zh) * | 2018-01-18 | 2021-08-31 | 国网福建省电力有限公司 | 一种基于Neo4j图数据库的大数据存储方法 |
CN111382140B (zh) * | 2018-12-29 | 2023-06-16 | 方正国际软件(北京)有限公司 | 数据库序列迁移的方法及电子设备 |
CN109947995B (zh) * | 2019-02-14 | 2020-12-15 | 烽火通信科技股份有限公司 | 一种高级模型与低级模型的自动映射方法及*** |
CN113722294B (zh) * | 2021-09-01 | 2024-02-23 | 达梦数据技术(江苏)有限公司 | 一种从图数据库到关系数据库的数据迁移方法和*** |
US11741134B2 (en) | 2021-09-07 | 2023-08-29 | Oracle International Corporation | Conversion and migration of key-value store to relational model |
US11663189B1 (en) | 2021-12-01 | 2023-05-30 | Oracle International Corporation | Generating relational table structures from NoSQL datastore and migrating data |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815468A (zh) * | 2005-01-31 | 2006-08-09 | 微软公司 | 非关系型查询语言与关系型数据存储的集成 |
CN103530327A (zh) * | 2013-09-25 | 2014-01-22 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
CN103810275A (zh) * | 2014-02-13 | 2014-05-21 | 清华大学 | 用于非关系与关系型数据库间数据交互的方法和装置 |
CN105260464A (zh) * | 2015-10-16 | 2016-01-20 | 北京奇虎科技有限公司 | 数据存储结构的转换方法及装置 |
CN105279285A (zh) * | 2015-11-23 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 一种关系型数据库与非关系型数据库的同步***及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460187B2 (en) * | 2013-06-07 | 2016-10-04 | Vmware, Inc. | Creation of a graph database of a virtualization infrastructure |
-
2016
- 2016-04-12 CN CN201610224210.8A patent/CN105912665B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815468A (zh) * | 2005-01-31 | 2006-08-09 | 微软公司 | 非关系型查询语言与关系型数据存储的集成 |
CN103530327A (zh) * | 2013-09-25 | 2014-01-22 | 清华大学深圳研究生院 | 一种从非关系型数据库到关系型数据库的数据迁移方法 |
CN103810275A (zh) * | 2014-02-13 | 2014-05-21 | 清华大学 | 用于非关系与关系型数据库间数据交互的方法和装置 |
CN105260464A (zh) * | 2015-10-16 | 2016-01-20 | 北京奇虎科技有限公司 | 数据存储结构的转换方法及装置 |
CN105279285A (zh) * | 2015-11-23 | 2016-01-27 | 上海斐讯数据通信技术有限公司 | 一种关系型数据库与非关系型数据库的同步***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105912665A (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912665B (zh) | 一种Neo4j向关系型数据库的模型转换和数据迁移方法 | |
CN105930361B (zh) | 一种关系型数据库向Neo4j模型转换和数据迁移方法 | |
Holzschuher et al. | Performance of graph query languages: comparison of cypher, gremlin and native access in neo4j | |
CN103646032B (zh) | 一种基于本体和受限自然语言处理的数据库查询方法 | |
CN104750681B (zh) | 一种海量数据的处理方法及装置 | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN105468605A (zh) | 一种实体信息图谱生成方法及装置 | |
Medhi et al. | Relational database and graph database: A comparative analysis | |
CN104965886B (zh) | 数据维度处理方法 | |
CN103631909A (zh) | 对大规模结构化和非结构化数据联合处理的***及方法 | |
CN108319661A (zh) | 一种备件信息的结构化存储方法及装置 | |
CN104504001A (zh) | 面向海量分布式关系数据库的游标构造方法 | |
Ramesh et al. | Data modelling for discrete time series data using Cassandra and MongoDB | |
Mpinda et al. | Evaluation of graph databases performance through indexing techniques | |
CN104021156A (zh) | 一种基于sql语句快速汇总多层事实数据的方法 | |
CN104021210B (zh) | 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN105138538A (zh) | 一种面向跨领域知识发现的主题挖掘方法 | |
CN105843793A (zh) | 在自动模型产生期间检测和创建合适行概念的方法和*** | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
Kricke et al. | Graph data transformations in Gradoop | |
Kantabutra et al. | Using the Newly‐created ILE DBMS to Better Represent Temporal and Historical GIS Data | |
CN101916260A (zh) | 一种灾害本体和关系数据库间语义映射构建的方法 | |
CN103942267A (zh) | 应用于在线教育***中的树形数据结构的建立方法 | |
CN106527912A (zh) | 一种基于Voronoi树图的信息检索可视化***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100084 Haidian District Tsinghua Yuan, Tsinghua University, Beijing Co-patentee after: Beijing August melon Technology Co., Ltd Patentee after: Tsinghua University Address before: 100084 Haidian District Tsinghua Yuan, Tsinghua University, Beijing Co-patentee before: BEIJING HENGGUAN NETWORK DATA TREATMENT CO., LTD. Patentee before: Tsinghua University |