CN100369038C - 一种实时数据库事务操作的实现方法 - Google Patents

一种实时数据库事务操作的实现方法 Download PDF

Info

Publication number
CN100369038C
CN100369038C CNB2005100113477A CN200510011347A CN100369038C CN 100369038 C CN100369038 C CN 100369038C CN B2005100113477 A CNB2005100113477 A CN B2005100113477A CN 200510011347 A CN200510011347 A CN 200510011347A CN 100369038 C CN100369038 C CN 100369038C
Authority
CN
China
Prior art keywords
data
memory area
interface
memory block
database
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.)
Expired - Fee Related
Application number
CNB2005100113477A
Other languages
English (en)
Other versions
CN1652111A (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.)
Jiangsu Dunchao Electronic Technology Co.,Ltd.
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2005100113477A priority Critical patent/CN100369038C/zh
Publication of CN1652111A publication Critical patent/CN1652111A/zh
Application granted granted Critical
Publication of CN100369038C publication Critical patent/CN100369038C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种实时数据库事务操作的实现方法,将数据库中的每一张表都分别对应一主用存储区和一备用存储区,主用存储区存放生效的数据,备用存储区存放临时的数据,主用存储区和备用存储区大小结构相同;根据数据库接口和表的关联关系,将与所述数据库接口相关联的各个表数据从主用存储区完全复制到备用存储区,在备用存储区进行数据操作,当所有的数据操作都完成且都正确完成后,将原主用存储区作为切换后的备用存储区,将原备用存储区作为切换后的主用存储区。本发明实现了一种开销比较小的实时数据库访问的事务操作,简单有效地保证了实时应用在更新实时数据库时数据的完整性和正确性。

Description

