CN102779154A - 数据库及其建立方法、数据检索方法 - Google Patents
数据库及其建立方法、数据检索方法 Download PDFInfo
- Publication number
- CN102779154A CN102779154A CN2012101679716A CN201210167971A CN102779154A CN 102779154 A CN102779154 A CN 102779154A CN 2012101679716 A CN2012101679716 A CN 2012101679716A CN 201210167971 A CN201210167971 A CN 201210167971A CN 102779154 A CN102779154 A CN 102779154A
- Authority
- CN
- China
- Prior art keywords
- database
- record name
- recording mechanism
- bivariate
- recording
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了数据库及其建立方法、数据检索方法。该建立方法包括:将待纳入该数据库的数据形成为多个二维表,每个二维表均具有一唯一的名称,每个二维表均包括一二维数组、多个第一记录名以及多个第二记录名,每个第一记录名分别具有一第一记录号,每个第二记录名分别具有一第二记录号,每个二维表的二维数组的各个数组元素与该二维表的第一记录名和第二记录名的各个组合一一对应,每个数组元素的第一下标和第二下标分别为该数组元素对应的第一记录名的第一记录号和对应的第二记录名的第二记录号;建立而得的该数据库包括该多个二维表。本发明利用简单的数据结构以及较少的系统代码提高了数据的存取速度,由此提高了整个系统的性能及稳定性。
Description
技术领域
本发明涉及一种数据库实现技术,特别是涉及一种嵌入式系统中的数据库及其建立方法以及该数据库的数据检索方法。
背景技术
数据库负责存储系统中的各种数据,以及提供存取数据的接口等功能。
目前主流的关系数据库商业产品都支持上述功能,例如Oracle(甲骨文公司的一款关系数据库管理系统)。但是由于嵌入式系统在时间和空间上的资源有限,因此不可能将需要消耗大量资源和空间的大型业务数据库系统,例如Sybase(Sybase公司的数据库产品)、Oracle等部署在嵌入式设备上。而其它的嵌入式实时数据库,如Berkeley DB(一种开源的嵌入式数据库管理系统)等,由于需要对磁盘进行操作,因此会影响系统的实时性。
而SQLite(一种开源的嵌入式数据库)虽然实现了数据库系统中的大部分特征,例如支持视图、触发器、事务管理等,但是这些功能对于某些小型的嵌入式设备而言根本不需要,因此不必要地增加了对有限资源的占用。
发明内容
本发明要解决的技术问题是为了克服现有技术中的嵌入式数据库或是会影响系统的实时性,或是功能过于庞杂、占用系统资源过多的缺陷,提供一种利用简单的数据结构以及较少的系统代码来描述前台业务的数据结构及数据联系,从而提高了数据的存取速度,由此提高了整个系统的性能及稳定性的数据库及其建立方法,以及该数据库的数据检索方法。
本发明是通过下述技术方案来解决上述技术问题的:
一种数据库的建立方法,其特点在于,该建立方法包括:
将待纳入该数据库的数据形成为多个二维表,每个二维表均具有一唯一的名称,每个二维表均包括一二维数组、多个第一记录名以及多个第二记录名,每个第一记录名分别具有一第一记录号,每个第二记录名分别具有一第二记录号,每个二维表的二维数组的各个数组元素与该二维表的第一记录名和第二记录名的各个组合一一对应,每个数组元素的第一下标和第二下标分别为该数组元素所对应的第一记录名的第一记录号和所对应的第二记录名的第二记录号;建立而得的该数据库包括该多个二维表。
较佳地,该多个二维表顺序存储。
较佳地,每个二维表的第一记录名以及第二记录名均以哈希表形式存储。
本发明还提供了一种通过如上所述的数据库的建立方法建立而得的数据库。
较佳地,该数据库运行于嵌入式系统中。
本发明还提供了一种如上所述的数据库的数据检索方法,该数据检索方法包括:
S1、从该多个二维表中检索出名称与一待检索的目标名称相匹配的二维表;
S2、在S1中检索出的该二维表中,从多个第一记录名中检索出与一待检索的第一目标记录名相匹配的第一记录名;
S3、获得S2中检索出的该第一记录名的第一记录号;
S4、在S1中检索出的该二维表中,从多个第二记录名中检索出与一待检索的第二目标记录名相匹配的第二记录名;
S5、获得S4中检索出的该第二记录名的第二记录号;
S6、将S1中检索出的该二维表的二维数组中第一下标为S3中获得的该第一记录号且第二下标为S5中获得的该第二记录号的数组元素作为检索结果输出。
本发明的积极进步效果在于:
1、利用简单的数据结构和较少的系统代码便实现了数据库的功能,实现简单,系统开销较小。
2、提高了数据库的存取效率。本发明中利用哈希表来定位二维数组的两个下标,此方法简单直接,能够极大地加快检索速度。
3、提高了数据库的稳定性。本发明的该数据库利用多个相互独立的二维表来存储数据,因此在实际使用中可以针对不同的应用模块建立不同的二维表,而每个二维表的操作互不影响。
附图说明
图1为本发明的该数据库的一实施例中的数据检索方法的流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
本发明的该数据库的建立方法主要包括以下步骤:
首先,定义该数据库。包括定义该数据库的名称,设计该数据库的缓存位置以及该数据库的大小等等。
然后,定义多个二维表(其具体的数据结构将在下文中进行详细说明),这些二维表将用于存储所有待纳入该数据库的数据。包括定义每个二维表的名称,检查这些名称的唯一性,定义各个二维表中的数据内容的最大长度、最大的第一记录号以及最大的第二记录号,接着将这些二维表顺序存储于上述设计好的缓存位置处。
最后,将待纳入该数据库中的所有数据填入这些二维表中。
接下来,对各个二维表的具体数据结构进行说明。
表1便为一二维表的结构示意图。参考表1所示,每个二维表均包括一二维数组、多个第一记录名以及多个第二记录名。
第一记录名1 | 第一记录名2 | ...... | 第一记录名n | |
第二记录名1 | 数据内容 | 数据内容 | ...... | 数据内容 |
第二记录名2 | 数据内容 | 数据内容 | ...... | 数据内容 |
...... | ....... | ...... | ...... | |
第二记录名n | 数据内容 | 数据内容 | ...... | 数据内容 |
表1
每个第一记录名分别具有一第一记录号,例如表1中的各个第一记录名的第一记录号便分别为1,2……n;同样地,每个第二记录名也分别具有一第二记录号,例如表1中的各个第二记录名的第二记录号便分别为1,2……n。
该二维数组的各个数组元素的值便分别为表1中的各个数据内容,由表1可以清楚地看出,各个数组元素是与该第一记录名和该第二记录名的各个组合一一对应的。若将每个数组元素的第一下标和第二下标分别定义为该数组元素所对应的那个第一记录名的第一记录号和该数组元素所对应的那个第二记录名的第二记录号,则根据第一记录号与第二记录号的任意组合,便能够迅速地定位到该组合所对应的数组元素,由此便能够迅速地将该数组元素的值,即表1中相应位置处的数据内容作为检索结果输出。
以下,以表2所示的一个具体的二维表为例进行说明,该二维表的名称为“学生信息”。
性别 | 年龄 | |
张三 | 男 | 20 |
李四 | 女 | 21 |
表2
在该二维表中,包括有两个第一记录名,分别为“性别”和“年龄”,“性别”这一第一记录名具有一值为“1”的第一记录号,表征数据内容部分的第一列,“年龄”这一第一记录名具有一值为“2”的第一记录号,表征数据内容部分的第二列。类似地,该二维表包括有两个第二记录名,分别为“张三”和“李四”,“张三”这一第二记录名具有一值为“1”的第二记录号,表征数据内容部分的第一行,“李四”这一第二记录名具有一值为“2”的第二记录号,表征数据内容部分的第二行。
而该二维表的二维数组的数组元素则分别为“男”、“20”、“女”、“21”,这四个数组元素所对应的四对下标则分别为[1,1]、[2,1]、[1,2]、[2,2],其中这四对下标是以第一记录号在先、第二记录号在后的顺序排列的,当然,以第二记录号在先、第一记录号在后的顺序排列也是可行的。另外,在本发明中,第一记录名与第二记录名的地位完全是对等的,因此也完全可以将它们二者的位置对换。
在本发明中,第一记录名以及第二记录名均可以以哈希表形式存储,以利用哈希表检索高效的优势。
具体地,当第一记录名和第二记录名的实际内容为字符串时,通常是先将这样的字符串转换为一个整型的键值,然后再将转换获得的键值与原先的字符串对应存储。这样在查找时,对于一个待查找的字符串,只要计算出其键值,便可以迅速地由该键值查找出该键值所对应的实际字符串。
本发明的该数据库由于利用了二维数组下标定位的简便以及哈希表检索的高效,既无需消耗大量资源和空间,也无需对磁盘进行操作,另外也适当地规避了一些过于复杂的功能,因此将尤其适用于被应用在嵌入式系统中。
以下,仅以表2所示的情况为例对本发明的该数据库的数据检索方法进行说明。假设需要检索学生“张三”的年龄,则此时该检索方法包括以下步骤:
步骤100,由于需要检索的是某一学生的年龄信息,而包含该年龄信息的二维表只能是“学生信息”表,因此以“学生信息”为目标名称从各个二维表中检索出名称为“学生信息”的该二维表,即表2。
步骤101,以“年龄”为第一目标记录名从表2的两个第一记录名中检索出“年龄”这一第一记录名。
步骤102,获得“年龄”这一第一记录名的第一记录号“2”。
步骤103,以“张三”为第二目标记录名从表2的两个第二记录名中检索出“张三”这一第二记录名。
步骤104,获得“张三”这一第二记录名的第二记录号“1”。
步骤105,从表2的二维数组中获得下标为[2,1]的数组元素,即“20”,然后将“20”作为“张三”的年龄输出。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (6)
1.一种数据库的建立方法,其特征在于,该建立方法包括:
将待纳入该数据库的数据形成为多个二维表,每个二维表均具有一唯一的名称,每个二维表均包括一二维数组、多个第一记录名以及多个第二记录名,每个第一记录名分别具有一第一记录号,每个第二记录名分别具有一第二记录号,每个二维表的二维数组的各个数组元素与该二维表的第一记录名和第二记录名的各个组合一一对应,每个数组元素的第一下标和第二下标分别为该数组元素所对应的第一记录名的第一记录号和所对应的第二记录名的第二记录号;建立而得的该数据库包括该多个二维表。
2.如权利要求1所述的数据库的建立方法,其特征在于,该多个二维表顺序存储。
3.如权利要求1所述的数据库的建立方法,其特征在于,每个二维表的第一记录名以及第二记录名均以哈希表形式存储。
4.一种通过如权利要求1-3中任意一项所述的数据库的建立方法建立而得的数据库。
5.如权利要求4所述的数据库,其特征在于,该数据库运行于嵌入式系统中。
6.一种如权利要求4或5所述的数据库的数据检索方法,该数据检索方法包括:
S1、从该多个二维表中检索出名称与一待检索的目标名称相匹配的二维表;
S2、在S1中检索出的该二维表中,从多个第一记录名中检索出与一待检索的第一目标记录名相匹配的第一记录名;
S3、获得S2中检索出的该第一记录名的第一记录号;
S4、在S1中检索出的该二维表中,从多个第二记录名中检索出与一待检索的第二目标记录名相匹配的第二记录名;
S5、获得S4中检索出的该第二记录名的第二记录号;
S6、将S1中检索出的该二维表的二维数组中第一下标为S3中获得的该第一记录号且第二下标为S5中获得的该第二记录号的数组元素作为检索结果输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101679716A CN102779154A (zh) | 2012-05-25 | 2012-05-25 | 数据库及其建立方法、数据检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101679716A CN102779154A (zh) | 2012-05-25 | 2012-05-25 | 数据库及其建立方法、数据检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102779154A true CN102779154A (zh) | 2012-11-14 |
Family
ID=47124066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101679716A Pending CN102779154A (zh) | 2012-05-25 | 2012-05-25 | 数据库及其建立方法、数据检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102779154A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544305A (zh) * | 2013-11-01 | 2014-01-29 | 上海斐讯数据通信技术有限公司 | 基于双哈希结构二维动态联系人查询列表查询方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185560B1 (en) * | 1998-04-15 | 2001-02-06 | Sungard Eprocess Intelligance Inc. | System for automatically organizing data in accordance with pattern hierarchies therein |
CN101251385A (zh) * | 2008-03-20 | 2008-08-27 | 北京航空航天大学 | 一种应用在无人机上的航点实时装订与处理方法 |
CN101625687A (zh) * | 2008-07-11 | 2010-01-13 | 西北工业大学 | 一种支持自适应服务的群体兴趣数据获取方法与装置 |
CN102184226A (zh) * | 2011-05-09 | 2011-09-14 | 河海大学 | 一种实时数据库的构建方法和数据检索方法 |
-
2012
- 2012-05-25 CN CN2012101679716A patent/CN102779154A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185560B1 (en) * | 1998-04-15 | 2001-02-06 | Sungard Eprocess Intelligance Inc. | System for automatically organizing data in accordance with pattern hierarchies therein |
CN101251385A (zh) * | 2008-03-20 | 2008-08-27 | 北京航空航天大学 | 一种应用在无人机上的航点实时装订与处理方法 |
CN101625687A (zh) * | 2008-07-11 | 2010-01-13 | 西北工业大学 | 一种支持自适应服务的群体兴趣数据获取方法与装置 |
CN102184226A (zh) * | 2011-05-09 | 2011-09-14 | 河海大学 | 一种实时数据库的构建方法和数据检索方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544305A (zh) * | 2013-11-01 | 2014-01-29 | 上海斐讯数据通信技术有限公司 | 基于双哈希结构二维动态联系人查询列表查询方法及系统 |
CN103544305B (zh) * | 2013-11-01 | 2017-12-19 | 上海斐讯数据通信技术有限公司 | 基于双哈希结构二维动态联系人查询列表查询方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810237B (zh) | 数据管理方法和系统 | |
CN103902623B (zh) | 用于在存储系统上存取文件的方法和系统 | |
CN104252536B (zh) | 一种基于hbase的上网日志数据查询方法及装置 | |
CN102930060B (zh) | 一种数据库快速索引的方法及装置 | |
CN103412916B (zh) | 一种监控系统的多维度数据存储、检索方法及装置 | |
CN103678339B (zh) | 数据回流、关系型数据库中的数据访问方法及系统 | |
CN106462592A (zh) | 优化对索引的多版本支持的系统和方法 | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
CN102725755A (zh) | 文件访问方法及系统 | |
CN106844374B (zh) | 一种存储、检索照片的方法及装置 | |
CN103399945A (zh) | 一种基于云计算数据库系统的数据结构 | |
CN103631909A (zh) | 对大规模结构化和非结构化数据联合处理的系统及方法 | |
CN103198150B (zh) | 一种大数据索引方法及系统 | |
CN103778133A (zh) | 一种数据库对象的变更方法及装置 | |
CN103778202A (zh) | 一种企业电子文档管理服务端及系统 | |
CN104111935A (zh) | 一种推送微博的方法及系统、服务器 | |
CN104199860A (zh) | 一种基于二维地理位置信息的数据集分片方法 | |
CN105550219A (zh) | 一种信息资源的自动编目方法 | |
US10289739B1 (en) | System to recommend content based on trending social media topics | |
CN104035993A (zh) | 电子书的存储检索方法、电子书管理系统、阅读系统 | |
CN105260464A (zh) | 数据存储结构的转换方法及装置 | |
CN102737068A (zh) | 一种用于对检索数据进行缓存管理的方法与设备 | |
CN105589910A (zh) | 基于HBase的海量交易数据检索及系统 | |
CN104424189A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121114 |