多维数据库存储及查询的方法

文档序号:6419372阅读:166来源:国知局
专利名称:多维数据库存储及查询的方法
技术领域
一般而言,本发明涉及数据库技术,具体而言,本发明涉及多维数据库存储及查询 的方法。
背景技术
传统的二维数据库技术,是以事件过程的方式把不同样的信息记录到数据库中, 存储的方式是“某人在某时做了某件事情”,并把彼此间的信息记录表通过某一关键列进行 关联,如某人、某事物等。但这种管理方式如果在碰到一些非常多维的数据的时候会出现比 较多的缺点,如造成数据量和表格过大、数据维与维之间的关系难以实现、不利于数据二次 挖掘等。对于一些多维的信息如市场研究、国家动态等,信息所包含维度个体种类、每个个 体的各种属性和特征、个体所做的事情、时间和地点等。在这种多维和繁复的信息存储中, 传统的二维数据库的管理方法如下1、首先,如表1所示,传统的二维数据库技术设置个体种类表,把所有的个体分门 别类的存储进这个表,例如分为微观个体(如产品)和宏观个体(如公司),然后分出微观个体和宏观个体的种类。
权利要求
1.一种数据存储方法,包括以下步骤a)在数据库中建立用于存储实体信息的实体表;b)将实体信息存储到所述实体表中;c)在数据库中建立用于存储实体的状态信息的状态表;d)将实体的状态信息存储到所述状态表中;e)将所述实体表与所述状态表相关联;f)采用时间维度来关联所述状态表。
2.如权利要求1所述的方法,其中,步骤a)进一步包括在实体表中设置实体标识模块、关联实体模块和属性模块,所述实体标识模块用于存 储实体的标识,所述关联实体模块用于存储其它实体表中的与所述实体相关联的实体的标 识,所述属性模块用于存储相应实体的属性;采用关联实体模块将多个实体表关联起来,构造成三维实体表阵模块;其中,步骤c)进一步包括在状态表中设置时间维度模块、主实体标识模块和关联状态模块,所述时间维度模块 用于以预定的时间粒度来存储主实体的状态发生的时间,所述主实体标识模块用于存储主 实体的标识,所述关联状态模块用于存储所述主实体的关联状态;采用所述主实体的实体表中的关联实体模块或所述状态表中的关联状态模块来把多 个状态表关联起来,构造成三维状态表阵模块;其中,步骤e)进一步包括通过实体表中的实体标识模块与状态表中的主实体标识模 块来将所述实体表与所述状态表相关联;以及其中,所述数据是多维市场数据。
3.如权利要求2所述的方法,其中,步骤f)进一步包括采用时间维度来关联所述三维状态表阵模块以构成四维状态表关联模块。
4.如权利要求2所述的方法,其中,通过标识和反向标识来在实体表中设置所述关联 实体模块。
5.如权利要求4所述的方法,其中,所述标识的步骤包括在实体表的关联实体模块中存储、修改或删除与所述实体表中 的实体相关联的关联实体的标识;所述反向标识的步骤包括通过所述关联实体的标识在数据库中搜索与所述关联实体 对应的实体表,如果搜索到对应的实体表,则在所述关联实体的对应的实体表的关联实体 模块中存储、修改或删除所述实体的标识,如果未搜索到对应的实体表,并且在所述实体表 的关联实体模块中进行的是存储或修改操作,则为所述关联实体创建实体表,并在为所述 关联实体而创建的实体表中的关联实体模块中存储或修改所述实体的标识。
6.如权利要求2所述的方法,其中,通过标识和反向标识来在状态表中设置所述关联 状态模块。
7.如权利要求6所述的方法,其中,所述标识的步骤包括在状态表的关联状态模块中存储、修改或删除所述状态表中的 主实体与关联实体发生的状态,并在所述状态表的时间维度模块中存储、修改或删除所述 状态发生的时间;所述反向标识的步骤包括通过所述关联实体的标识在数据库中搜索与所述关联实体 对应的状态表,如果搜索到对应的状态表,则在所述关联实体的对应的状态表的关联状态 模块中存储、修改或删除所述关联实体与所述主实体发生的状态,并在所述关联实体的对 应的状态表的时间维度模块中存储、修改或删除所述状态发生的时间,如果未搜索到对应 的状态表,并且在所述主实体的状态表的关联状态模块中进行的是存储或修改操作,则为 所述关联实体创建状态表,并在为所述关联实体而创建的状态表中的关联状态模块中存储 或修改所述关联实体与所述主实体发生的状态,并在所述关联实体的对应的状态表的时间 维度模块中存储或修改所述状态发生的时间。
8.如权利要求5或7所述的方法,其中,自动进行所述反向标识的步骤。
9.一种数据存储结构,包括在数据库中建立的用于存储实体信息的实体表; 在数据库中建立的用于存储实体的状态信息的状态表; 所述实体表与所述状态表相关联, 其中,所述状态表采用时间维度来关联。
10.如权利要求9所述的数据存储结构,其中,所述实体表进一步包括实体标识模块、 关联实体模块和属性模块,所述实体标识模块用于存储实体的标识,所述关联实体模块用 于存储其它实体表中的与所述实体相关联的实体的标识,所述属性模块用于存储相应实体 的属性;所述实体表之间通过所述关联实体模块的关联而形成三维实体表阵模块; 其中,所述状态表进一步包括时间维度模块、主实体标识模块和关联状态模块,所述时 间维度模块用于以预定的时间粒度来存储主实体的状态发生的时间,所述主实体标识模块 用于存储所述主实体的标识,所述关联状态模块用于存储所述主实体的关联状态;所述状态表之间采用所述主实体的实体表中的关联实体模块或所述状态表中的关联 状态模块来关联以形成三维状态表阵模块,所述三维状态表阵模块采用时间维度来关联以 形成四维状态表关联模块。其中,所述实体表与所述状态表之间通过实体表中的实体标识模块与状态表中的主实 体标识模块来关联。
11.一种在如权利要求9-10所述的数据存储结构中存储数据的方法,包括以下步骤 在实体表中定义实体;添加所述实体的属性;判断是否存在与所述实体发生关联的实体;若是,则在所述实体表中添加与所述实体相关联的关联实体的标识,并在与所述关联 实体的实体表中进行反向标识;在所述实体的状态表中的关联状态模块中添加所述实体与关联实体发生的状态; 以预定的时间粒度在所述实体的状态表中添加所述实体与所述关联实体发生的状态 的时间;在所述关联实体的状态表中进行反向标识,并且以预定的时间粒度在所述关联实体的 状态表中添加所述关联实体与所述实体发生的状态的时间。
12.—种查询按照权利要求1-8所述的方法存储的数据的方法,包括以下步骤输入用户的查询要求,在数据库系统中发出查询命令;判断数据库中是否记录了该实体,若否,则返回查询空值,若是,则查询出与该实体相关联的实体表;判断是否还存在与该实体关联的其它实体表,若否,则返回查询结果,显示实体表中实体的属性,若是,则读取与该实体关联的实体表中的记录,并将记录保存至服务器的缓冲区; 在数据库中截取时间点,判断在所截取的时间点上是否存在与该实体关联的状态表, 若是,则读取与该实体相关联的状态表中与该实体相关的记录,若否,则判断是否还存在与 该实体相关联的其它状态表,若否,则读取服务器的缓冲区,返回查询结果,若是,则读取与 该实体相关联的其它状态表中与该实体相关的记录,并将记录保存至服务器的缓冲区; 读取服务器的缓冲区,返回查询结果。
全文摘要
本发明的名称是“多维数据库存储及查询的方法”。本发明公开了一种数据存储方法,包括以下步骤在数据库中建立用于存储实体信息的实体表;将实体信息存储到所述实体表中;在数据库中建立用于存储实体的状态信息的状态表;将实体的状态信息存储到所述状态表中;将所述实体表与所述状态表相关联;采用时间维度来关联所述状态表。本发明还公开了一种数据存储结构以及在该数据存储结构中存储和查询数据的方法。
文档编号G06F17/30GK102141992SQ201010104308
公开日2011年8月3日 申请日期2010年1月28日 优先权日2010年1月28日
发明者吴忠辉 申请人:广州市西美信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1