一种实时数据库事务操作的实现方法
技术领域
本发明涉及嵌入式实时系统中数据的完整性问题,特别是涉及实时应用对实时数据库进行数据更新时,能有效解决数据完整性问题的实时数据库事务操作实现方法。
背景技术
实时数据库是嵌入式实时系统常用的一种数据管理方式。和通用的数据库一样,实时数据库通过嵌入式软件内部的数据库管理系统DBMS(databasemanagement system)管理,同时实时数据库也具有三层架构的体系结构。
外模式(用户模式)是用户所看到的数据视图。在实时数据库库中,用户是指对数据库进行访问的实时应用。用户所看到的数据视图是一组由DBMS规定的访问实时数据库的方法。这些方法通常称作数据库接口。
概念模式(公共逻辑模式)是数据库的整体视图。在实时数据库中,表现为数据库中所有的表以及表之间的各种关联关系。数据库中管理的全部资源都通过表来描述。
内模式(存储模式),是数据库在计算机上的物理表示。在实时数据库中,数据库中的数据一般都存储在内存中。本发明介绍的事务操作方式的实现基础就是按照本发明介绍的方法实现数据库数据的存储。
数据库管理系统DBMS负责这三类模式之间的映射,图1所示就是实时数据库的三类模式之间的关系。最上层是外模式10,表现为一系列接口:接口1、接口2、接口3......。用户通过这些接口实现对数据库的访问。中间一层是概念模式20:表现为一系列表:表A、表B、表C......。用来描述数据库中所管理的资源和各个资源之间的关系。下面一层是内模式30,表现为一系列的数据区,用来存放数据。各个模式之间由DBMS实现映射。
外模式10到概念模式20的映射表现为一个数据库接口可以和一个或者多个数据库表关联,这种关联关系在实时数据库中,由数据库接口实现模块来完成,把用户对外模式的访问关系,映射为对概念模式中表的各种操作。这种映射关系如图2所示。图中接口1和表A、表B、表C关联。接口2和表B,表D关联。
概念模式20到内模式30的映射,是实时数据库实现的核心内容,不同的系统实现的方式差异都比较大,这个映射把对概念模式30中表的各种操作映射为物理数据的读或者写。
根据实时应用对数据库访问的性质,可以把对数据库的访问分为两种:一种是只读访问,上层应用模块只对数据库进行查询操作,不修改数据。另外一种是读写访问,上层应用模块要对数据库中的数据进行增删和修改。与这两种访问形式对应,数据库接口也分为只读访问接口和读写访问接口两种。接口中的事务问题主要是指发生在数据库读写访问接口实现中的问题。
一个数据库读写访问接口可能涉及到逻辑模式中的几张表,实时应用调用数据库读写接口时依次对这些表进行读写操作。接口调用要求具有事务性,要么所有的数据操作成功;要么所有的数据操作失败,数据能够保持在接口调用前的状态。通常的事务处理方式是填写操作日志,如果需要回滚,则根据日志中的内容进行逆操作。这种作法,需要开辟专门的缓存来存放日志消息。另外要求所有操作具有可逆性。越复杂的接口需要的开销越大。日志中所记载的内容是以表记录为单位的。比如修改了一条表记录,则要在操作日志中增加一条描述上述操作的日志记录。回滚时通过操作日志中的日志记录来恢复数据库的表记录。
发明内容
本发明所要解决的技术问题是提供一种实时数据库事务操作的实现方法,解决现有技术因数据库接口相对比较复杂,使数据库中数据的事务操作开销较大的技术问题。
为达到上述目的,本发明提供了一种实时数据库事务操作的实现方法,其特点在于,数据库中的每一张表都分别对应一主用存储区和一备用存储区,主用存储区存放生效的数据,备用存储区存放临时的数据,主用存储区和备用存储区大小结构相同;根据数据库接口和表的关联关系,将与所述数据库接口相关联的各个表数据从主用存储区完全复制到备用存储区,将与所述数据库接口相关联的各个表的数据在备用存储区进行数据操作,当所述数据库接口的所有的数据操作都完成且所有的数据操作都正确完成,对所述与该所述数据库接口相关联的各个表执行主备存储区的切换操作,将原主用存储区作为切换后的备用存储区,将原备用存储区作为切换后的主用存储区,从而使得所述所述数据库接口的所有数据操作同时生效,实现了所述数据库接口的事务操作。
上述的方法,其特点在于,所述主用存储区和备用存储区是两块相同大小相同结构的内存。
上述的方法,其特点在于,当在所述将与所述数据库接口相关联的各个表的数据在备用存储区进行数据操作的步骤中,如果有一个所述数据操作失败,则停止执行其余的所述数据操作,直接返回数据操作失败。
上述的方法,其特点在于,所述主备存储区的切换,是通过主用存储区指针和主用存储区指针的指向交换来完成。
本发明的技术效果在于:
本发明提供的的事务处理方法简洁有效地解决了实时数据库的事务处理问题:
1)本发明提供的这种实现方法,不需要写日志。实现方式非常简单。并且事务操作所需要的花销和接口实现的复杂程度没有关系。只和接口所关联的表的多少以及大小相关。而一般实时系统每个表的数据量都不是很大。但是接口的实现却有可能极其复杂。在这种情况下本发明的这种事务实现方法就是一种非常好的选择。
2)本发明针对嵌入式实时数据库数据量相对较少,数据库接口相对比较复杂的特点,提出一种简洁有效的实时应用更新数据库中数据的事务操作方法。使得数据库可以以较小的开销实现接口事务操作。保证数据库中数据的正确性和完整性。
下面结合附图进一步详细说明本发明的具体实施例。
附图说明
图1是实时数据库的三层体系结构图;
图2是实时数据库外模式到概念模式的映射图;
图3是本发明实时数据库概念模式到内模式的映射图;
图4是本发明“接口事务开始”动作的描述示意图;
图5是本发明“备区数据更新”动作的描述示意图;
图6是本发明“数据更新成功提交”动作的描述示意图;
图7是本发明“数据更新失败返回”情形的描述示意图;
图8是本发明方法的步骤流程图。
具体实施方式
本发明主要是针对嵌入式实时数据库数据量相对较少,数据库接口相对比较复杂的特点提出的。
概念模式到内模式的映射,是实时数据库实现的核心内容,不同的系统实现的方式差异都比较大,这个映射把对概念模式中表的各种操作映射为物理数据的读或者写。本发明使用的实现方式如图3所示。图中每个表对应有两块内存301、302,对数据库表A的各种操作最终表现为对这两块内存301、302的操作。这种内模式的实现方法是事务实现的基础,也是本发明的主要内容之一。
本发明的关键技术如下:
主备机制的数据库存储模式:对于数据库中的每一张表,内存中都有两块相同大小相同结构的内存与之对应。两者根据在使用中扮演的角色不同具有不同的地位,一个被称作主区(主用存储区)存放生效的数据,一个被称做备区(备用存储区)存放临时的数据,主区和备区由相应的标识来指定。数据库提供二者互换以及主区向备区复制的功能。
数据更新是否生效以表为单位:接口对于表数据的修改是以表为单位的,如果接口对数据的修改满足生效条件,则对整个表做的所有修改同时生效。否则所有修改都不生效。这一点和一般的数据库以记录为单位不同。接口的事务性通过其关联的所有表的操作生效或者操作不生效来实现。
本发明的实现方式:
图8是本发明方法的步骤流程图;如图所示,本发明方法主要包括如下步骤:
步骤801,接口事务开始;
步骤802,备区数据更新;
步骤803,判断是否更新成功,是则执行步骤804,否则执行步骤805;
步骤804,数据更新成功提交;
步骤805,数据更新失败返回。
数据库对实时应用提供事务处理的功能通过对数据更新成功和数据更新失败的不同处理方式来实现。数据库接口在实现上层调用时,要首先执行“接口事务开始”,“备区数据更新操作”两个动作。如果“备区数据更新操作”成功则执行“数据更新成功提交”这个动作。如果“备区数据更新操作”失败,则不再执行其他动作直接返回操作失败。以下就是这几个动作所完成的工作。
接口事务开始:根据接口和表的关联关系将所有与对应接口相关联的表的主区数据完全复制到备区,操作完成之后,备区和主区的数据完全相同。图4是“接口事务开始”动作的描述,在这个动作中,接口1关联的所有表(这里是表A和表B)都执行用主区数据覆盖备区数据的操作(简称主备复制)。这个动作由图4中带阴影部分的两个箭头401、402所代表。
备区数据更新:根据接口的要求将相关联的各个表的数据在备区进行更新。这些操作是根据上层应用的要求来完成的。图5是“备区数据更新”动作的描述,在这个动作中,接口1关联的表(这里是表A和表B)根据接口的要求对相应表的备区数据进行更新。这个动作由图中带阴影部分的四个箭头501、502、503、504所代表。其中外模式10和概念模式20之间的两个箭头501、502代表数据库接口实现模块把接口的实现分解成对表的操作。概念模式20到内模式30之间的两个箭头503、504代表对数据库表的操作最终表现为对内模式备数据区的数据进行更新操作。
数据更新成功提交:当接口所要求的所有的数据操作都正确完成,数据满足生效条件,对相应接口关联的各个表执行主备区切换操作,对于相应接口关联的各个表原来的备区变成主区,原来的主区变成备区,使得所有的操作同时生效。图6是“数据更新成功提交”动作的描述,在这个动作中,接口1关联的表(这里是表A和表B)其概念模式到内模式之间的对应关系发生改变,原来的备区被标识为主区,原来的主区被标识为备区。图中表现为两个箭头的指向发生了变化。这种改变实现了接口操作生效。
数据更新失败返回:如果在备区数据更新的过程中,某些数据不合法导致某项更新失败,直接返回更新操作失败。图7是“数据更新失败返回”情形的描述,在这种情况下,接口1关联的表(这里是表A和表B)其概念模式到内模式之间的对应关系保持原样,这样对备区所做的各种修改没有生效,从而无须特别的回滚操作就保证了接口更新失败的事务性。
本发明的效果分析:
实时数据库的事务处理具有比较广泛的应用场合。
为了实现事务操作,一般的数据库需要写非常庞大的日志来记载接口中所执行过的操作,这种操作既耗费CPU处理时间也耗费内存空间。尤其当接口实现比较复杂的时候这种情形就更加明显。
本发明提供的这种实现方法,不需要写日志。实现方式非常简单。并且事务操作所需要的花销和接口实现的复杂程度没有关系。只和接口所关联的表的多少以及大小相关。而一般实时系统每个表的数据量都不是很大。但是接口的实现却有可能极其复杂。在这种情况下专利中的这种事务实现方法就是一种非常好的选择。
本发明提供的的事务处理方法简洁有效地解决了实时数据库的事务处理问题。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被本发明的专利范围所涵盖。

