14、基于冗余数据结构优化递归查询及VSM信息流保障方法

基于冗余数据结构优化递归查询及VSM信息流保障方法

1. 递归查询与冗余数据结构优化

1.1 递归查询背景

递归和分层数据库结构在商业应用中十分常见,用于表示企业层级、各类分类、物料清单、道路网络等。SQL:1999引入了递归查询,部分数据库系统实现了该功能,但仍有一些数据库(如MySQL)未实现。在这些数据库作为后端存储时,递归查询通常需要在客户端硬编码,效率较低。

1.2 冗余数据结构解决方案

为了更快地回答递归查询,提出使用冗余数据结构。具体方法是“全路径展开(full paths unrolling)”,即存储从每个节点到包含该节点的树的根节点的完整路径,每个路径用表 Paths 中的多个元组表示。

操作步骤如下:
1. 若应用程序员想使用全路径展开,需在实体类上添加注解 @unrolling(method = "full paths")
2. 首次访问数据库时,创建 Paths 表。
3. Paths 表填充数据后,在 Emp 表上安装适当的触发器,以保持路径数据的最新状态。
4. 若后端数据库未实现递归查询,Hibernate 在调用 getRecursive(String) 方法时会发送以下查询:

SELECT e . empId ,
       e . fname ,
       e . sname ,
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值