CN108874950B - 一种基于er关系的数据分布存储方法及装置 - Google Patents

一种基于er关系的数据分布存储方法及装置 Download PDF

Info

Publication number
CN108874950B
CN108874950B CN201810569439.4A CN201810569439A CN108874950B CN 108874950 B CN108874950 B CN 108874950B CN 201810569439 A CN201810569439 A CN 201810569439A CN 108874950 B CN108874950 B CN 108874950B
Authority
CN
China
Prior art keywords
data table
data
database
key value
storage
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
Application number
CN201810569439.4A
Other languages
English (en)
Other versions
CN108874950A (zh
Inventor
孙德东
喻晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asiainfo Technologies China Inc
Original Assignee
Asiainfo Technologies China Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Asiainfo Technologies China Inc filed Critical Asiainfo Technologies China Inc
Priority to CN201810569439.4A priority Critical patent/CN108874950B/zh
Publication of CN108874950A publication Critical patent/CN108874950A/zh
Application granted granted Critical
Publication of CN108874950B publication Critical patent/CN108874950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种基于ER关系的数据分布存储方法及装置,通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,进而根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。满足具有ER关系的表之间任意复杂度的关联查询,避免数据查询的跨库操作,提高了关联查询的效率。

Description

一种基于ER关系的数据分布存储方法及装置
技术领域
本发明涉及分布式存储技术领域,更具体的,涉及一种基于ER关系的数据分布存储方法及装置。
背景技术
在分布式环境下的海量数据处理过程中,通常采用分库分表存储技术将数据库按照业务拆分规则分到不同的数据库服务器上,对于存在强关联关系的表单,即使子表与父表拆分规则类似,仍需重新按照拆分规则进行一次拆分分配到不同的表、不同的数据库上。
现有方案在执行了分库分表之后,将原本逻辑关联性很强的数据划分到不同的表、不同的库上,经常会出现对分布式环境下跨库且跨分片存储的任意多个表的数据进行联合查询。如在日志数据库log_db有一份记录表Order,里面有用户信息ID;而关联表的详细信息在Orader_detail,里面有用户ID以及用户的详细信息表如用户名(username)、登录时间(log_time)、注册时间(reg_time)、会员等级等等。如果只是按用户名查找充值记录,那可以很简单地分两次查询即可。但是更复杂的需求,比如按注册时间排序,按会员等级统计等等,稍微复杂一点的功能,分次查询就相当难以做到了。如果在同一个库里,我们可以很方便的使用join关键字实现这些功能,但是在不同的数据库里,并没有跨库查询的SQLJOIN语句,要分俩次查询之后,通过表复制同步等手段进行二次加工才可实现,增加了查询的难度。
发明内容
有鉴于此,本发明提供了一种基于ER关系的数据分布存储方法及装置,满足ER关系的数据表之间任意复杂度的关联查询,提升了关联查询的效率。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种基于ER关系的数据分布存储方法,包括:
通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;
根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键;
根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
优选的,在所述通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库之前,所述方法还包括:
创建数据库配置文件,所述数据库配置文件中定义了所述第一数据表中每个主键值对应数据的存储数据库。
优选的,在所述创建数据库配置文件之前,所述方法还包括:
创建第一数据表和第二数据表,所述第一数据表的主键为所述第二数据表的外键。
优选的,所述方法还包括:
当接收到查询请求时,根据所述查询请求中的字段值和待查询字段,生成联合查询语句,并根据所述联合查询语句在同一数据库进行查询,
一种基于ER关系的数据分布存储装置,包括:
获取单元,用于通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;
确定单元,用于根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键;
存储单元,用于根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
优选的,所述装置还包括:
第一创建单元,用于创建数据库配置文件,所述数据库配置文件中定义了所述第一数据表中每个主键值对应数据的存储数据库。
优选的,所述装置还包括:
第二创建单元,用于创建第一数据表和第二数据表,所述第一数据表的主键为所述第二数据表的外键。
优选的,所述装置还包括:
查询单元,用于当接收到查询请求时,根据所述查询请求中的字段值和待查询字段,生成联合查询语句,并根据所述联合查询语句在同一数据库进行查询,得到所述待查询字段的值。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种基于ER关系的数据分布存储方法及装置,通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,进而根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。满足具有ER关系的表之间任意复杂度的关联查询,避免数据查询的跨库操作,提高了关联查询的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种基于ER关系的数据分布存储方法流程图;
图2为本发明实施例公开的另一种基于ER关系的数据分布存储方法流程图;
图3为本发明实施例公开的又一种基于ER关系的数据分布存储方法流程图;
图4为本发明实施例公开的一种基于ER关系的数据分布存储装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明公开了一种基于ER关系的数据分布存储方法,具体包括以下步骤:
S101:通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;
需要说明的是,多个主键值对应的数据可能存储在同一个数据库中。
S102:根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键;
S103:根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
当需要存储第二数据表的数据时,首先,获取待存储数据的外键值,再根据待存储数据的外键值得到第一数据表中的主键值,通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库,确定待存储数据存储的数据库。
以第一数据表为Order,第二数据表为Order_detail为例,Order中包括两个字段ID和字段username,其中,ID为Order的主键,数据库配置文件中定义字段ID值为1~100的数据存储在数据库A中,字段ID值为101~200的数据存储在数据库B中;Order_detail中包括字段:ID、Order_ID和address,其中,Order_ID为外键。则Order_detail中字段Order_ID值为1~100的数据存储在数据库A中,字段Order_ID值为101~200的数据存储在数据库B中。
本实施例公开的一种基于ER关系的数据分布存储方法,通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,进而根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。满足具有ER关系的表之间任意复杂度的关联查询,避免数据查询的跨库操作,提高了关联查询的效率。
请参阅图2,本实施例公开了另一种基于ER关系的数据分布存储方法,具体包括以下步骤:
S201:创建第一数据表和第二数据表,所述第一数据表的主键为所述第二数据表的外键;
S202:创建数据库配置文件,所述数据库配置文件中定义了所述第一数据表中每个主键值对应数据的存储数据库;
S203:通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;
S204:根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键。
S205:根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
本实施例公开的基于ER关系的数据分布存储方法,在建立数据表时定义数据表之间的主外键关系,便于后续根据主外键关系进行分布存储。同时,创建数据库配置文件,所述数据库配置文件中定义了所述第一数据表中每个主键值对应数据的存储数据库,以配置文件的形式定义主表,即第一数据表分布存储规则,即每个主键值对应数据的存储数据库。便于后续在第二数据表中插入数据时,确定插入数据的存储位置。
请参阅图3,本实施例公开了另一种基于ER关系的数据分布存储方法,具体包括以下步骤:
S301:通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;
S302:根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键。
S303:根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中;
S304:当接收到查询请求时,根据所述查询请求中的字段值和待查询字段,生成联合查询语句;
所述查询请求中的字段值为查询条件,例如,查询ID为5的用户的家庭地址,其中,5为字段ID的值,家庭地址为待查询字段。
S305:根据所述联合查询语句在同一数据库进行查询,得到所述待查询字段的值。
可以理解的是,由于使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,因此,查询不需要跨库进行。
以第一数据表为Order,第二数据表为Order_detail为例,Order中包括两个字段ID和字段username,其中,ID为Order的主键;Order_detail中包括字段:ID、Order_ID和address,其中,Order_ID为外键。当查询请求中的字段值为ID=1,待查询字段为address时,生成联合查询语句:Select address fromOrder_detail where ID=1。根据该联合查询语句在同一数据库进行查询,得到待查询字段address的值。避免了跨库操作导致的内存中的过多计算,简化了多数据关联查询的复杂度。
基于上述实施例公开的一种基于ER关系的数据分布存储方法,请参阅图4,本实施例对应公开了一种基于ER关系的数据分布存储装置,具体包括:
获取单元401,用于通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;
确定单元402,用于根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键。
存储单元403,用于根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
优选的,所述装置还包括:
第一创建单元,用于创建数据库配置文件,所述数据库配置文件中定义了所述第一数据表中每个主键值对应数据的存储数据库。
优选的,所述装置还包括:
第二创建单元,用于创建第一数据表和第二数据表,所述第一数据表的主键为所述第二数据表的外键。
优选的,所述装置还包括:
查询单元,用于当接收到查询请求时,根据所述查询请求中的字段值和待查询字段,生成联合查询语句,并根据所述联合查询语句在同一数据库进行查询,得到所述待查询字段的值。
本实施例公开的一种基于ER关系的数据分布存储装置,通过调用数据库配置文件,获取第一数据表中每个主键值对应数据的存储数据库;根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,进而根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。满足具有ER关系的表之间任意复杂度的关联查询,避免数据查询的跨库操作,提高了关联查询的效率。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种基于ER关系的数据分布存储方法,其特征在于,包括:
创建数据库配置文件,所述数据库配置文件中定义了第一数据表中每个主键值对应数据的存储数据库;
通过调用数据库配置文件,获取所述第一数据表中每个主键值对应数据的存储数据库;
根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键;
根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
2.根据权利要求1所述的方法,其特征在于,在所述创建数据库配置文件之前,所述方法还包括:
创建第一数据表和第二数据表,所述第一数据表的主键为所述第二数据表的外键。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到查询请求时,根据所述查询请求中的字段值和待查询字段,生成联合查询语句;
根据所述联合查询语句在同一数据库进行查询,得到所述待查询字段的值。
4.一种基于ER关系的数据分布存储装置,其特征在于,包括:
第一创建单元,用于创建数据库配置文件,所述数据库配置文件中定义了第一数据表中每个主键值对应数据的存储数据库;
获取单元,用于通过调用数据库配置文件,获取所述第一数据表中每个主键值对应数据的存储数据库;
确定单元,用于根据所述第一数据表中每个主键值对应数据的存储数据库,确定第二数据表中每个外键值对应数据的存储数据库,使同一数据库中存储的所述第二数据表中的外键值与存储的所述第一数据表中的主键值相同,所述第一数据表的主键为所述第二数据表的外键;
存储单元,用于根据第二数据表中每个外键值对应数据的存储数据库,将第二数据表中具有相同外键值的数据存储在同一数据库中。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二创建单元,用于创建第一数据表和第二数据表,所述第一数据表的主键为所述第二数据表的外键。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
查询单元,用于当接收到查询请求时,根据所述查询请求中的字段值和待查询字段,生成联合查询语句,并根据所述联合查询语句在同一数据库进行查询,得到所述待查询字段的值。
CN201810569439.4A 2018-06-05 2018-06-05 一种基于er关系的数据分布存储方法及装置 Active CN108874950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810569439.4A CN108874950B (zh) 2018-06-05 2018-06-05 一种基于er关系的数据分布存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810569439.4A CN108874950B (zh) 2018-06-05 2018-06-05 一种基于er关系的数据分布存储方法及装置

Publications (2)

Publication Number Publication Date
CN108874950A CN108874950A (zh) 2018-11-23
CN108874950B true CN108874950B (zh) 2022-04-12

Family

ID=64336504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810569439.4A Active CN108874950B (zh) 2018-06-05 2018-06-05 一种基于er关系的数据分布存储方法及装置

Country Status (1)

Country Link
CN (1) CN108874950B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799872B (zh) * 2021-02-19 2022-08-12 上海交通大学 一种基于键值对存储系统的纠删码编码方法及装置
CN112947207A (zh) * 2021-02-26 2021-06-11 王继凡 一种基于物联网的地热源节能方法及系统
CN113535857A (zh) * 2021-08-04 2021-10-22 阿波罗智联(北京)科技有限公司 数据同步方法及装置
CN113722293B (zh) * 2021-08-31 2023-06-09 平安科技(深圳)有限公司 基于人工智能的防火墙维护方法、装置、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104376025A (zh) * 2013-08-16 2015-02-25 华为技术有限公司 分布式数据库的数据存储方法和装置
CN104871153A (zh) * 2012-10-29 2015-08-26 华为技术有限公司 用于灵活的分布式大规模并行处理(mpp)数据库的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016191995A1 (zh) * 2015-05-31 2016-12-08 华为技术有限公司 一种分布式数据库中关联表分区的方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104871153A (zh) * 2012-10-29 2015-08-26 华为技术有限公司 用于灵活的分布式大规模并行处理(mpp)数据库的系统和方法
CN104376025A (zh) * 2013-08-16 2015-02-25 华为技术有限公司 分布式数据库的数据存储方法和装置

Also Published As

Publication number Publication date
CN108874950A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108874950B (zh) 一种基于er关系的数据分布存储方法及装置
CN107784044B (zh) 表数据查询方法及装置
US9817858B2 (en) Generating hash values
CN101727465B (zh) 分布式列存储数据库索引建立、查询方法及装置与系统
CN107451208B (zh) 一种数据搜索方法与装置
KR20170010844A (ko) 원격 데이터베이스에 대한 뮤테이션들의 프로세싱
US8812492B2 (en) Automatic and dynamic design of cache groups
EP2637111A1 (en) Data management system and method using database middleware
CN108932313B (zh) 数据处理方法、装置、电子设备及存储介质
CN106547870B (zh) 数据库的分表方法及装置
CN103729471A (zh) 数据库查询方法和装置
CN104182405A (zh) 一种连接查询方法及装置
CN103810224A (zh) 信息持久化和查询方法及装置
CN104408159A (zh) 一种数据关联、加载、查询方法及装置
JP2004520633A (ja) 属性又はキー値を選択的に利用することによりクエリ生成を最適化する方法と装置
TW201820175A (zh) 資料庫轉換伺服器及其資料庫轉換方法
CN111723161A (zh) 一种数据处理方法、装置及设备
CN113836163A (zh) 数据的关联查询方法、装置、设备及存储介质
CN108154024B (zh) 一种数据检索方法、装置及电子设备
WO2018107942A1 (en) System and method of adaptively partitioning data to speed up join queries on distributed and parallel database systems
CN108255955B (zh) 一种数据处理方法及装置
US20180018385A1 (en) System, data combining method, integration server, data combining program, database system ,database system cooperation method, and database system cooperation program
CN111814020A (zh) 一种数据的获取方法和装置
CN107203550B (zh) 一种数据处理方法和数据库服务器
CN112579709B (zh) 一种数据表识别方法、装置、存储介质及电子设备

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
GR01 Patent grant
GR01 Patent grant