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
atitit.软件开发概念--过滤和投影 数据操作的更多相关文章
- Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode
Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 不个网页title保存成个个文件的时候儿有无效字符的问题... 通常两个处理方式 ...
- Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php 1. RFC2396标准 including HTML 4.01 section ...
- Atitit.软件开发的几大规则,法则,与原则Principle v3
Atitit.软件开发的几大规则,法则,与原则Principle v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ...
- Atitit.软件开发提升稳定性总结
Atitit.软件开发提升稳定性总结 #----影响稳定性几个类别 3 1. 资源和内存泄漏溢出 3 2. 数据库/文件死锁 3 3. 类库冲突 3 4. 热更新热部署(业务可用性 3 5. 程序崩溃 ...
- Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向 1. 一个伟大的事业必然是过程导向为主 1 1.1. 过程的执行情况(有明确的执行手册及标准) ...
- Atitit.软件开发的几大规则,法则,与原则。。。attilax总结
Atitit.软件开发的几大规则,法则,与原则... 1. 设计模式六大原则 2 1.1. 设计模式六大原则(1):单一职责原则 2 1.2. 设计模式六大原则(2):里氏替换原则 2 1.3. 设计 ...
- Atitit.软件开发的几大规则,法则,与原则p821.doc
Atitit.软件开发的几大规则,法则,与原则p821.doc 1. 设计模式六大原则2 1.1. 设计模式六大原则(1):单一职责原则2 1.2. 设计模式六大原则(2):里氏替换原则2 1.3. ...
- Atitit.软件开发的非功能性需求attilax 总结
Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3. 7.6 数据库 database (imp by ati) ...
- Atitit.软件开发的非功能性需求attilax 总结At
Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3. 7.6 数据库 database (imp by ati) ...
随机推荐
- hdu-4725-The Shortest Path in Nya Graph-层次网络
我们依据每一个人的layer把同样layer的人分配到同一个层次中. 然后记录走到每一个层次的最小值. 假设这个最小值被更新了. 那么我们就更新与这个层次相连的层次上的点. 其它的就是最普通的spfa ...
- 使用 Kafka 和 Spark Streaming 构建实时数据处理系统(转)
原文链接:http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/index.html?ca=drs-&ut ...
- 最新office2003密钥
Microsoft Office Professional Edition 2003GWH28-DGCMP-P6RC4-6J4MT-3HFDY Office2003序列号注册码sn: WFDWY-XQ ...
- jsp+servlet+jdbc实现对数据库的增删改查
一.JSP和Servlet的简单介绍: 1.Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的Java程序,一个 ...
- Hive集成Mysql作为元数据时,提示错误:Specified key was too long; max key length is 767 bytes
在进行Hive集成Mysql作为元数据过程中.做全然部安装配置工作后.进入到hive模式,运行show databases.运行正常,接着运行show tables:时却报错. 关键错误信息例如以下: ...
- Java保存简单偏好的类
该类利用Preferences保存文本,数字等简单数据,在Windows平台下,它就保存到了系统注册表中,而Linux中它存在于用户目录下的一个隐藏文件中. public class Pref{ ...
- C++标准库简介
C++标准库的所有头文件都没有扩展名.C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能. <cname>形式的标准头文件[ <complex>例外]其 ...
- weblogic 内存 及 内存溢出
. 区分JVM虚拟机选项:Xms Xmx PermSize MaxPermSize JVM限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制 ...
- flowplayer视频播放插件[转]
最近项目中需要添加播放视频的功能,视频文件是flv格式的.在网上找了一些jQuery视频播放插件,还是觉得“flowplayer”要好一些.特将使用方法记录一下. flowplayer也有html5版 ...
- KineticJS教程(12)
KineticJS教程(12) 作者: ysm 12.舞台 12.1.舞台的大小 舞台创建后还可以用舞台对象的setSize(width, height)方法来设置舞台的宽度与高度. <scr ...