CN1808433A - 一种快速安全的实时数据库访问方法 - Google Patents
一种快速安全的实时数据库访问方法 Download PDFInfo
- Publication number
- CN1808433A CN1808433A CN 200610002671 CN200610002671A CN1808433A CN 1808433 A CN1808433 A CN 1808433A CN 200610002671 CN200610002671 CN 200610002671 CN 200610002671 A CN200610002671 A CN 200610002671A CN 1808433 A CN1808433 A CN 1808433A
- Authority
- CN
- China
- Prior art keywords
- real
- data base
- time data
- record
- application program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000007689 inspection Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种快速安全的实时数据库访问方法,本发明采用共享标志区与信号量相结合的方法快速安全地访问实时数据库,为每一个需要访问实时数据库的应用程序中设置一条记录,该记录包含两项:实时数据库允许访问标志和新实时数据库标志;对实时数据库中的每一条(或每一组)记录都设置一个写操作信号灯。当需要写实时数据库的时候,写应用程序只有获得要写的那条记录的写操作信号灯,就可以对该记录进行写操作,可以有效避免各个应用程序之间发生冲突,提高操作效率。采用本发明所述方法可以克服现有技术的缺陷,在确保安全的情况下快速的访问实时数据库,提高实时数据库的访问效率。
Description
技术领域
本发明涉及自动化控制领域,尤其涉及基于内存的实时数据库访问方法。
背景技术
在自动化控制领域,通常使用基于内存的实时数据库。服务器中的所有任务共享这一个内存实时数据库,以达到快速访问的目的。目前对于基于内存实时数据库的共享访问通常采用以下几个方法来保证安全访问。
第一种,由一个应用程序独占实时数据库,所有对实时数据库的访问的请求都需要发送给该应用程序,由该应用程序完成实际的访问操作,然后再把访问的结果返回请求的应用程序。这种方法保证了对实时数据库的安全访问,但是该应用程序也成了***的瓶颈,造成实时数据库访问效率低下。
第二种,为实时数据库分别设置一个写实时数据库信号灯和若干个读实时数据库信号灯(为每一个需要读实时数据库的应用程序都设置一个读实时数据库信号灯)。当需要写实时数据库的时候,写应用程序只有在获得写实时数据库信号灯的时候才开始写,防止两个写应用程序同时写实时数据库。当需要读实时数据库的时候,读应用程序则只有在获得本应用程序的读实时数据库信号灯的时候才开始读。当需要在线更新实时数据库的时候,更新实时数据库的应用程序则先获得写实时数据库信号灯,然后获得所有应用程序的读实时数据库信号灯,停止对实时数据库的一切读写的操作之后,然后再对实时数据库进行更新,更新完毕则向所有的应用程序发送实时数据库更新的消息。
这种方法保证了对实时数据库的安全访问,并且所有读实时数据库的应用程序相互独立,不会互相影响。但是由于每次读写实时数据库都需要进行信号灯操作,进行***调用,效率比较低。同时,由于对分别写两条不同记录的写应用操作进行了互斥,降低了写操作的效率。
发明内容
本发明要解决的技术问题是提供一种实时数据库的访问方法,可以克服现有技术的缺陷,快速、安全地访问实时数据库。
为了解决上述技术问题,本发明提供了一种快速安全的实时数据库访问方法,其特征在于,设置一共享标志区,对需要访问实时数据库的应用程序设置记录,该记录包括实时数据库允许访问标志和新实时数据库标志,该方法包括更新数据库的过程,该过程分为以下步骤:
(a)将所有应用程序的数据库允许访问标志设置为禁止访问;
(b)在所有应用程序停止对数据库的读写操作后,更新实时数据库;
(c)然后置所有应用程序的新数据库标志,并将所有应用程序的数据库允许访问标志置为允许访问。
进一步地,上述方法可具有以下特点:该方法还包括连接实时数据库的过程,该过程分为以下步骤:
(i)查询应用程序的数据库允许访问标志,如果允许,则执行步骤(j),否则延时后继续执行步骤(i);
(j)检查所述应用程序的新数据库标志是否被设置,如果是继续执行下一步,否则连接成功,结束;
(k)重新映像实时数据库,清除新数据库标志,结束。
进一步地,上述方法可具有以下特点:对实时数据库中的每一条或每一组记录都设置一写操作信号灯,该方法包括应用程序写数据库的过程,该过程分为以下步骤:
(o)该应用程序连接实时数据库,如果此时允许操作,执行下一步;
(p)该应用程序请求获取被写记录的信号灯,如果成功,执行步骤(q),否则延时后继续执行步骤(p);
(q)对该记录进行写操作,写毕释放该记录的信号灯,结束。
进一步地,上述方法可具有以下特点:该方法还包括读数据库的过程,该过程分为以下步骤:
(u)连接实时数据库,如果此时允许操作,执行下一步;
(v)读取实时数据库。
进一步地,上述方法可具有以下特点:对每一个需要访问实时数据库的应用程序设置一条记录。
采用本发明所述方法,可以在确保安全的情况下快速的访问实时数据库,提高实时数据库的访问效率。
附图说明
图1是本发明实施例写操作流程图;
图2是本发明实施例读操作流程图;
图3是本发明实施例连接实时数据库操作流程图;
图4是本发明实施例更新操作流程图。
具体实施方式
通过对实时数据库访问行为的分析,发现对实时数据库主要有三种操作:读、写和更新。其中:
读操作指读取实时数据库中的数据,不会对实时数据库有任何影响,但是在实时数据库更新时需要停止对实时数据库的一切读操作;
写操作指对实时数据库中数据值的修改,不影响对实时数据库的读操作,但是对相同记录的写操作之间互斥,即不能同时写同一条记录。并且在实时数据库更新时需要停止对实时数据库的一切写操作;
更新操作是指对整个实时数据库数据的更新,需要向内存重新装载数据,影响所有的对实时数据库的操作,更新实时数据库之前需要停止对实时数据库的一切读写的操作。
本发明采用共享标志区与信号量相结合的方法快速安全地访问实时数据库。所做的设置和各种操作的规则如下:
1)设置一个共享标志区,在该标志区,每一个需要访问实时数据库的应用程序中都有一条记录,该记录包含两项:实时数据库允许访问标志和新实时数据库标志。
其中,每个应用程序的“实时数据库允许访问标志”用于标记该应用程序是否允许访问实时数据库,只有设置为允许访问时,该应用程序才可以进行读写操作,该实时数据库允许访问标志只能由实时数据库更新程序进行访问,其它应用程序则不能访问;
每个应用程序的“新实时数据库标志”用于标记实时数据库是否被更新,如果应用程序查询该新实时数据库标志被设置为有效,则需要进行实时数据库的重新映像操作,该新实时数据库标志由实时数据库更新程序进行设置,而由每个应用程序在对实时数据库重新映像后进行清除。
2)对实时数据库中的每一条记录(或每一组记录)都设置一个写操作信号灯。当需要写实时数据库的时候,写应用程序只有获得要写的那条记录的写操作信号灯,就可以对该记录进行写操作。
通过这两项措施,就可以完成对实时数据库的快速、安全的访问了。
下面分别具体介绍应用程序对实时数据的读操作、写操作和更新操作的具体流程。
图1是本发明写操作流程图,步骤如下:
步骤101,应用程序连接实时数据库,成功后执行下一步;
步骤102,该应用程序请求获取被写记录的信号灯,如果成功,执行步骤104,否则执行步骤103;
步骤103,延时后返回步骤102;
步骤104,该应用程序对该记录进行写操作,在此期间其它应用程序不能获取该记录的写操作信号灯,直到该应用程序写操作完成后,释放该记录的信号灯,结束。
写操作灯是由操作***来维护的,可以有效避免各个应用程序之间发生冲突。而通过对不同的记录分别设置信号灯,对分别写两条不同记录的写操作不会互斥,因而提高了写操作的效率。
图2是本发明读操作流程图,步骤如下:
步骤201,应用程序连接实时数据库,成功后执行下一步;
步骤202,该应用程序读取实时数据库。
现有技术中是为每个应用程序设置了一个读操作灯,而本实施例是用内存中的一个允许操作标志来替代的。因为读操作灯是操作***提供的功能,需要从用户模块改为***模式,对***内核进行操作,因此本发明方法效率更高,操作速率更快。
图3是本发明连接实时数据库操作的流程图,步骤如下:
步骤301,应用程序先到共享标志区查询本应用程序的实时数据库允许访问标志,如果该标志为允许访问,则执行步骤303,如果不允许,则执行步骤302;
步骤302,延时后返回步骤301;
步骤303,该应用程序检查本应用程序的新实时数据库标志是否被设置,如果是,执行下一步,否则结束;
步骤304,重新映像实时数据库,清除新实时数据库标志,结束。
图4是本发明更新操作流程图,步骤如下:
步骤401,应用程序进行更新操作时,先将共享标志区中所有应用程序的实时数据库允许访问标志设置为禁止访问;
步骤402,等待所有应用程序停止对实时数据库的读写操作,然后执行下一步;
步骤403,更新实时数据库;
步骤404,更新完成后,设置所有应用程序的新实时数据库标志;
步骤405,将所有应用程序的实时数据库允许访问标志设置为允许访问。
本发明在此基础上还可以做各种变换,比如仅对实时数据库中的每条记录设置写操作信号灯,或者,仅用共享标志区的标志取代读信号灯来实现更新时的禁止操作,都也可以达到快速读写实时数据库的目的。
Claims (5)
1、一种快速安全的实时数据库访问方法,其特征在于,设置一共享标志区,对需要访问实时数据库的应用程序设置记录,该记录包括实时数据库允许访问标志和新实时数据库标志,该方法包括更新数据库的过程,该过程分为以下步骤:
(a)将所有应用程序的数据库允许访问标志设置为禁止访问;
(b)在所有应用程序停止对数据库的读写操作后,更新实时数据库;
(c)然后置所有应用程序的新数据库标志,并将所有应用程序的数据库允许访问标志置为允许访问。
2、如权利要求1所述的方法,其特征在于,该方法还包括连接实时数据库的过程,该过程分为以下步骤:
(i)查询应用程序的数据库允许访问标志,如果允许,则执行步骤(j),否则延时后继续执行步骤(i);
(j)检查所述应用程序的新数据库标志是否被设置,如果是继续执行下一步,否则连接成功,结束;
(k)重新映像实时数据库,清除新数据库标志,结束。
3、如权利要求1或2所述的方法,其特征在于,对实时数据库中的每一条或每一组记录都设置一写操作信号灯,该方法包括应用程序写数据库的过程,该过程分为以下步骤:
(o)该应用程序连接实时数据库,如果此时允许操作,执行下一步;
(p)该应用程序请求获取被写记录的信号灯,如果成功,执行步骤(q),否则延时后继续执行步骤(p);
(q)对该记录进行写操作,写毕释放该记录的信号灯,结束。
4、如权利要求1或2所述的方法,其特征在于,该方法还包括读数据库的过程,该过程分为以下步骤:
(u)连接实时数据库,如果此时允许操作,执行下一步;
(v)读取实时数据库。
5、如权利要求1所述的方法,其特征在于,是对每一个需要访问实时数据库的应用程序设置一条记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100026717A CN100428232C (zh) | 2006-01-26 | 2006-01-26 | 一种快速安全的实时数据库访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100026717A CN100428232C (zh) | 2006-01-26 | 2006-01-26 | 一种快速安全的实时数据库访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1808433A true CN1808433A (zh) | 2006-07-26 |
CN100428232C CN100428232C (zh) | 2008-10-22 |
Family
ID=36840332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100026717A Active CN100428232C (zh) | 2006-01-26 | 2006-01-26 | 一种快速安全的实时数据库访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100428232C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706815B (zh) * | 2009-12-03 | 2012-06-27 | 北京和利时***工程有限公司 | 数据库设备和*** |
CN101261639B (zh) * | 2007-03-08 | 2012-12-12 | Sap股份公司 | 数据库对象的共享 |
CN102968485A (zh) * | 2012-11-26 | 2013-03-13 | 国电南瑞科技股份有限公司 | 一种基于虚拟域的实时数据库菜单项展示方法 |
CN104932925A (zh) * | 2015-07-06 | 2015-09-23 | 许继集团有限公司 | 一种电网监控***实时库更新方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
JP3593366B2 (ja) * | 1994-09-19 | 2004-11-24 | 株式会社日立製作所 | デ−タベ−ス管理方法 |
CN100371931C (zh) * | 2003-08-13 | 2008-02-27 | 华为技术有限公司 | 一种实现对数据库快速访问的方法 |
-
2006
- 2006-01-26 CN CNB2006100026717A patent/CN100428232C/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261639B (zh) * | 2007-03-08 | 2012-12-12 | Sap股份公司 | 数据库对象的共享 |
CN101706815B (zh) * | 2009-12-03 | 2012-06-27 | 北京和利时***工程有限公司 | 数据库设备和*** |
CN102968485A (zh) * | 2012-11-26 | 2013-03-13 | 国电南瑞科技股份有限公司 | 一种基于虚拟域的实时数据库菜单项展示方法 |
CN102968485B (zh) * | 2012-11-26 | 2016-08-10 | 国电南瑞科技股份有限公司 | 一种基于虚拟域的实时数据库菜单项展示方法 |
CN104932925A (zh) * | 2015-07-06 | 2015-09-23 | 许继集团有限公司 | 一种电网监控***实时库更新方法 |
CN104932925B (zh) * | 2015-07-06 | 2018-08-03 | 许继集团有限公司 | 一种电网监控***实时库更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100428232C (zh) | 2008-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102741843B (zh) | 从数据库中读取数据的方法及装置 | |
CN102591964B (zh) | 数据读写分离机制的实现方法和装置 | |
CN1222951C (zh) | 闪速存储器的实时处理方法 | |
CN100347692C (zh) | San***中虚拟化智能控制器的实现方法 | |
CN1477518A (zh) | 管理文件***滤波器驱动器的文件名的***和方法 | |
CN101046821A (zh) | 通用数据库操纵器 | |
CN101042703A (zh) | 使用数据库管理***管理文件***的数据的方法 | |
CN1829964A (zh) | 用于处理消息队列的方法、设备和计算机程序 | |
CN109857566B (zh) | 一种内存读写过程的资源锁定方法 | |
CN1448867A (zh) | 一种统一访问数据库***的方法 | |
CN1361489A (zh) | 一种日志信息的自动循环存储方法和*** | |
CN1920796A (zh) | 用于将文件的数据存储在存储块中的高速缓存方法及*** | |
CN1924816A (zh) | 提高多核***访问临界资源速度的方法和装置 | |
CN1808433A (zh) | 一种快速安全的实时数据库访问方法 | |
CN1828550A (zh) | 一种内存访问信息实时捕获装置及访存信息捕获方法 | |
CN1752916A (zh) | 磁盘阵列的控制器及其工作方法 | |
CN101075220A (zh) | 一种总线仲裁仿真装置和方法 | |
CN1862542A (zh) | 共享对象属性的方法 | |
CN1684049A (zh) | 信息存储装置,信息存储方法以及信息存储处理程序产品 | |
CN1295600C (zh) | Windows程序异常捕获及定位方法 | |
CN1845087A (zh) | 中断处理方法及中断处理装置 | |
CN1664791A (zh) | 一种虚拟存储模型及其方法 | |
CN1946035A (zh) | 一种网元数据配置管理的方法及网元 | |
CN1859461A (zh) | 一种基于共享的参数表实时刷新方法和*** | |
CN1581100A (zh) | 一种用于网络处理器的数据老化方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211122 Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Helishi system integration Co.,Ltd. Address before: 100096, No. 10, building materials Road, Haidian District, Beijing, Xisanqi Patentee before: BEIJING HOLLYSYS Co.,Ltd. |
|
TR01 | Transfer of patent right |