CN102236662A - 数据库查询和控制方法 - Google Patents
数据库查询和控制方法 Download PDFInfo
- Publication number
- CN102236662A CN102236662A CN201010159575XA CN201010159575A CN102236662A CN 102236662 A CN102236662 A CN 102236662A CN 201010159575X A CN201010159575X A CN 201010159575XA CN 201010159575 A CN201010159575 A CN 201010159575A CN 102236662 A CN102236662 A CN 102236662A
- Authority
- CN
- China
- Prior art keywords
- entity
- state
- module
- node
- acceptor
- 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
Images
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/24—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的名称是数据库查询和控制方法。本发明一般性地涉及数据库的查询和控制方法,特别是涉及在数据库中进行标识和反向标识的方法以及以递归方式查询数据库中的关联模型的方法。本发明还公开了一种用于对查询方法所得到的查询结果进行显示的方法。
Description
技术领域
本发明一般性地涉及数据库的查询和控制方法,特别是涉及在数据库中进行标识和反向标识的方法以及以递归方式查询数据库中的关联模型的方法。
背景技术
传统的递归查询技术
目前的数据库技术拥有着非常多的查询及控制二维数据库的技术方法,传统的二维数据库的RTN(Recursive transient network,递归瞬态网络)查询与控制方法的做法是:针对二维数据库预先设定的决策图对关键字进行递归处理,并由整个决策图的自嵌套和自连接的总运行来描述,同时对每个关键字后的关键字进行有限选择。
以上的方法是针对传统的二维数据库所采用的方法,但如果针对多维数据库的关系模型的查询与控制,上述查询方法存在以下不足:
(1)传统的RTN仅仅对于传统二维数据库的以个体关联为层级的属性维(X维)与以个体种类区分的并列的个体维(Y维)的决策图网进行语句描述,但由于多维数据库中存在实体间的关联维(Z维)和时间维(W维),因而传统的RTN方法没有办法对多维数据库进行描述。
(2)传统的RTN方法仅仅能够查询出的结果是“某个体在某时间发生了某件事”、“备注”。但如果这个个体同时发生几件事,并且这些事件存在交叉的时候(其它维度有关联),这些信息就不能查询出来。
(3)传统的RTN在一个查询代码中,通过查询语句简单精确的各种难度级别描述,并建立一个改进的访问计划,如果在一个查询代码中,难度级别非常底,它还是需要作一个难度级别描述,并制定自己的访问技术,但是对于难度级别很低的查询代码,SQL已经是最优的访问计划.根本无需RTN做任何操作。反而执行这些操作会影响性能和速度。
(4)在问题(3)中提到,RTN通过查询语句简单精确的各种难度级别描述,并建立一个最优的访问计划,RTN需要分析数据结构,如果相关的表或相关的关键字比较多时(查询语句关连的表非常多),分析的时间就需要很长,影响查询速度。
发明内容
为了解决现有技术中存在的问题,本发明提供了以递归方法查询及控制多维数据库中的关系模型的方法以及对查询结果进行显示的方法。本发明还提供了在数据库中使用的标识和反向标识技术。
根据本发明的第一方面,提供了一种在数据库中使用的标识和反向标识方法,所述数据库中包含个体,所述个体在逻辑上被分为主体和受体,
所述标识的步骤包括:对主体的信息进行添加、修改、删除;
所述反向标识的步骤包括:
1)在数据库中查询所述受体的信息;
2)如果查询到所述受体,则根据所述主体的信息而形成需要施加给所述受体的信息,并根据对所述主体进行的所述主体的信息的添加、修改、删除来对所述受体进行所形成的信息的添加、修改、删除;
3)如果在数据库中并没有找到该受体,则在个体表中添加该受体相对应的信息,并将相应的信息添加到该受体的对应行的某个字段中。
优选地,其中,形成需要施加给所述受体的信息包括以下步骤:在状态储存模块中查询与主体对受体发生状态相对应的受体对主体发生的状态,根据所查询到的受体对主体的状态来调整受体和主体的位置,并与所述主体的信息中的固定信息按预定的顺序组合起来,从而形成需要在受体的对应行的某个字段中添加的信息。
根据本发明的第二方面,提供了一种对数据库中的实体表进行标识和反向标识的方法,所述实体表对应的实体在逻辑上被分为主体和受体,
所述标识的步骤可包括:在主体对应的实体表的关联实体模块中存储、修改或删除与所述实体表中的实体相关联的关联实体的标识;
对受体对应的实体表进行反向标识的步骤可包括:通过所述关联实体的标识在数据库中搜索与所述关联实体对应的实体表,如果搜索到对应的实体表,则在所述关联实体的对应的实体表的关联实体模块中存储、修改或删除所述实体的标识,如果未搜索到对应的实体表,并且在所述实体表的关联实体模块中进行的是存储或修改操作,则为所述关联实体创建实体表,并在为所述关联实体而创建的实体表中的关联实体模块中存储或修改所述实体的标识。
根据本发明的第三方面,提供了一种对数据库中的状态表进行标识的方法,包括:
在状态储存模块添加状态,如果所述状态存在相对应的反向状态则在所述状态储存模块中添加所述反向状态,在状态表的关联状态模块中存储、修改或删除所述状态表中的主实体与关联实体发生的状态,并在所述状态表的时间维度模块中存储、修改或删除所述状态发生的时间,其中,所述状态储存模块是在数据库中定义的,用于存储实体本身发生的状态,实体间发生的各个状态以及与实体间发生的各个状态相对应的反向状态;
对状态表进行反向标识的步骤可包括:所述反向标识的步骤包括:通过所述关联实体的标识在数据库中搜索与所述关联实体对应的状态表及在状态储存模块中的搜索反向状态,如果搜索到对应的状态表及匹配的反向状态,则利用搜索到的反向状态来在所述关联实体的对应的状态表的关联状态模块中存储、修改或删除所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间维度模块中存储、修改或删除所述状态发生的时间,如果未搜索到对应的状态表,并且在所述主实体的状态表的关联状态模块中进行的是存储或修改操作,则为所述关联实体创建状态表,并在为所述关联实体而创建的状态表中的关联状态模块中利用搜索到的反向状态来存储或修改所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间维度模块中存储或修改所述状态发生的时间。
优选地,上述反向标识的步骤在标识操作之后自动进行。
根据本发明的第四方面,提供了一种对包含关联模型的数据库中的关联模型进行查询的方法,包括以下步骤:
1)用户对某实体及关联模型发出查询指令;
2)判断节点储存模块中是否存有该实体,若否,则返回查询空值,若是则进行到步骤3);
3)判断是否存在与该实体对应的节点有第1级关联的节点,若否,则返回没有关联查询值,若是,则在递归查询模块中进行递归查询。
优选地,其中,在递归查询模块中,包含以下步骤:
a)查询与该实体所对应的节点存在第1级关联的节点,读取节点ID并对第1级的各个关联进行编号,关联级数赋值为1;
b)根据节点ID、关联级数和关联的编号来生成关联字符串并存储到存储器中;
c)判断是否有下层递归,若是,则进入步骤d),若否,则进入步骤e);
d)查询与该关联级的关联实体所对应的节点存在第1级关联的节点,读取节点ID并对该级的各个关联进行编号,关联级数赋值为关联级数+1;
e)读取存储器中的字符串,生成字符矩阵,
优选地,其中,在完成递归查询后,把字符矩阵传送到显示模块。
优选地,其中,判断是否有下层递归可通过查询是否存在与该关联级的关联实体所对应的节点有第1级关联的节点来实现。
根据本发明的第五方面,提供了一种用于对如权利要求6-9所述的查询方法的查询结果进行显示的方法,包括如下步骤:
在节点储存模块中对与存储元素相对应的显示元素进行设定,同时将所述显示元素记录到节点储存模块中,所述存储元素包括节点标识、关联级数、各级中对关联的编号;
在获取到递归查询的数据矩阵后,根据数据矩阵中记录的存储元素来在节点储存模块中查找与各个储存元素相匹配的显示元素;
对显示元素进行显示,从而把字符矩阵所代表的关联模型显示出来。
附图说明
图1示意性示出根据本发明的实施例的多维数据库模型。
图2是根据本发明的实施例的标识与反向标识的流程图。
图3示意性示出根据本发明的实施例的节点储存模型。
图4示意性示出根据本发明的实施例的实体表的关联存储模型。
图5是示出根据本发明的实施例的数据库的递归查询方法的流程图。
图6示意性示出根据本发明的实施例的关系模型。
具体实施方式
传统的SQL Server,Oracle数据库都是属于二维的数据库,是以事件过程的方式把不同样的信息记录到数据库中,存储的方式是“某人在某时做了某件事情”,并把彼此间的信息记录表通过某一关键列进行关联,如某人、某事物等。所以传统数据库只存在两个维:1、实体属性维,即实体A有什么属性,在什么时候做了什么事(X维);2、实体维,即所有实体A、实体B、实体C汇总(Y维)。
如图1所示,建立多维数据库时,分别定义了实体表模块与状态表模块。实体表模块是由无数个实体表(参照表1)组成的,每个实体表记录同一种类实体的信息及相关属性,同时在实体表间还建立了关联,把散落的实体表通过关联维连接起来;另外,状态表模块是由无数个实体的状态表(参照表2)组成的,每个状态表记录实体发生的状态及时间,同时状态表与实体表、不同状态表之间也通过实体标识建立了关联,并根据实体状态发生的时间与时间轴关联连接起来。因此,多维数据库除了拥有传统二维数据的以实体的属性为基准的属性(状态)维(X维)与以实体的种类为基准的实体维(Y维)外,还拥有对实体进行的交叉标识所得出的实体(状态)关联维(Z维)和状态表模块中串联状态表阵的时间维(W维)。
表1多维数据库中实体表的结构
表2多维数据库中状态表的结构
所以,多维数据库的根本不同点,在于能够把千变万化的多维信息以优化的方式保存起来,从而节省存储资源。另外,多维数据库还避免了传统的方法保存多维信息数据时的繁复的更新、维护工作量,只需要在某个时间横截面,修改相关实体的状态即可实现数据库的更新和维护,也就是说只有实体发生了事件变化才需要更新数据库。
本发明是针对多维数据库特殊的多维关联模型的一种以递归方式查询及控制的方法,是传统的二维RTN查询基础上的改进,除X维与Y维外,把关联维(Z维)与时间维(W维)查询出来并用显示模块进行显示。
具体的实施步骤及关键点包括以下方面:
1、标识与反向标识技术
在多维数据库中,除了传统的二维数据库中所拥有的实体的属性维(X维)及实体种类区分的并列的实体维(Y维)外,还添加了两个新的维度,一个是个体间的关联维(Z维),是对实体表模块与状态表模块进行的交叉标识所得出的新的维度,另外一个是时间维(W维),把所有的状态表关联起来的维度。自动标识与反向标识技术除了适用于二维数据库外,还能应用于关联维与时间维的标识上。
由于本发明中的源数据标识技术是自动反向生成的,所以相对于传统的二维数据技术来说,管理方法非常简单。当系统中对实体模块的其中一个标识进行修改的时候,根据自动反向标识的生成,在另一个表的实体标识也会自动跟随着更改。
具体的标识与反向标识的实施流程如图2所示。
管理者发出添加或修改实体表中的关联受体的操作请求(步骤201)。
首先数据库会判定用户操作的是实体表还是状态表(步骤202),将会分以下两种情况:
管理者操作在实体A(主体A)的表中修改关联实体B(受体B),系统从数据库中搜索实体列表并以要求用户选定受体的方式去实现这一关联修改(步骤203),选定后,在把用户的操作修改到数据库的同时,系统将另外自动在实体表中寻找该步操作的关联受体(上述例子中的实体B)的关联信息,并自动在实体表中添加该表的受体,同时提交给管理者对该反向标识工作进行确认(步骤205)。如果该步搜索并没有找到数据库中存在该受体,则要求用户必须在实体表中添加该受体相对应的信息(步骤204),以保证该反向标识操作能顺利完成。
执行关联的添加或修改的正向和反向操作,与实体表相关的操作完成(步骤206)。
定义状态储存模块(步骤207)。
判断是否有对应的反向状态(步骤208),若是,则利用状态储存模块中的定义对状态表进行自动修改,若否,则为所述关联实体创建状态表,并利用状态储存模块定义该状态表及反状态表的关联(步骤209)
执行标识与反向标识操作,与状态表相关的操作完成(步骤210)。
由于状态表的本身也与实体表相关联,所以在添加或修改主体A的状态表中的受体则与实体表的反向标识步骤较为类似,也要在实体表中进行标识和反向标识。不同点在于,而且状态表比实体表多出了一个时间维,系统对受体的状态表的时间进行自动关联。另外,因为状态表中的状态关联比实体间的关联要复杂,所以状态表的反向标识中除了标识实体外,要对状态表中的状态进行初始定义及匹配,以解决复杂的状态关联模式及时间维。具体的实施方法如下:
在设计中便对状态表中的状态维(X维)建立了一个状态储存模块,并要求系统管理者在该模块中对状态及反向状态进行定义和匹配,称为状态定义及反向状态定义。如在模块中添加“购买”状态、同时反向标识出“销售”状态。进行状态匹配后,以后在状态表中的管理时便可以直接在状态储存模块中选取相应的状态,系统也会对状态进行自动匹配,以达到标识与反向标识的目的。
虽然图2仅举例说明了在添加和修改操作时的标识和反向标识,但是本发明不限于此。而且,本领域的技术人员会理解,删除操作也可以基于上述方案来实现标识或反向标识。
本发明提供了一种对数据库中的实体表进行标识和反向标识的方法。所述实体表对应的实体在逻辑上被分为主体和受体,标识的步骤可包括:在主体对应的实体表的关联实体模块中存储、修改或删除与所述实体表中的实体相关联的关联实体的标识。
对受体对应的实体表进行反向标识的步骤可包括:通过所述关联实体的标识在数据库中搜索与所述关联实体对应的实体表,如果搜索到对应的实体表,则在所述关联实体的对应的实体表的关联实体模块中存储、修改或删除所述实体的标识,如果未搜索到对应的实体表,并且在所述实体表的关联实体模块中进行的是存储或修改操作,则为所述关联实体创建实体表,并在为所述关联实体而创建的实体表中的关联实体模块中存储或修改所述实体的标识。
对状态表进行标识的步骤可包括:在状态储存模块添加状态,如果所述状态存在相对应的反向状态则在所述状态储存模块中添加所述反向状态,在状态表的关联状态模块中存储、修改或删除所述状态表中的主实体与关联实体发生的状态,并在所述状态表的时间维度模块中存储、修改或删除所述状态发生的时间。所述状态储存模块是在数据库中定义的,用于存储实体本身发生的状态,实体间发生的各个状态以及与实体间发生的各个状态相对应的反向状态。例如,如果状态是“购进”,则对应的反向状态是“销售”。对状态表进行反向标识的步骤可包括:通过所述关联实体的标识在数据库中搜索与所述关联实体对应的状态表及在状态储存模块中的搜索反向状态,如果搜索到对应的状态表及匹配的反向状态,则利用搜索到的反向状态来在所述关联实体的对应的状态表的关联状态模块中存储、修改或删除所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间维度模块中存储、修改或删除所述状态发生的时间,如果未搜索到对应的状态表,并且在所述主实体的状态表的关联状态模块中进行的是存储或修改操作,则为所述关联实体创建状态表,并在为所述关联实体而创建的状态表中的关联状态模块中利用搜索到的反向状态来存储或修改所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间维度模块中存储或修改所述状态发生的时间。
上面陈述的是具有关联个体模块和关联状态模块的多维数据库的标识和反向标识的方案。而对于不包括上面定义的关联模块的常规数据库例如表3所示的数据库,该表中的数据呈现散乱存储的特征,不存在上述表1和表2中的关联模块。这样的表在当今使用的各类数据库中更具普遍性。在这样的表中,如果在表3中修改某个个体的状态,例如添加了在个体U的对应行的某个字段中添加了“2008年1月与C个体发生状态1(如购进**C个体)”,则系统会从数据库中搜索个体C,并且如果搜索到个体C,则把“2008年1月与U个体发生状态1’(如销售**C个体)”添加到个体C的对应行的某个字段中,时间和主体“例如U”(不妨把信息先被修改(对应于标识操作)的个体称为主体)等信息可以复制到所述个体C的对应行的某个字段中,而对于所发生的每种状态,可以预先定义与其相对应的状态(例如“购进”的对应状态是“销售”)并存储在专门的模块(例如状态储存模块)中,以便在根据主体对受体发生的状态(如“购进”)时,在该表中能够查询出受体对主体发生的状态(如“销售”),并根据受体对主体发生的状态来调整受体和主体的位置,并与前述的时间等固定信息按预定的顺序组合起来,从而形成需要在受体(不妨把其信息因其它先被修改的个体的信息的改变而改变(对应于反向标识操作)的个体称为“受体”)的对应行的某个字段中添加的信息(例如,“2008年1月与U个体发生状态1’(如销售**C个体)”)。如果在搜索之后,在数据库中并没有找到该受体,则在个体表中添加该受体相对应的信息,并将相应的信息(例如根据上述方式形成的受体与主体发生的状态)添加到该受体的对应行的某个字段中。
对于修改的情况,例如将“2008年1月与C个体发生状态1(如购进**C个体)”改为“2008年2月与C个体发生状态2(如消费**C个体)”,则可根据修改后的信息按照上面陈述的步骤需要在受体(例如C)的对应行的某个字段中添加的信息(例如,“2008年2月与U个体发生状态2’(如提供**C个体)”)。
对于删除的情况,例如将“2008年1月与C个体发生状态1(如购进**C个体)”删除,则可在受体(例如C)的对应行的某个字段中删除相应的信息(例如,“2008年1月与U个体发生状态1’(如销售**C个体)”)。
表3一般数据库中表的结构
个体 | 状态A | 状态B | ... | 状态X |
U个体 | 2008年1月与C个体发生状态1(如购进**C个体) | 2008年2月与D个体发生状态2(如消费**D个体) | ... | 2008年3月与Z个体发生状态3(如销售Z个体) |
V个体 | ... | ... | ... | ... |
W个体 | ... | ... | ... | ... |
... | ... | ... | ... | ... |
综上所述,对于一般的数据库,所述数据库中包含个体,所述个体在逻辑上被分为主体和受体,标识的步骤包括:对主体的信息进行添加、修改、删除;而反向标识的步骤包括:对于主体的所述信息中所涉及的受体的相应信息进行与对主体的信息进行的添加、修改、删除相应的添加、修改、删除。之所以说所述个体在逻辑上被分为主体和受体,是因为主体和受体的角色是相对于修改与被修改的因果关系确定的,先被修改的个体被称为主体,而因为先被修改的个体的状态改变而需要对其状态进行相对应的修改的个体称为受体,因此,在某次标识和反向标识过程中,某个体是主体,而与之相关联的个体是受体,但是在另一次修改中,有可能先修改所述相关联的个体,这样,该个体在该另一次修改中就会称为主体。
具体地说,所述反向标识步骤进一步包括:1)在数据库中查询所述受体的信息;2)如果查询到所述受体,则根据所述主体的信息而形成需要施加给所述受体的信息,并根据对所述主体进行的所述主体的信息的添加、修改、删除来对所述受体进行所形成的信息的添加、修改、删除;3)如果在数据库中并没有找到该受体,则在个体表中添加该受体相对应的信息,并将相应的信息添加到该受体的对应行的某个字段中。具体地说,形成需要施加给所述受体的信息包括:在状态储存模块中查询与主体对受体发生状态相对应的受体对主体发生的状态(即反向状态),根据所查询到的受体对主体的状态来调整受体和主体的位置,并与所述主体的信息中固定信息按预定的顺序组合起来,从而形成需要在受体的对应行的某个字段中添加的信息。
其中,所述反向标识的步骤可以在标识操作之后自动进行。
上面论述了具有关联实体模块的实体表以及具有关联状态模块和时间维度的状态表中,以及不具有关联模块的一般数据库表中进行标识和反向标识的方法。但是,在本发明的精神和范围内,针对各个具体实例描述的技术特征可以进行各种组合、替换以及增删。
为了对通过标识与反向标识技术关联的数据库进行查询,本发明定义了节点储存模块。节点储存模块是本发明中用于对读取数据库内已通过标识与反向标识技术关联的实体表模型,然后把各个实体作为节点记录到节点储存模块中,并对每一个节点进行标识,例如可根据ID或名称对每一个节点进行标识。然后根据多维数据库中的关联维(Z维)来标识间的关联模式,建立起节点关联模型,并记录在节点储存模块中。
为了显示查询结果,可在节点储存模块中对与节点标识、关联级数、各级中对关联的编号等相对应的显示元素进行设定,同时将所述显示元素记录到节点储存模块中。以便在获取到递归查询过程中产生的字符矩阵后,能够根据节点标识、关联模型种类、关联层数与关联级数与显示元素的匹配关系而调用相关的显示元素并呈现出来。下面对本发明的递归查询方法进行详细描述。
(1)节点关联模型的建立
在本发明中,节点关联模型是指通过数据库中的实体表和/或状态表中的关联模块(例如,关联实体模块和/或关联状态模块)而形成的个体之间相互关联的模型。以建立某种关联模型为例,如图3所示,假定以个体A为起点,在多维数据库里建立以下实体表矩阵:
(1)个体A:关联个体B、个体C
(2)个体B:反向标识个体A,关联个体D、个体E
(3)个体C:反向标识个体A,关联个体F
(4)个体D:反向标识个体B,关联个体K
(5)个体E:反向标识个体B,关联个体F
(6)个体F:反向标识个体C、个体E,关联个体G
实体表矩阵建立好后,系统将自动读取矩阵中的8个实体,并把它们视为节点并对应的为它们配上不同节点ID以便于标识。以个体A的位置为起点,系统搜索其它节点与个体A的关联的级数,如个体B、个体C直接与个体A关联,属于第1级,个体D、个体E通过个体B与个体A关联,属于第2级,依此类推,可产生多层关联。
如图4所示,示意性地说明了实体之间的多层关联,要理解,在实际的数据库中,实体使用的关联模型往往比这个模型要复杂得多,例如涉及更多的节点,节点之间具有更多层次的关联。如图所示,X维是以实体的属性为基准的维度,Y维是以实体的种类为基准的维度。本发明通过引入关联实体模块来在各个实体表中对实体进行了关联,根据这些关联可以把这些实体表联系起来,形成一个新的维度:实体关联维度(Z维)。通过在实体间定义的所述关联模块进行关联后,这些实体表就成为如图4所示的三维的实体表阵模块。
(2)关联模型的种类
由于多维数据库里存在着多种多样的数据,同样也存在着多种多样的关联方式,包括实体表模块的与状态表模块的不同的关联模式。单独一个关联模型无法满足多维数据库中的实体之间的各种各样的关联模式。例如在市场生产中产品间存在着上游原料、下游产品的关联,往上游和下游都可以有不同级数的延伸;又如其它生产实体和社会实体之间也会有不同级数关联。以上对关联方式的划分,称作为关联模型的种类。
在本发明中,关联模型将分为许多种。根据定义的实体表模块与状态表模块分别将关联模型定义为实体属性关联与实体状态关联,如果必要,其中每一种关联可以根据实体属性和实体状态的不同而细分为许多种关联模型。同样,相同的实体也可能用于不同种类的关联模型。
在定义了关联模型的种类后,不同种类的关联模型将分别配上相应的关联模型ID并记录在数据库中。
在本发明中,建立了关联模型后,所有的模型都已经通过表单的形式储存在数据库中。用户在实际操作中选择搜索某一实体的信息时,数据库将进行递归查询的过程。详细的递归查询流程如图5所示,该图示出了一种对包含关联模型的数据库中的关联模型进行查询的方法。
首先,系统通过匹配,寻找该实体在节点储存模块中的对应节点ID,然后再通过节点间标识好的关联递归查询上一级或下一级的节点ID。递归查询即查询与一个节点ID相关联的所有关联线,也查询各条关联线中的关联级数。最后,在横向的关联线查询及纵向的级数查询完成后,系统将根据各个关联线与各个关联线中的关联级数生成数据矩阵,并反馈到显示模块来显示查询结果,从而完成递归查询。
具体地说,一种对包含关联模型的数据库中的关联模型进行查询的方法如图5所示,在步骤501,用户对某实体及关联模型发出查询指令;在步骤502,判断节点储存模块中是否存有该实体,若否,则在步骤503返回查询空值,若是则步骤进行到504。在步骤504,判断是否存在与该实体对应的节点有第1级关联(即直接关联)的节点,若否,则在步骤505,返回没有关联查询值,若是,则在递归查询模块中进行递归查询。当然,该递归查询可以用于对根据本发明的标识和反向标识技术形成的关联模型进行查询。所述关联模型例如多维数据库中的实体表的关联模型,以及多维数据库中的状态表的关联模型。所述实体表的关联模型和所述状态表的关联模型例如可根据本发明的标识和反向标识技术形成。
在递归查询模块中,包含循环步骤506-509。具体地说,在步骤506,查询与该实体所对应的节点存在第1级关联的节点,读取节点ID并对第1级的各个关联进行编号,关联级数赋值为1,在步骤507,根据节点ID、关联级数和关联的编号来生成关联字符串并存储到存储器中,在步骤508,判断是否有下层递归,若是,则进入步骤509,若否,则进入步骤510。其中,判断是否有下层递归可通过查询是否存在与该关联级的关联实体所对应的节点有第1级关联的节点来实现。在步骤509中,查询与该关联级的关联实体所对应的节点存在第1级关联的节点,读取节点ID并对该级的各个关联进行编号,关联级数赋值为关联级数+1,并返回到步骤507。在步骤510中,读取存储器中的字符串,生成字符矩阵。
在步骤511中,完成递归查询,把字符矩阵传送到显示模块。本领域的技术人员会理解,上述步骤可在本发明和精神的范围内,进行增加、变更和减少。例如,如果不需要显示结果,则不必把递归查询中生成的字符串矩阵传送到显示模块。
以下是查询实体A(节点ID对应20)、关联模型为2(如图6所示的关系模型)的举例。其中,带有数字的圆圈代表节点,箭头代表关联,箭头中的数字代表关联的编号。
步骤1:系统对实体A进行匹配,读取到20的节点ID与之匹配,对节点储存模块发出查询指令:
Mode ID=2;Search?Node=20
步骤2:系统对节点ID 20查询第一层的关联,返回存在指令,进入下一步递归查询。
步骤3:开始递归,读取到节点ID为20的节点拥有8个直接关联节点;返回本关联级关联节点ID、该节点20以及该关联级的关联的标号为标识的字符串:
第一层递归:Recursion 1|60^20^1|59^20^2|05^20^3|14^20^4|06^20^5|08^20^6|02^20^7|44^20^8|
从该字符串可以看出,与该节点20存在第1级关联的节点分别是节点60、59、05、14、06、08、02、44,它们在该关联级与节点20的关联的标号分别为1-8。对关联进行编号可根据节点之间的关联度的大小来进行。当然,所生成的字符串中的字符排序不限于上述方式,也可以采用其它方式,例如该节点20、本关联级关联节点ID以及该关联级的关联的标号等等各种排列组合。
以此类推,本模型一共有5层递归,各返回以下字符串:
第二层递归:Recursion 2|01^60^1|45^60^2|37^60^3|24^60^4|41^60^5|13^59^1|72^59^2|26^05^1|31^05^2|67^14^1|35^06^1|76^08^1|09^08^2|63^02^1|77^02^2|11^44^1|
第三层递归:Recursion 3|47^24^1|39^41^1|47^13^1|39^13^2|19^72^1|22^67^1|27^76^1|52^09^1|55^63^1|28^63^2|10^11^1|
第四层递归:Recursion 4|56^39^1|11^27^1|38^27^2|38^52^1|
第五层递归:Recursion 5|10^11^1
步骤4:系统判断第6层递归,返回查询空值,递归查询结束。最后系统生成字符矩阵,并传递到显示模块。所生成的字符矩阵如下所示。
上述字符矩阵的列为每次递归查询所得到的字符串,要理解,所生成的字符矩阵不限于上述方式,例如,可以将上述字符矩阵的行设为每次递归查询所得到的字符串,以及各种其它排列方式,都落在本发明的范围内。
4、显示模块
在显示模块中,实现了一种用于对在上述的数据库查询方法的查询结果进行显示的方法,包括如下步骤:
在节点储存模块中对与存储元素相对应的显示元素进行设定,同时将所述显示元素记录到节点储存模块中,所述存储元素包括节点标识、关联级数、各级中对关联的编号;
在获取到递归查询的数据矩阵后,根据数据矩阵中记录的存储元素来在节点储存模块中查找与各个储存元素相匹配的显示元素;
对显示元素进行显示,从而把字符矩阵所代表的关联模型显示出来。
具体地说,为了显示查询结果,可在节点储存模块中对与节点标识、关联级数、各级中对关联的编号等存储元素相对应的显示元素进行设定,同时将所述显示元素记录到节点储存模块中。以便在获取到递归查询过程中产生的字符矩阵后,能够根据节点标识、关联模型种类、关联层数与关联级数与显示元素的匹配关系而调用相关的显示元素并呈现出来。
在获取到递归查询的数据矩阵后,根据数据矩阵中记录的存储元素(例如节点标识、关联级数、各级中对关联的编号等)来在节点储存模块中查找与各个储存元素相匹配的显示元素,并对显示元素进行显示,所述显示可通过各种呈现软件(例如FLASH,PHOTOSHOP)来进行,从而把字符矩阵所代表的关联模型显示出来。然后,可在客户端返回最终对多维数据库关系模型的查询结果。客户端显示给用户的状态类似于图6所示的模型。此外,可在客户端的显示模块中加入详细信息显示模块,在点击各个节点时,可在详细信息显示模块中显示与该节点相关联的详细信息,从而使用户体验导航查询的感受。对于不同的元素,可以采用不同的色彩、分辨率等显示元素加以区分显示。
本说明中提到“一个实施例”或“实施例”等表示结合该实施例描述的特定特征、结构或特性包含在本发明所涵盖的至少一个实现方式中。因此,词语“一个实施例”或“实施例”等的出现不一定表示相同的实施例。此外,特定特征、结构或特性可通过与所述的特定实施例不同的其它适当形式来创立,并且所有这类形式均可为本发明所覆盖。
虽然以上结合的具体实施例对本发明进行了详细描述,但是本领域的技术人员会理解,可在不背离本发明精神和范围的前提下,对本发明进行各种修改和改变(例如,可在不背离本发明的精神和范围的前提下,对各个技术方案及其技术特征进行各种修改和组合),而这些修改和改变都被认为落入本发明的范围内。
Claims (10)
1.一种在数据库中使用的标识和反向标识方法,所述数据库中包含个体,所述个体在逻辑上被分为主体和受体,
所述标识的步骤包括:对主体的信息进行添加、修改、删除;
所述反向标识的步骤包括:
1)在数据库中查询所述受体的信息;
2)如果查询到所述受体,则根据所述主体的信息而形成需要施加给所述受体的信息,并根据对所述主体进行的所述主体的信息的添加、修改、删除来对所述受体进行所形成的信息的添加、修改、删除;
3)如果在数据库中并没有找到该受体,则在个体表中添加该受体相对应的信息,并将相应的信息添加到该受体的对应行的某个字段中。
2.如权利要求1所述的方法,其中,形成需要施加给所述受体的信息包括以下步骤:在状态储存模块中查询与主体对受体发生状态相对应的受体对主体发生的状态,根据所查询到的受体对主体的状态来调整受体和主体的位置,并与所述主体的信息中的固定信息按预定的顺序组合起来,从而形成需要在受体的对应行的某个字段中添加的信息。
3.一种对数据库中的实体表进行标识和反向标识的方法,所述实体表对应的实体在逻辑上被分为主体和受体,
所述标识的步骤可包括:在主体对应的实体表的关联实体模块中存储、修改或删除与所述实体表中的实体相关联的关联实体的标识;
对受体对应的实体表进行反向标识的步骤可包括:通过所述关联实体的标识在数据库中搜索与所述关联实体对应的实体表,如果搜索到对应的实体表,则在所述关联实体的对应的实体表的关联实体模块中存储、修改或删除所述实体的标识,如果未搜索到对应的实体表,并且在所述实体表的关联实体模块中进行的是存储或修改操作,则为所述关联实体创建实体表,并在为所述关联实体而创建的实体表中的关联实体模块中存储或修改所述实体的标识。
4.一种对数据库中的状态表进行标识的方法,包括:
在状态储存模块添加状态,如果所述状态存在相对应的反向状态则在所述状态储存模块中添加所述反向状态,在状态表的关联状态模块中存储、修改或删除所述状态表中的主实体与关联实体发生的状态,并在所述状态表的时间维度模块中存储、修改或删除所述状态发生的时间,其中,所述状态储存模块是在数据库中定义的,用于存储实体本身发生的状态,实体间发生的各个状态以及与实体间发生的各个状态相对应的反向状态;
对状态表进行反向标识的步骤可包括:所述反向标识的步骤包括:通过所述关联实体的标识在数据库中搜索与所述关联实体对应的状态表及在状态储存模块中的搜索反向状态,如果搜索到对应的状态表及匹配的反向状态,则利用搜索到的反向状态来在所述关联实体的对应的状态表的关联状态模块中存储、修改或删除所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间维度模块中存储、修改或删除所述状态发生的时间,如果未搜索到对应的状态表,并且在所述主实体的状态表的关联状态模块中进行的是存储或修改操作,则为所述关联实体创建状态表,并在为所述关联实体而创建的状态表中的关联状态模块中利用搜索到的反向状态来存储或修改所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间维度模块中存储或修改所述状态发生的时间。
5.如权利要求1-4中任一项所述的方法,其中,所述反向标识的步骤在标识操作之后自动进行。
6.一种对包含关联模型的数据库中的关联模型进行查询的方法,包括以下步骤:
1)用户对某实体及关联模型发出查询指令;
2)判断节点储存模块中是否存有该实体,若否,则返回查询空值,若是则进行到步骤3);
3)判断是否存在与该实体对应的节点有第1级关联的节点,若否,则返回没有关联查询值,若是,则在递归查询模块中进行递归查询。
7.如权利要求6所述的方法,其中,在递归查询模块中,包含以下步骤:
a)查询与该实体所对应的节点存在第1级关联的节点,读取节点ID并对第1级的各个关联进行编号,关联级数赋值为1;
b)根据节点ID、关联级数和关联的编号来生成关联字符串并存储到存储器中;
c)判断是否有下层递归,若是,则进入步骤d),若否,则进入步骤e);
d)查询与该关联级的关联实体所对应的节点存在第1级关联的节点,读取节点ID并对该级的各个关联进行编号,关联级数赋值为关联级数+1,返回到步骤b);
e)读取存储器中的字符串,生成字符矩阵,
8.如权利要求6或7所述的方法,其中,在完成递归查询后,把字符矩阵传送到显示模块。
9.如权利要求7所述的方法,其中,判断是否有下层递归可通过查询是否存在与该关联级的关联实体所对应的节点有第1级关联的节点来实现。
10.一种用于对如权利要求6-9所述的查询方法的查询结果进行显示的方法,包括如下步骤:
在节点储存模块中对与存储元素相对应的显示元素进行设定,同时将所述显示元素记录到节点储存模块中,所述存储元素包括节点标识、关联级数、各级中对关联的编号;
在获取到递归查询的数据矩阵后,根据数据矩阵中记录的存储元素来在节点储存模块中查找与各个储存元素相匹配的显示元素;
对显示元素进行显示,从而把字符矩阵所代表的关联模型显示出来。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010159575XA CN102236662B (zh) | 2010-04-23 | 2010-04-23 | 数据库查询和控制方法 |
PCT/IB2011/000890 WO2011132076A1 (zh) | 2010-04-23 | 2011-04-26 | 数据库查询和控制方法 |
US13/577,890 US20130060733A1 (en) | 2010-04-23 | 2011-04-26 | Method and querying and controlling database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010159575XA CN102236662B (zh) | 2010-04-23 | 2010-04-23 | 数据库查询和控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102236662A true CN102236662A (zh) | 2011-11-09 |
CN102236662B CN102236662B (zh) | 2013-09-25 |
Family
ID=44833769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010159575XA Active CN102236662B (zh) | 2010-04-23 | 2010-04-23 | 数据库查询和控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130060733A1 (zh) |
CN (1) | CN102236662B (zh) |
WO (1) | WO2011132076A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408171A (zh) * | 2014-12-12 | 2015-03-11 | 用友软件股份有限公司 | 单据子表行关联查询装置和方法 |
CN109684398A (zh) * | 2018-12-24 | 2019-04-26 | 普元信息技术股份有限公司 | 大数据环境下基于多状态实现数据优化管理功能的系统及方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509637A (zh) * | 2018-04-10 | 2018-09-07 | 口碑(上海)信息技术有限公司 | 数据表关联查询方法及装置 |
US10430606B1 (en) | 2018-04-30 | 2019-10-01 | Aras Corporation | System and method for implementing domain based access control on queries of a self-describing data system |
US11645285B2 (en) * | 2018-04-27 | 2023-05-09 | Aras Corporation | Query engine for recursive searches in a self-describing data system |
US12020305B2 (en) | 2018-04-27 | 2024-06-25 | Aras Corporation | Query engine for executing configurator services in a self-describing data system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356897B1 (en) * | 1998-06-17 | 2002-03-12 | Mark David Gusack | Associative database model for electronic-based informational assemblies |
CN1647076A (zh) * | 2002-03-28 | 2005-07-27 | 莱恩生物科学有限公司 | 查询关系数据库的方法和设备 |
CN102141992A (zh) * | 2010-01-28 | 2011-08-03 | 广州市西美信息科技有限公司 | 多维数据库存储及查询的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6303297B1 (en) * | 1992-07-17 | 2001-10-16 | Incyte Pharmaceuticals, Inc. | Database for storage and analysis of full-length sequences |
US5999924A (en) * | 1997-07-25 | 1999-12-07 | Amazon.Com, Inc. | Method and apparatus for producing sequenced queries |
US20020029207A1 (en) * | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US6732092B2 (en) * | 2001-09-28 | 2004-05-04 | Client Dynamics, Inc. | Method and system for database queries and information delivery |
US7194465B1 (en) * | 2002-03-28 | 2007-03-20 | Business Objects, S.A. | Apparatus and method for identifying patterns in a multi-dimensional database |
CA2429909A1 (en) * | 2003-05-27 | 2004-11-27 | Cognos Incorporated | Transformation of tabular and cross-tabulated queries based upon e/r schema into multi-dimensional expression queries |
US20060112070A1 (en) * | 2004-11-24 | 2006-05-25 | Ramos Oscar A | Interactive graphical interface for data manipulation and presentation |
EP1966729A4 (en) * | 2005-12-27 | 2011-05-04 | Dun & Bradstreet Corp | METHOD AND SYSTEM FOR PROVIDING EXTENDED COMPENSATION FOR CUSTOMER-CONTROLLED INQUIRIES |
WO2008024917A2 (en) * | 2006-08-23 | 2008-02-28 | Innovative Solution, Inc. | Efficient search result update mechanism |
US8239248B2 (en) * | 2007-03-07 | 2012-08-07 | Microsoft Corporation | Techniques to manage information for dynamic reports using time periods for a business model |
US20100017395A1 (en) * | 2008-07-16 | 2010-01-21 | Sapphire Information Systems Ltd. | Apparatus and methods for transforming relational queries into multi-dimensional queries |
CA2751383A1 (en) * | 2009-02-10 | 2010-08-19 | Zap Holdings Limited | Creation of a data store |
-
2010
- 2010-04-23 CN CN201010159575XA patent/CN102236662B/zh active Active
-
2011
- 2011-04-26 WO PCT/IB2011/000890 patent/WO2011132076A1/zh active Application Filing
- 2011-04-26 US US13/577,890 patent/US20130060733A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356897B1 (en) * | 1998-06-17 | 2002-03-12 | Mark David Gusack | Associative database model for electronic-based informational assemblies |
CN1647076A (zh) * | 2002-03-28 | 2005-07-27 | 莱恩生物科学有限公司 | 查询关系数据库的方法和设备 |
CN102141992A (zh) * | 2010-01-28 | 2011-08-03 | 广州市西美信息科技有限公司 | 多维数据库存储及查询的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408171A (zh) * | 2014-12-12 | 2015-03-11 | 用友软件股份有限公司 | 单据子表行关联查询装置和方法 |
CN104408171B (zh) * | 2014-12-12 | 2019-03-26 | 用友网络科技股份有限公司 | 单据子表行关联查询装置和方法 |
CN109684398A (zh) * | 2018-12-24 | 2019-04-26 | 普元信息技术股份有限公司 | 大数据环境下基于多状态实现数据优化管理功能的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130060733A1 (en) | 2013-03-07 |
WO2011132076A1 (zh) | 2011-10-27 |
CN102236662B (zh) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11620315B2 (en) | Using an object model of heterogeneous data to facilitate building data visualizations | |
JP7179981B2 (ja) | 選択したデータソースのオブジェクトモデルに従ったデータ視覚化の生成 | |
US20230350883A1 (en) | Dynamic Dashboard with Guided Discovery | |
CN102236662B (zh) | 数据库查询和控制方法 | |
US20200401581A1 (en) | Utilizing appropriate measure aggregation for generating data visualizations of multi-fact datasets | |
US7953694B2 (en) | Method, system, and program for specifying multidimensional calculations for a relational OLAP engine | |
CN103853818A (zh) | 多维数据的处理方法和装置 | |
CN109947741B (zh) | 一种物项属性参数的建模和存储方法 | |
JP7383799B2 (ja) | マルチファクトデータセットのデータ視覚化を生成するための適切な測度集計の活用 | |
CN102902811A (zh) | 一种快速生成树结构的数据库设计方法 | |
US8112458B1 (en) | User segmentation user interface | |
US7966333B1 (en) | User segment population techniques | |
Agrawal et al. | Horizontal aggregation in SQL to prepare dataset for generation of decision tree using C4. 5 algorithm in WEKA | |
Shokri et al. | The Best Data Integration Method by Using SAW Technique in Ministry of Science, Research and Technology (MSRT) | |
Tayade et al. | A Review Report on Dynamic Query Forms for Relational Databases Queries | |
Lin et al. | Data Warehousing Design and Construction–the Case Study for a Garment Company | |
Yebai et al. | Interactive modeling of data warehouse on E-business system | |
Dell'aquila et al. | Extended Semantics of Bitmaps for Data Analysis | |
WO2003052628A1 (en) | Computer-implemented method of merging at least two dimensionally modeled databases |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Database query and control method Effective date of registration: 20190321 Granted publication date: 20130925 Pledgee: Bank of China Limited Guangzhou Yuexiu Branch Pledgor: Guangzhou CCM Information Science & Technology Co., Ltd. Registration number: 2019440000109 |