Claims (4)

1.一种实时数据库事务操作的实现方法,其特征在于,所述方法包括以下步骤:
将数据库中的每一张表都分别对应一主用存储区和一备用存储区,主用存储区存放生效的数据,备用存储区存放临时的数据,主用存储区和备用存储区大小结构相同;
根据数据库接口和表的关联关系,将与所述数据库接口相关联的各个表数据从主用存储区完全复制到备用存储区,将与所述数据库接口相关联的各个表的数据在备用存储区进行数据操作,当所述数据库接口的所有的数据操作都完成且所有的数据操作都正确完成,对所述与所述数据库接口相关联的各个表执行主备存储区的切换操作,将原主用存储区作为切换后的备用存储区,将原备用存储区作为切换后的主用存储区,从而使得所述数据库接口的所有数据操作同时生效,实现了所述数据库接口的事务操作。
2.根据权利要求1所述的方法,其特征在于,所述主用存储区和备用存储区是两块相同大小相同结构的内存。
3.根据权利要求1或2所述的方法,其特征在于,
当在所述将与所述数据库接口相关联的各个表的数据在备用存储区进行数据操作的步骤中,如果有一个所述数据操作失败,则停止执行其余的所述数据操作,直接返回数据操作失败。
4.根据权利要求1所述的方法,其特征在于,所述主备存储区的切换,是通过主用存储区指针和备用存储区指针的指向交换来完成。
CNB2005100113477A 2005-02-24 2005-02-24 一种实时数据库事务操作的实现方法 Expired - Fee Related CN100369038C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100113477A CN100369038C (zh) 2005-02-24 2005-02-24 一种实时数据库事务操作的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100113477A CN100369038C (zh) 2005-02-24 2005-02-24 一种实时数据库事务操作的实现方法

