项目执行中,常常有各类和追溯性相关的查询需求,比如“有多少条客户需求已经被系统需求覆盖” “软件需求的测试覆盖率是多少”“测试的执行率和通过率是多少”,如此等等,二者在ASPICE的标准中有明晰的定义,如下图所示(参考VDA软件ASPICE标准3.1)。

在Polarion中,如此跨数据表的查询并不能在界面上直接选择得出结果,需要自己写SQL查询语句,那这些查询语句怎么写呢?本文就以回答“有多少条客户需求已经被系统需求覆盖”这个问题为例进行解说,其他的触类旁通即可。先放结论,再做解析:
SELECT W1.C_PK FROM WORKITEM W1, PROJECT projWHERE proj.C_ID ='Project_Name’AND W1.C_TYPE = 'stakeholderRequirement’AND W1.FK_URI_PROJECT = proj.C_URIAND EXISTS(SELECT W2.C_PK FROM WORKITEM W2,STRUCT_WORKITEM_LINKEDWORKITEMS linkWHERE W2.C_TYPE = 'systemRequirement’AND W2.FK_URI_PROJECT = proj.C_URIAND link.FK_URI_WORKITEM = W1.C_URIAND link.FK_URI_P_WORKITEM = W2.C_URIAND link.C_ROLE = ‘satisfies’)
本SQL语句涉及三张数据表,分别是WORKITEM、PROJECT和STRUCT_WORKITEM_LINKEDWORKITEMS,数据表格式如下图所示(来自Polarion官方网站)。WORKITEM表——

PROJECT表——

STRUCT_WORKITEM_LINKEDWORKITEM表——

首先,要选出指定项目Project_Name下的客户需求总数。客户需求的WI(Work Item)是作为类型(C_TYPE)为stakeholderRequirement的数据存储在WORKITEM表中的,而WORKITEM表中又通过字段FK_URI_PROJECT作为外键连到PROJECT表中(字段前缀FK就为Foreign Key外键的缩写)。因此得出如下的语句。

SELECT W1.C_PK FROM WORKITEM W1, /选择范围WORKITEM数据表

PROJECT proj /选择范围PROJECT数据表

WHERE proj.C_ID =‘Project_Name’ /指定项目名

AND W1.C_TYPE = ‘stakeholderRequirement’ /选择类型为’stakeholderRequirement’相关方需求

AND W1.FK_URI_PROJECT = proj.C_URI /通过外键关联

其次,要在这些客户需求的WI中,筛出已经关联到下游系统需求的个数,这时就要使用EXISTS语句了,即筛选出客户需求WI存在被STRUCT_WORKITEM_LINKEDWORKITEMS表中的数据关联的部分,而且关联的类型是系统需求且关联的关系是“系统需求满足客户需求”,如果不是跨项目的话还需要加上项目限制,以下为EXISTS的限制语句和相关解析。

AND EXISTS

(SELECT W2.C_PK FROM WORKITEM W2, /选择范围WORKITEM数据表

STRUCT_WORKITEM_LINKEDWORKITEMS link /选择范围STRUCT_WORKITEM_LINKEDWORKITEMS数据表

WHERE W2.C_TYPE = ‘systemRequirement’ /关联WI类型为’systemRequirement’系统需求

AND W2.FK_URI_PROJECT = proj.C_URI /限制统一项目,如果跨项目可以无需该条件

AND link.FK_URI_WORKITEM = W1.C_URI /关联关系的被动方是W1的’stakeholderRequirement’相关方

AND link.FK_URI_P_WORKITEM = W2.C_URI /关联关系的主动方是W2’的’systemRequirement’系统需求,其中FK_URI_P_WORKITEM中的P指代Primary

AND link.C_ROLE = ‘satisfies’) /被关联条件是’satisfies’,即’systemRequirement’系统需求是为’satisfies’(满足)'stakeholderRequirement’相关方需求而存在,这在项目的admin中可以设置

合并这两步,就得到了上面的SQL语句,是不是很简单?其他的traceability语句也可触类旁通,修改类型和关联关系即可。

首发于本人知乎https://zhuanlan.zhihu.com/p/349600748

Polarion ALM数据库解析2 – SQL示例之ASPICE追溯性的查询语句相关推荐

  1. 1.19.7.Table API、SQL、数据类型、保留关键字、查询语句、指定查询、执行查询、语法、操作符、无排名输出优化、去重、分组窗口、时间属性、选择分组窗口的开始和结束时间戳、模式匹配

    1.19.7.Table API 1.19.8.SQL 1.19.8.1.概述 1.19.8.1.1.SQL 1.19.8.1.2.数据类型 1.19.8.1.3.保留关键字 1.19.8.2.查询语 ...

  2. SQL Server 调优系列进阶篇 - 查询语句运行几个指标值监测

    前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤.筛选条件分析.索引项优化等信息. 本篇我们分析在我们运行的过程中几个关键指标值的检测. 通过这些指标值来分析语句的运行问 ...

  3. SQL学习(二)之四大查询语句以及标准写法

    SQL四大查询语句--增删改查 增-INSERT INSERT INTO 表 (字段列表) VALUES(值列表) INSERT INTO `user_table` (`ID`, `username` ...

  4. SQL server模拟数据实现稍复杂查询语句

    目录 1 DISTINCT(不允许重复)的用法 2 BETWEEN(在某个范围内)的用法 3 IN(属于若干个孤立的值)的用法 4 NULL(空值)的用法 5 ORDER BY(排序)的用法 6 模糊 ...

  5. 数据库作业:SQL练习3 - SELECT(单表查询)

    这是一些单表查询的例题的练习. [3.29] SELECT * FROM Student WHERE Sno LIKE '201215121'; 等价于: SELECT * FROM Student ...

  6. 数据库第二节 sql表格创建及内容插入和查询

    CREATE TABLE employee( empno INT, ename VARCHAR(10), job VARCHAR(10), mgr INT, hiredate DATE, sai DO ...

  7. SQL语言基础:常用的数据查询语句

    1.创建表 语法格式: creat table <表名> ( <,列名><数据类型>[列级完整性约束条件] <,列名><数据类型>[列级完整 ...

  8. sql初学者指南_初学者SQL示例:SQL SELECT语句的用法

    sql初学者指南 SQLSELECT statements are used to retrieve data from the database and also, they populate th ...

  9. UI一揽子计划 19 (数据库管理系统、SQL语句、iOS 的数据库实现技术)

    一.数据库管理系统 1. 以一定的方式存储在一起; 2. 能为多个用户共享 3. 具有尽可能小的冗余度 4. 与程序彼此独立的数据集合 二.SQL语句 SQlite常用语句 注:SQlite语句 不区 ...

最新文章

  1. Oracle Database 9i 10g 11g编程艺术 深入数据库体系结构 第2版pdf
  2. AOP 工厂对象之ScopedProxyFactoryBean 原理解析
  3. 2018python培训-2018传智播客Python基础班+就业班(15期)
  4. MyDAL - .IsExistAsync() 使用
  5. 1018 Public Bike Management (30 分) 【难度: 难 / 知识点: 图论 最短路 图的遍历】
  6. hibernate入门知识-01
  7. python dag调度系统开发_基于机器学习的DAG调度平台
  8. tablayout 增加数字小标_Android中TabLayout添加小红点的示例代码
  9. 2022年中国研究生数学建模竞赛
  10. 将 N 叉树编码为二叉树
  11. 函数对称性常见公式_函数对称性
  12. java微信公众号图文消息编辑器,如何使用微信公众号自带的编辑器做出简洁舒适的图文排版...
  13. 服务器flv文件播放不了,解决win2003服务器不能播放flv文件格式的问题
  14. linux固件版本号_如何在Linux中找出固件版本
  15. 从汽车尾气过滤陶瓷孔检测看远心镜头的应用前景-工业相机
  16. 伪类选择器编写顺序以及注意事项
  17. 大天使之剑服务器维修公告,大天使之剑————【维护】8月17日更新维护公告...
  18. ASCII码作用简介
  19. ajax使用post函数(通过远程 HTTP POST 请求载入信息)
  20. 【ORACLE】错误代码大全

热门文章

  1. 图像处理 手写体英文字母的目标检测与识别 实验报告
  2. Armadillo使用介绍(四):向量创建
  3. uniapp Android11及以上系统的手机需要使用FileProvider方式分享
  4. 图书管理系统之读者信息管理实现
  5. ModuleNotFoundError: No module named ‘win32con‘
  6. 无忧SEO 网站推广技巧分享
  7. 《真正的程序员不要使用PASCAL》
  8. qq邮箱 北航邮箱配置 foxmail
  9. STM32H743,基于LL库实现adc采样(ADC+DMA+TIM)
  10. 周公解梦星座运势小程序搭建