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中,从一个表中选择确定列的操作,称为投影。