首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

动态时空对象数据的自适应索引方法、产品、介质及设备 

申请/专利权人:国家海洋技术中心

申请日:2024-03-12

公开(公告)日:2024-07-05

公开(公告)号:CN117874157B

主分类号:G06F16/29

分类号:G06F16/29;G06T17/05

优先权:

专利状态码:有效-授权

法律状态:2024.07.05#授权;2024.04.30#实质审查的生效;2024.04.12#公开

摘要:本发明公开一种动态时空对象数据的自适应索引方法、产品、介质及设备,涉及数据检索领域。本发明将空间维度和时间维度共同作为索引项,每一条索引项对应实际记录中的一条时空数据,相比传统方案减少了数据冗余和索引存储空间。本发明针对同一动态时空对象,使用数据追加的方式将时空数据插入到索引树中,当需要查询已存储的时空数据时,根据时空检索条件在数据库中执行广度遍历的查询机制,将满足时空检索条件的时空数据全部返回。本发明中一个动态时空对象确定一条数据库记录,一条数据库记录确定唯一的索引记录,减少了索引大小,提高了索引性能,对长期静止的数据也能够正确处理,保证了检索准确性和检索效率,能够满足多场景下的业务需求。

主权项:1.一种动态时空对象数据的自适应索引方法,其特征在于,包括:根据动态时空对象的时空数据在数据库中创建轨迹类型;所述动态时空对象包括车辆和飞机;所述轨迹类型将时空数据的时间点和位置点按照时间顺序进行排序整理,组成时间与空间一一对应的关系,即形成一条时空轨迹数据Traj={P1,P2,···PT},其中Pi=ti,loni,lati,zi表示第i个位置点,T表示位置点数量;ti表示第i个位置点对应时间,loni表示第i个位置点的经度,lati表示第i个位置点的纬度,zi表示第i个位置点的高度;在数据库中创建动态时空对象的存储表;所述存储表中包含轨迹类型的字段;创建动态时空对象的存储表t_traj,该存储表t_traj中包含轨迹类型trajectory的字段traj;实际车辆行驶轨迹的时空数据在存储表t_traj中按照自定义的trajectory类型数据结构组织存储;针对轨迹类型的不同应用场景创建不同数据结构的索引算子;所述轨迹类型的不同应用场景包括二维、二维+时间、时间维度、高度维度、三维、三维+时间共六个维度的应用场景,分别对应六种不同的数据结构类型box2d、box2dt、boxt、boxz、box3d以及box3dt;所述索引算子中包括操作符和索引函数;所述索引函数包括:函数consistent、函数union、函数compress、函数decompress、函数penalty、函数picksplit以及函数same;所述函数consistent用于根据给定的一个索引数据条目p和一个查询值q,确定索引数据条目是否与查询值一致;所述函数union用于将多条索引数据条目合并成新的索引数据条目,新的索引数据条目是多条索引数据条目的整合集;所述函数compress用于将时空数据转换成索引存储页中的数据结构类型;所述函数decompress用于将索引存储页中的数据结构类型转换成时空数据;所述函数penalty用于计算待插入的新索引数据条目插入到索引树中特定分支下的成本;所述函数picksplit用于当索引存储页中的数据量大小达到数据库设置的存储页大小时,对索引存储页进行拆分,从而确定新旧存储页上具体各自保存哪些索引数据;所述函数same用于判断两个索引数据是否相等;每当有新的时空数据需要存储时,基于创建的索引算子将时空数据插入到存储表对应的索引树中;所述每当有新的时空数据需要存储时,基于创建的索引算子将时空数据插入到存储表对应的索引树中,具体包括:每当有新的时空数据需要存储时,执行函数compress将时空数据转换成索引存储页中的数据结构类型;;其中boxndf是其他六种数据结构的父类;判断当前索引存储页中的数据量大小是否超出数据库设置的存储页大小,获得判断结果;当判断结果为是时,利用函数picksplit拆分当前索引存储页,将当前索引存储页中的索引数据拆分成新旧两组数据;利用函数union将新旧两组数据分别合并成新的中间节点,索引树增加一层;当判断结果为否时,循环遍历索引树中的非叶子节点,利用函数penalty计算插入每一个非叶子节点的成本,并选择最小成本对应的中间节点作为待被插入的中间节点pold;时空数据是一个不规则的多维度体元结构,将时空数据转换为类型索引数据的过程,是计算时空数据中不同维度的最大值和最小值,将多个维度的极值点全部取出构成一个最小限定箱box的过程;新插入的非叶子节点会依次遍历R-Tree树的中间节点,利用函数penalty计算新插入非叶子节点的box与中间节点的p_box之间的成本代价值cost,选择成本最低min(cost)的中间节点作为待被插入的中间节点pold;具体算法描述如下:取两个box聚合之后的union_box;分别计算union_box与p_box面积和周长;计算union_box与p_box的面积差值和周长差值;返回两个差值最小的结果作为成本cost;成本低的标准是,新插入的非叶子节点能够被中间节点最大可能的包含进去,因此会分为三种情况:1)被包含:则计算的面积差值为0;2)相交或包含:会继续遍历后期的中间节点,找到差值范围最小的中间节点作为待被插入的中间节点pold;将非叶子节点追加到中间节点pold指向的叶子节点序列末尾,执行函数union将中间节点pold指向的叶子节点序列合并为新的中间节点pnew;执行函数same,判断pold和pnew是否相等,如果不相等则用pnew替换pold;当需要查询已存储的时空数据时,根据时空检索条件在数据库中执行广度遍历的查询机制,将满足时空检索条件的时空数据全部返回;当需要查询已存储的时空数据时,根据用户设置的时空检索条件去匹配某时间范围内对应的时空数据信息,向数据库执行以下的sql语句:selectidfromt_trajwheregt_2dtintersectstraj,gt_makebox2d116.5,39.5,117,40,'2015-08-1308:00:00','2015-08-1309:00:00';其中id表示动态时空对象的id,作为动态时空对象的唯一标识;gt_makebox2d是数据库中的自定义函数,用来计算一个时空范围;数据库接收sql执行语句后,经过语法解析、执行计划制定,匹配存储表t_traj对应的索引,在数据库中执行4DRtree广度遍历的查询机制,最终将满足where条件的时空数据全部返回。

全文数据:

权利要求:

百度查询: 国家海洋技术中心 动态时空对象数据的自适应索引方法、产品、介质及设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。