Publications (2)

Publication Number Publication Date
CN1652111A CN1652111A (zh) 2005-08-10
CN100369038C true CN100369038C (zh) 2008-02-13

Family

ID=34875539

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100113477A Expired - Fee Related CN100369038C (zh) 2005-02-24 2005-02-24 一种实时数据库事务操作的实现方法

Country Status (1)

Country Link
CN (1) CN100369038C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169418B (zh) * 2010-12-03 2013-06-26 北京握奇数据系统有限公司 一种资源受限设备和数据访问方法
US9104690B2 (en) 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
CN103186564A (zh) * 2011-12-28 2013-07-03 深圳市金蝶中间件有限公司 数据对象的处理方法及系统
CN102750317B (zh) * 2012-05-02 2015-01-21 华为技术有限公司 数据持久化处理方法、装置及数据库系统
CN107122364B (zh) * 2016-02-25 2021-05-18 华为技术有限公司 数据操作方法和数据管理服务器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1437348A (zh) * 2002-02-04 2003-08-20 深圳市中兴通讯股份有限公司 通信系统中主备板数据实时同步的方法
CN1454349A (zh) * 2000-06-07 2003-11-05 处理存储器有限公司 主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统
JP2004133598A (ja) * 2002-10-09 2004-04-30 Fujitsu Ltd 複数データベースの二重化制御プログラム
JP2004334460A (ja) * 2003-05-07 2004-11-25 Hitachi Ltd データベースのスナップショット方法及びシステム
CN1561022A (zh) * 2004-03-04 2005-01-05 中兴通讯股份有限公司 一种内存数据库主备同步的方法
CN1577334A (zh) * 2003-06-30 2005-02-09 微软公司 事务相容的写时复制数据库

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1454349A (zh) * 2000-06-07 2003-11-05 处理存储器有限公司 主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统
CN1437348A (zh) * 2002-02-04 2003-08-20 深圳市中兴通讯股份有限公司 通信系统中主备板数据实时同步的方法
JP2004133598A (ja) * 2002-10-09 2004-04-30 Fujitsu Ltd 複数データベースの二重化制御プログラム
JP2004334460A (ja) * 2003-05-07 2004-11-25 Hitachi Ltd データベースのスナップショット方法及びシステム
CN1577334A (zh) * 2003-06-30 2005-02-09 微软公司 事务相容的写时复制数据库
CN1561022A (zh) * 2004-03-04 2005-01-05 中兴通讯股份有限公司 一种内存数据库主备同步的方法

