[发明专利]一种将图数据库转化为关系数据库的方法有效
申请号: | 201810042257.1 | 申请日: | 2018-01-16 |
公开(公告)号: | CN108280159B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 薛岗;姚绍文;刘高秀 | 申请(专利权)人: | 云南大学 |
主分类号: | G06F16/28 | 分类号: | G06F16/28;G06F16/25 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 温利平;陈靓靓 |
地址: | 650091*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种将图数据库转化为关系数据库的方法,首先基于泛化有向超图建立图数据库中属性数据的结构模型,对结构模型中的每个结点建立一个二维数据表,再根据有向边、附加有向边来构建数据表;使用泛化有向超图对图数据库中的结点、有向边、标签、图数据库、结点属性、有向边属性进行描述,建立数据存储特征描述模型,对描述模型中的每个结点建立一个二维数据表,再根据有向边来构建数据表;然后对所构建的数据表进行整理,在关系数据库管理系统中构建数据库和数据表,遍历图数据库中的数据,将相关数据信息填入关系数据库的二维数据表中。采用本发明可以准确地实现从图数据库到关系数据库的转化,且使得到的关系数据库结构合理。 | ||
搜索关键词: | 一种 数据库 转化 关系 方法 | ||
【主权项】:
1.一种将图数据库转化为关系数据库的方法,其特征在于,包括以下步骤:S1:使用泛化有向超图对图数据库中的属性数据建立结构模型MD1=(V1,E1,AE1,Head,Tail,Source,Target),其中:V1表示结构模型MD1的结点集合,具体定义为V1={键,值,键值对标识};E1表示结构模型MD1的有向边集合,具体定义为E1={键值对};AE1表示结构模型MD1的附加有向边集合,具体定义为AE1={标识};Head表示有向边的终止结点,Tail表示有向边的起始结点;Head(“键值对”)=“值”,Tail(“键值对”)=“键”;Source表示附加有向边的起始边,Target表示附加有向边的终止结点;Source(“标识”)=“键值对”,Target(“标识”)=“键值对标识”;S2:对属性数据结构模型MD1中的每个结点分别建立一个二维数据表,每个二维数据表中包含的数据列为该数据表的主键,其中,“键”结点所对应数据表为“键表”,该表中的数据列名称为“键名”,数据类型为文本型;“值”结点所对应数据表为“值表”,该表中数据列名称为“值项”,数据类型为文本型;“键值对标识”结点所对应数据表为“键值对标识表”,表中数据列名称为“键值对标识”,数据类型为文本型;S3:基于有向边“键值对”建立一张二维数据表,命名为“键值对表”,首先生成两个数据列,数据列的列名和数据类型来源于“键表”和“值表”中的列名及数据类型;基于附加有向边“标识”,在“键值对表”中增加一个数据列,该数据列的列名和数据类型来源于“键值对标识表”中的列名及数据类型;选择“键值对表”的主键为“键值对标识”;S4:对于基于属性数据结构模型所构建的数据表,删除“键表”、“值表”、“键值对标识表”,保留一张“键值对表”;S5:使用泛化有向超图对图数据库中数据存储特征建立描述模型MD2=(V2,E2,AE2,Head,Tail,Source,Target),其中:V2表示描述模型MD1的结点集合,具体定义为V2={属性,数据对象,数据关系,标签,图数据库};E2表示描述模型MD1的有向边集合,具体定义为E2={数据对象属性,数据关系属性,数据对象标签,数据关系标签,数据对象归属数据库,数据关系归属数据库,起始结点,终止结点};Head(“数据对象属性”)=“属性”,Tail(“数据对象属性”)=“数据对象”;Head(“数据关系属性”)=“属性”,Tail(“数据关系属性”)=“数据关系”;Head(“数据对象标签”)=“标签”,Tail(“数据对象标签”)=“数据对象”;Head(“数据关系标签”)=“标签”,Tail(“数据关系标签”)=“数据关系”;Head(“数据对象归属数据库”)=“图数据库”,Tail(“数据对象归属数据库”)=“数据对象”;Head(“数据关系归属数据库”)=“图数据库”,Tail(“数据关系归属数据库”)=“数据关系”;Head(“起始结点”)=“数据对象”,Tail(“起始结点”)=“数据关系”;Head(“终止结点”)=“数据对象”,Tail(“终止结点”)=“数据关系”;AE2表示描述模型MD2的附加有向边的集合,为空集,附加有向边的起始边Source和附加有向边的终止结点Target也为空值;S6:对数据存储特征描述模型MD2中的每个结点分别建立一个二维数据表,对于结点“属性”,该结点所对应表格为步骤S4所产生的“键值对表”;对“数据对象”结点建立二维数据表“数据对象表”,表中数据列名称为“数据对象”,数据类型为文本型,该数据列为该数据表的主键;对“数据关系”结点建立二维数据表“数据关系表”,表中数据列名称为“数据关系”,数据类型为文本型,该数据列为该数据表的主键;对“标签”结点建立二维数据表“标签表”,表中数据列名称为“标签”,数据类型为文本型,该数据列为该数据表的主键;对“图数据库”结点建立二维数据表“图数据库表”,表中数据列名称为“图数据库”,数据类型为文本型,该数据列为该数据表的主键;S7:基于有向边“数据对象属性”建立一张二维数据表,名称为“数据对象属性表”,包含两个数据列,均为该数据表的外键,数据列的名称及数据类型来源于“数据对象表”和“键值对表”中的主键及相关数据类型;基于有向边“数据关系属性”建立一张二维数据表,名称为“数据关系属性表”,包含两个数据列,均为该数据表的外键,数据列的名称及数据类型来源于“数据关系表”和“键值对表”中的主键及相关数据类型;基于有向边“数据对象标签”建立一张二维数据表,名称为“数据对象标签表”,包含两个数据列,其中一个数据列为该数据表的外键,该数据列的名称及数据类型来源于“数据对象表”的主键及其数据类型;另外一个数据列的列名及数据类型来源于“标签表”中“标签”列的列名和数据类型;基于有向边“数据关系标签”,在“数据关系表”中增加一个数据列,该列的列名及数据类型来源于“标签表”中“标签”列的列名和数据类型;基于有向边“数据对象归属数据库”,在“数据对象表”中增加一个外键列,该列的名称和类型来源于“图数据库表”中主键及其数据类型;基于有向边“数据关系归属数据库”,在“数据关系表”中增加一个外键列,该列的名称和类型来源于“图数据库表”中主键及其数据类型;基于有向边“起始结点”,在“数据关系表”中增加一个外键列,该列的名称及数据类型来源于“数据对象表”的主键及其数据类型;基于有向边“终止结点”,在“数据关系表”中增加一个外键列,该列的名称及数据类型来源于“数据对象表”的主键及其数据类型;S8:删除“标签表”,将“数据关系表”中两个列名均为“数据对象”的外键列的列名分别修改为“起始结点”和“终止结点”;最终得到7个数据表:“键值对表”、“数据对象表”、“数据关系表”、“数据对象属性表”、“数据关系属性表”、“数据对象标签表”和“图结构数据库表”;S9:在关系数据库管理系统中建立一个数据库,并在该数据库中定义步骤S8中总结的所有数据表格;S10:在图数据库管理系统中扫描待迁移的数据,根据图数据库的存储情况把数据库的名称填充到关系数据库中的“图数据库表”中,每个图数据库名称在“图数据库表”中使用一个数据行进行记录;S11:对每个图数据库中的数据进行结点扫描,对每个结点,在“数据对象表”中新增一行数据,其中,在“数据对象”列中新建一个唯一标识,并在“图数据库”中记录该结点所归属的图数据库名;在“数据对象标签表”中根据每个结点的标签个数增加数据行;每个数据行中,“数据对象”列的值为对象标识,“标签”列则记录结点的实际标签名称;对于每个结点中的属性数据,在“键值对表”中根据属性数量增加数据行;每个数据行中,在“键值对标识”中为属性数据新建一个唯一标识,在“键名”中记录属性的键,在“值项”中记录属性的数据值;对结点中的每个属性数据,在“数据对象属性表”中增加一行数据,其中,在“数据对象”列的值为对象标识,“键值对标识”列的值为属性在键值表中所对应的标识;S12:对每个图数据库中的数据进行有向边扫描,对每个有向边,在“数据关系表”中新增一行数据,其中,在“数据关系”列中新建一个唯一标识,在“标签”列中记录该有向边的标签名,在“图数据库”中记录该有向边所归属的图数据库名,在“起始结点”中记录该有向边起始结点的标识,在“终止结点”列中记录该有向边的终止结点的标识;对于每个有向边中的属性数据,在“键值对表”中根据每个有向边的属性数量增加数据行;每个数据行中,在“键值对标识”中为每个属性数据新建一个唯一标识,在“键名”中记录属性的键,在“值项”中记录属性的数据值;对有向边中的每个属性数据,在“数据关系属性表”中增加一行数据,其中,在“数据关系”列的值为关系标识,“键值对标识”列的值为属性在键值表中所对应的标识。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南大学,未经云南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810042257.1/,转载请声明来源钻瓜专利网。