atitit.软件开发概念--过滤和投影 数据操作

atitit.软件开发概念--过滤和投影 数据操作

投影的本质及扩展

物体在太阳光的照射下形成的影子(简称日影)就是平行投影。日影的方向可以反映时间

投影还比喻此物通过彼物表现出来的迹象。

作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

过滤和投影(projecting)集合,如books.{?#this.price<100}

OGNL支持类似数据库中的投影(projection) 和选择(selection)。 

投影就是选出集合中每个元素的相同属性组成新的集合,类似于关系数据库的字段操作。投影操作语法为 collection.{XXX},其中XXX 是这个集合中每个元素的公共属性。

选择就是过滤满足selection 条件的集合元素,类似于关系数据库的纪录操作。选择操作的语法为:collection.{X YYY},其中X 是一个选择操作符,后面则是选择用的逻辑表达式。而选择操作符有三种: 
? 选择满足条件的所有元素 
^ 选择满足条件的第一个元素 
$ 选择满足条件的最后一个元素 

例如:group.userList.{? #this.name != null}将获得某个group中user的name不为空的user的列表。

投影运算的含义简单点就是:从表中选择需要的属性列。

列是属性,行是元组..
而且作投影之后可能会出现重复项,比如:
 A B C  
a1 b1 c1  
a1 b2 c2  
a2 b2 c3  
作A的投影就是a1, a2;  减少了一行
总结: 
并:属性不变,元组可能增加(集合相等时不增加) 
交:属性不变,元组可能减少(集合相等时不减少) 
投影:属性可能减少(全投影时不减少),元组可能减少(投影后无重复项时不减少) 
笛卡尔积:属性增加,元组可能增加(只有1个元组时不增加)

影也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为:∏A(R)。
其中A是属性名(即列名)表,R是表名。

投影运算 从指定关系的属性(字段)集合中选取部分属性组成同类的一个新关系。由于属性减少而出现的重复元组被自动删除。投影运算针对的是属性。

数据库中的投影

在SQL中,从一个表中选择确定列的操作,称为投影。

参考

数据库~~~投影与除操作 - 夜雨阑珊 - 博客园.htm

原文地址:https://www.cnblogs.com/attilax/p/5963805.html