Also Published As

Publication number Publication date
CN1652111A (zh) 2005-08-10

Similar Documents

Publication Publication Date Title
US8868577B2 (en) Generic database manipulator
US7971175B2 (en) Method and system for implementing cached parameterized cells
US7698319B2 (en) Database system management method, database system, database device, and backup program
KR100689762B1 (ko) 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
US20060206507A1 (en) Hierarchal data management
US5926810A (en) Universal schema system
JPH04337850A (ja) データベース・トランザクション及び照会処理システム
CN102880704A (zh) 一种新型的并发内存数据组织与访问方法
CN108304463A (zh) 一种用于数据库的数据管理方法及其数据库应用组件
JPH10501086A (ja) 記憶プレーン編成及びそれに基づく記憶システム
CN104021145A (zh) 一种混合业务并发访问的方法和装置
CN100369038C (zh) 一种实时数据库事务操作的实现方法
CN103577513A (zh) 藉延迟节点实例化以缓存xml信息集的系统和/或方法
US5884311A (en) Method and system for dynamically configuring a relational database
CN101714167B (zh) 一种访问单文件数据库的方法及装置
CN106155832A (zh) 一种数据恢复的方法、装置及Android设备
CN101339527B (zh) 影子内存的备份方法及装置
CN101458655A (zh) 内存管理方法、系统及内存控制装置
US7464095B2 (en) Adaptive data architecture for information management systems
CN102169418B (zh) 一种资源受限设备和数据访问方法
EP4016320A1 (en) A hybrid shadow paging for storing a database
CN102375892B (zh) 大容量数据库卡的事务管理方法、大容量数据库卡及系统
CN111104373A (zh) 一种数据库性能优化方法
CN109002401A (zh) 基于动态缓冲的虚拟机磁盘复制过程读取方法及装置
US20050108226A1 (en) Uniquely identifying an object before it is stored in a database

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NANJING YUHUATAI INTELLECTUAL PROPERTY CENTER

Free format text: FORMER OWNER: ZTE CORPORATION

Effective date: 20140801

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518057 SHENZHEN, GUANGDONG PROVINCE TO: 210012 NANJING, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140801

Address after: 210012 A building, 12, blue valley mansion, No. 106 software Avenue, Yuhuatai District, Jiangsu, Nanjing

Patentee after: Nanjing Yuhuatai Intellectual Property Center

Address before: 518057 Nanshan District science and Technology Industrial Park, Guangdong high tech Industrial Park, ZTE building

Patentee before: ZTE Corporation

ASS Succession or assignment of patent right

Owner name: JIANGSU DUNCHAO ELECTRONIC TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: NANJING YUHUATAI INTELLECTUAL PROPERTY CENTER

Effective date: 20140819

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 210012 NANJING, JIANGSU PROVINCE TO: 210000 CHANGZHOU, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140819

Address after: 210000 Jiangsu province Changzhou City New District Chang Cheng Road, No. 888

Patentee after: Jiangsu Dunchao Electronic Technology Co.,Ltd.

Address before: 210012 A building, 12, blue valley mansion, No. 106 software Avenue, Yuhuatai District, Jiangsu, Nanjing

Patentee before: Nanjing Yuhuatai Intellectual Property Center

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080213

Termination date: 20170224

CF01 Termination of patent right due to non-payment of annual fee