CN105095457A - 历史数据存储管理方法 - Google Patents
历史数据存储管理方法 Download PDFInfo
- Publication number
- CN105095457A CN105095457A CN201510451790.XA CN201510451790A CN105095457A CN 105095457 A CN105095457 A CN 105095457A CN 201510451790 A CN201510451790 A CN 201510451790A CN 105095457 A CN105095457 A CN 105095457A
- Authority
- CN
- China
- Prior art keywords
- version number
- data
- master meter
- history
- sublist
- 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.)
- Granted
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种历史数据存储管理方法,包括:在关系数据库中存储包含一个或多个子表的主表,而且在历史表中关联主表及其子表,其中历史表中存储主表的开始版本号和结束版本号以及每个子表的开始版本号和结束版本号;在主表的数据变更后且在保存变更后的数据之前,分别判断由于本次数据变更而导致的主表记录以及相应子表中对应的多条记录的变化情况,使得主表记录以及相应子表中对应的多条记录中没有变化的项目所对应的结束版本号递增加一,而且在历史表中插入主表记录以及相应子表中对应的多条记录中存在变化的项目的新纪录,该新纪录中的开始版本号和结束版本号为相应子表的当前版本号。
Description
技术领域
本发明涉及数据库数据存储及检索领域,尤其涉及一种历史数据存储管理方法。
背景技术
在现有的数据管理系统中,一些很关键的数据要求记录变更历史,并需要呈现历史。比如,对于订单合同类数据,存在主子关系表,并且一个主表有多个相关联的子表;这样,在存储变更历史数据时,对于当前的数据管理系统中,会在每次修改前保存完整的订单或合同数据到历史表,即将主表记录和对应的所有子表中全部关联数据复制到历史表。
然而,随着数据越来越多,变更次数越来越多,存储的历史数据也随之成倍增加。同时影响数据库存储、备份时的数据大小;并且数据量太大影响查询返回速度,急需一种更好的历史数据存储方案。
因此,本领域的技术人员致力于开发一种能够节省存储空间而且简化获取变化历史数据的处理的方法。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种历史数据存储管理方法,其能够节省存储空间而且简化获取变化历史数据的处理。
为实现上述目的,本发明提供了一种历史数据存储管理方法,其特征在于包括:在关系数据库中存储包含一个或多个子表的主表,而且在历史表中关联主表及其子表,其中历史表中存储主表的开始版本号和结束版本号以及每个子表的开始版本号和结束版本号;在主表的数据变更后且在保存变更后的数据之前。
在本发明的较佳实施方式中,所述历史数据存储管理方法还包括:分别判断由于本次数据变更而导致的主表记录以及相应子表中对应的多条记录的变化情况。
在本发明的较佳实施方式中,所述历史数据存储管理方法还包括:使得主表记录以及相应子表中对应的多条记录中没有变化的项目所对应的结束版本号递增加一。
在本发明的较佳实施方式中,所述历史数据存储管理方法还包括:在历史表中插入主表记录以及相应子表中对应的多条记录中存在变化的项目的新纪录,该新纪录中的开始版本号和结束版本号为相应子表的当前版本号。
在本发明的较佳实施方式中,历史表中还主表记录关键字。
在本发明的较佳实施方式中,所述历史数据存储管理方法还包括:在读取历史数据时提供主表记录关键字和期望查找的变更状态所对应的结束版本号,从而根据主表记录关键字和期望查找的变更状态所对应的结束版本号在历史表中存储的主表记录关键字和开始版本号、结束版本号中进行检索,以找到对应的历史记录。
在本发明中,主子表部分数据变更时,其他部分可不用因为这些变更,重新记录历史,只需要更新结束版本号即可,从而减少历史记录。由此,本发明在将多级数据表变更后保存变更历史时,能够节省存储空间,而且简化获取变化历史数据的处理。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是根据本发明优选实施例的历史数据存储管理方法的保存变更历史数据处理的流程图。
图2是根据本发明优选实施例的历史数据存储管理方法的保存变更历史数据处理的一个具体流程示例。
具体实施方式
本发明的目的是提供一种历史数据存储管理方法,使数据变动时历史数据占用较少的存储空间。其中,在记录历史时,如果本次要记录的历史数据与前次历史数据相同,就不进行保存,而使用之前的记录;只有在本次需要记录的历史数据变化的情况下,才保存本次历史。这样就可以大大减少因小部分数据变更,需要保存主、子表中相关的所有数据,而产生大量历史数据占用存储空间的问题。
根据本发明优选实施例的历史数据存储管理方法可体现在保存变更历史数据处理以及读取变更历史数据处理中。
图1是根据本发明优选实施例的历史数据存储管理方法的保存变更历史数据处理的流程图。
如图1所示,可以在关系数据库中存储包含一个或多个子表的主表(第一步骤S1),而且在历史表中关联主表及其子表,其中历史表中存储主表的开始版本号和结束版本号以及每个子表的开始版本号和结束版本号(第二步骤S2);在主表的数据变更(第三步骤S3)后且在保存变更后的数据之前,分别判断由于本次数据变更而导致的主表记录以及相应子表中对应的多条记录的变化情况(第四步骤S4),使得主表记录以及相应子表中对应的多条记录中没有变化的项目所对应的结束版本号递增加一(第五步骤S5),而且在历史表中插入主表记录以及相应子表中对应的多条记录中存在变化的项目的新纪录(第六步骤S6),该新纪录中的开始版本号和结束版本号为相应子表的当前版本号。此后,即可保存变更后的数据(第七步骤S7)。由此完成保存变更历史数据处理。
图2是根据本发明优选实施例的历史数据存储管理方法的保存变更历史数据处理的一个具体流程示例。
如图2所示,可以在变更后保存数据前调用历史数据处理;将新数据保存前对当前数据库主子表中存储的数据当前数据拿出来,分别跟历史表中最后一次历史数据进行比较;未变化的部分数据更新变更的结束版本号为当前版本号;变化的部分数据重新插入到历史表,开始版本号、结束版本号均为当前版本号;接下来依次处理各子表中对应数据,判断、记录历史等;所有历史数据处理完毕后,保存变更后的新数据。
优选地,历史表中还主表记录关键字。由此进一步地,在历史数据读取处理中,在读取历史数据时可以提供主表记录关键字和期望查找的变更状态所对应的结束版本号,从而根据主表记录关键字和期望查找的变更状态所对应的结束版本号在历史表中存储的主表记录关键字和开始版本号、结束版本号中进行检索,从而找到对应的历史记录,并返回该记录。
可以看出,本发明解决了局部数据变化需要记录所有相关数据历史,从而占用大量存储空间的缺点。保存的历史数据减少,同时因为增加了变更结束版本号,方便查询时可以直接定位到变更时的版本,同时可应用于其他数据存储时,主子表关系较复杂数据存储的历史变更保存。
在另一种替换实施例中,也可以在有效数据和历史数据之间使用一个关联表记录变更版本号,变更数据保存前,将所有主子表中数据与历史表中保存的当前数据进行比较,如果找到与当前数据一致的数据,则关联表增加一条当前变更版本号相关的当前数据对应的历史数据记录;如果该条数据部分内容变更,则增加一条新的历史记录,然后再在关联表中插入一条有效数据与当前数据对应的记录。然后再保存新数据。
上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (6)
1.一种历史数据存储管理方法,其特征在于包括:在关系数据库中存储包含一个或多个子表的主表,而且在历史表中关联主表及其子表,其中历史表中存储主表的开始版本号和结束版本号以及每个子表的开始版本号和结束版本号;在主表的数据变更后且在保存变更后的数据之前。
2.如权利要求1所述的历史数据存储管理方法,其特征在于还包括:分别判断由于本次数据变更而导致的主表记录以及相应子表中对应的多条记录的变化情况。
3.如权利要求2所述的历史数据存储管理方法,其特征在于还包括:使得主表记录以及相应子表中对应的多条记录中没有变化的项目所对应的结束版本号递增加一。
4.如权利要求2所述的历史数据存储管理方法,其特征在于还包括:在历史表中插入主表记录以及相应子表中对应的多条记录中存在变化的项目的新纪录,该新纪录中的开始版本号和结束版本号为相应子表的当前版本号。
5.如权利要求1或2所述的历史数据存储管理方法,其特征在于,历史表中还主表记录关键字。
6.如权利要求5所述的历史数据存储管理方法,其特征在于还包括:在读取历史数据时提供主表记录关键字和期望查找的变更状态所对应的结束版本号,从而根据主表记录关键字和期望查找的变更状态所对应的结束版本号在历史表中存储的主表记录关键字和开始版本号、结束版本号中进行检索,以找到对应的历史记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510451790.XA CN105095457B (zh) | 2015-07-28 | 2015-07-28 | 历史数据存储管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510451790.XA CN105095457B (zh) | 2015-07-28 | 2015-07-28 | 历史数据存储管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095457A true CN105095457A (zh) | 2015-11-25 |
CN105095457B CN105095457B (zh) | 2019-08-09 |
Family
ID=54575893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510451790.XA Active CN105095457B (zh) | 2015-07-28 | 2015-07-28 | 历史数据存储管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095457B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677889A (zh) * | 2016-01-30 | 2016-06-15 | 武汉大学 | 一种空间数据的局部更新、整体还原增量更新方法 |
CN107688648A (zh) * | 2017-08-31 | 2018-02-13 | 江西博瑞彤芸科技有限公司 | 一种数据记录方法 |
CN108197147A (zh) * | 2017-11-29 | 2018-06-22 | 中国联合网络通信集团有限公司 | 号卡数据库运维方法及装置 |
CN108829727A (zh) * | 2018-05-09 | 2018-11-16 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123059A1 (en) * | 2002-09-11 | 2006-06-08 | Michel Zamfiroiu | Method for organizing a digital database in a traceable form |
CN101593185A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 利用同步进行数据恢复的方法和系统 |
CN101794299A (zh) * | 2010-01-27 | 2010-08-04 | 浪潮(山东)电子信息有限公司 | 一种历史数据管理的增量定义、处理方法 |
CN102467547A (zh) * | 2010-11-16 | 2012-05-23 | 金蝶软件(中国)有限公司 | 历史数据存储方法及装置 |
CN102541952A (zh) * | 2010-12-29 | 2012-07-04 | 北大方正集团有限公司 | 一种基于数据库获取历史数据的方法及装置 |
-
2015
- 2015-07-28 CN CN201510451790.XA patent/CN105095457B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123059A1 (en) * | 2002-09-11 | 2006-06-08 | Michel Zamfiroiu | Method for organizing a digital database in a traceable form |
CN101593185A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 利用同步进行数据恢复的方法和系统 |
CN101794299A (zh) * | 2010-01-27 | 2010-08-04 | 浪潮(山东)电子信息有限公司 | 一种历史数据管理的增量定义、处理方法 |
CN102467547A (zh) * | 2010-11-16 | 2012-05-23 | 金蝶软件(中国)有限公司 | 历史数据存储方法及装置 |
CN102541952A (zh) * | 2010-12-29 | 2012-07-04 | 北大方正集团有限公司 | 一种基于数据库获取历史数据的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677889A (zh) * | 2016-01-30 | 2016-06-15 | 武汉大学 | 一种空间数据的局部更新、整体还原增量更新方法 |
CN107688648A (zh) * | 2017-08-31 | 2018-02-13 | 江西博瑞彤芸科技有限公司 | 一种数据记录方法 |
CN108197147A (zh) * | 2017-11-29 | 2018-06-22 | 中国联合网络通信集团有限公司 | 号卡数据库运维方法及装置 |
CN108197147B (zh) * | 2017-11-29 | 2021-02-09 | 中国联合网络通信集团有限公司 | 号卡数据库运维方法及装置 |
CN108829727A (zh) * | 2018-05-09 | 2018-11-16 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105095457B (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102129458B (zh) | 关系型数据库的存储方法及装置 | |
US10037355B2 (en) | Mechanisms for merging index structures in MOLAP while preserving query consistency | |
US8321390B2 (en) | Methods and apparatus for organizing data in a database | |
CN103049521B (zh) | 可实现多属性复合条件查询的虚拟表索引系统及方法 | |
CN105095457A (zh) | 历史数据存储管理方法 | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
CN106815267A (zh) | 数据存储方法和装置 | |
US8108400B2 (en) | Database segment searching | |
WO2016174171A1 (en) | Method and database computer system for performing a database query using a bitmap index | |
CN101763415B (zh) | 一种数据库的b树索引的生成方法及装置 | |
US8312050B2 (en) | Avoiding database related joins with specialized index structures | |
US8682872B2 (en) | Index page split avoidance with mass insert processing | |
CN103500183A (zh) | 一种基于多个相关字段组合索引存储结构及建立、查询与维护方法 | |
CN104424219A (zh) | 一种数据文件的管理方法及装置 | |
US20240152498A1 (en) | Data storage using vectors of vectors | |
CN102411632B (zh) | 基于链表的内存数据库页式存储方法 | |
CN104765754A (zh) | 数据存储方法及装置 | |
CN105183391B (zh) | 一种分布式数据平台下数据存储的方法和装置 | |
WO2016038749A1 (en) | A method for efficient one-to-one join | |
Santos et al. | Slowly changing dimensions specification a relational algebra approach | |
CN108427736A (zh) | 一种用于查询数据的方法 | |
CN105426506A (zh) | 一种海量动态数据管理方法 | |
CN104598652A (zh) | 一种数据库查询方法及装置 | |
CN109656947A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
JP6459669B2 (ja) | カラムストア型データベース管理システム |
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 |