数据集是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的数据集的问题。它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数。每个数值被称为数据资料。对应于行数,该数据集的数据可能包括一个或多个成员。
顺序数据集也被认为是物理顺序集,用来记录按写入的先后顺序排列,新记录被附加到数据集的尾部。在顺序数据集里,数据是按顺序存取的,想要获取记录5,系统必须先读取前4个记录。
可以直接查看和修改,可以存放数据或者源码,可将其简单理解为PC上的根目录下的“文本文件”1。
基本简介最简单的情况下,只有一个变量,然后在数据集由一列列的数值组成,往往被描述为一个列表。尽管名称,这样一个单数据集不是一套通常的数学意义,因为某一个指定数值,可能会出现多次。通常的顺序并不重要,然后这样数值的集合可能被视为多重集,而不是(顺序)列表。
值可能是数字,例如真正的数字或整数,例如代表一个人的身高多少厘米,但也可能是象征性的数据(即不包括数字),例如代表一个人的种族问题。更一般的说,价值可以是任何类型描述为某种程度的测量。对于每一个变量,通常所有的值都是同类。但是也可能是“遗漏值”,其中需要指出的某种方式。
在统计数据集通常来自实际观测得到的抽样统计人口,每一行对应于观测的一个组成部分,人口。数据集可能会进一步产生算法为测试目的某些种类的软件。一些现代统计分析软件,如PSPP仍然存在的数据中的经典数据集的方式。
数据集在断开缓存中存储数据。数据集的结构类似于关系数据库的结构;它公开表、行和列的分层对象模型。另外,它包含为数据集定义的约束和关系。
数据集可以类型化或非类型化。类型化数据集是这样一种数据集,它先从基类派生,然后使用XML架构文件(.xsd文件)中的信息生成新类。架构中的信息(表、列等)被作为一组第一类对象和属性生成并编译为此新数据集类。
因为类型化DataSet类从基类DataSet继承,所以此类型化类承接DataSet类的所有功能,并且可与将DataSet类的实例作为参数的方法一起使用。
相形之下,非类型化数据集没有相应的内置架构。与类型化数据集一样,非类型化数据集也包含表、列等,但它们只作为集合公开。
Delphi4中有四种类型的标准数据集构件,分别是TTable、TQuery、TStoredProc和TClientDataSet。这些数据集构件都是从一个共同的基类TDataSet继承下来的,其中,只有TClientDataSet是直接从TDataSet继承下来的,而TTable、TQuery、TStoredProc的直接上级是TDBDataSet,TDBDataSet的上级是TBDEDataSet,TBDEDataSet的上级才是TDataSet。
TDataSet是所有数据集的抽象基类,它的大部分属性和方法是虚拟的或抽象的。所谓虚拟的方法,是指这些方法可以被派生类重载。所谓抽象的方法,是指这些方法只有声明,没有定义,派生类必须给出定义后才能调用这些方法,不同的派生类可以有不同的定义。
由于TDataSet中包含抽象的方法,您不能直接创建它的实例,否则会引起运行期错误。
如果从功能上划分,TDataSet的属性和方法可以分为这么几大块:打开和关闭数据集、浏览记录、编辑数据、书签管理、控制连接、访问字段、记录缓冲区管理、过滤、事件。
数据集的创建数据集的创建步骤如下:在ISPF主菜单下选择3-Utilitis,然后是2-DataSet,在面板最上面就会看到有8种操作可以进行,在选项区域输入字母 A,但是不要按 ENTER键,然后在数据集名字区域中输入新数据集的名字,但是同样也不要按ENTER键。名字可以用单引号引起来或不用引号引起来(LIB.SOURCE)以便TSO/ISPF能够自动的把当前的 TSO用户ID 作为HLQ 使用。然后在卷序号区域输入 WORK02,按ENTER键。 完成指定的参数设置并且按ENTER。
– Space Units =TRKS(这是一个为后面数据设置的单位,意为磁道)
– Primary quantity= 10 (为数据集分配 10 个磁道的主空间)
– Secondaryquantity = 5(5个磁道的追加空间)
– Directory blocks= 0(顺序数据集中不需要目录)
– Record format =FB (数据集的记录格式是FB)
– Record length =80 (逻辑记录的长度是 80 字节)
– Block size = 0(this tells z/OS to select an optimum value)(在Recordformat为FB的情况下,这个区域如果要自定义的话一定要是上一个参数Recordlength的整数倍)
– Data set type =BLANK(PDS代表分区数据集,HFS代表分级文件系统,是Z/OS UNIX文件系统,LIBRARY表示库,BLANK表示为空)
系统执行创建数据集的操作完毕以后,在屏幕的右上的角落,可以看到成功或者失败的消息。
数据集的列表总览创建的数据集就在创建数据集时指定的那个VOLUME中。但是,如果想看一看VOLUME下倒底有哪些数据数据集,则可以在ISPF下使用3.4即Dlist选项,在其中的Dsnamelevel右边填上用户名,或者HLQ,然后回车,就可以得到一个数据集的列表。
在这个界面中,用PF10和PF11左右翻动可以显示更多的信息,这种情况并不是真正的滚动;只有当使用PF11或PF10 时才能获得额外的信息。 第一个 PF11显示的内容包括磁道、使用百分比、分区和设备类型。分区值是用于获得显示磁道总数的分区数量。ISPF实用程序可以看到数据集实际使用的空间的大小,且如果可能的话,它还可以作为一个百分比来显示。第二个 PF11 显示的内容包括 DCB特性:数据集组织形式(DSORG)、数据集记录格式(RECFM)、逻辑记录长度(LRECL)和组块的长度(BLKSIZE)。PS代表顺序数据集,PO 代表分区数据集,VS 代表 VSAM 数据集,BLANK代表未知组织或者不存在数据集。
RECFM、LRECL 和 BLKSIZE应该是比较熟悉的。在某些情况下,若没有使用一个标准的访问方法或没有写入数据时,这些参数是不能确定的。VSAM数据集没有这些参数的直接数值,通常是以问号来表示。
在这个界面下按F1可以查看到可以对数据集进行的一些操作的命令,如S ,E,B等等,这时在某一个要编辑的数据集左侧,对应于上方蓝色的Command列下面输入命令,然后回车就可以执行命令了。比如用E,就马上进入该数据集的编辑状态2。
数据集的编辑在编辑环境下,有两种命令格式,一种是主命令,就是在Command那一行输入来使用的命令,它们常见的有:
AUTOSAVE ON/OFF:打开关闭自动保存;
AUTONUMON/OFF:自动重新编号行号(SAVE后生效);
CANCLE:取消所做的编辑并退出编辑环境;
CAPSON/OFF:退出编辑环境后系统自动将所有字母转换为大写/小写;
CHANGE(RCHANGE):替换字符,RCHANGE表示重复上次的替换。格式:CHANGE** ** [ALL];
FIND(RFIND):查找字符串;
RECOVERYON/OFF:设置编辑方式,ON表示用户可以通过UNDO命令取消上一次编辑操作;
RESET:重置编辑器,清除不需要的信息;
SAVE:保存当前修改,并继续编辑;
SORT:对文档行按字典顺序排序;
SUBMIT:提交作业;若作业是一段JCL程序,则通过该命令可以提交作业程序;
UNDO:取消上一次编辑(仅当在RECOVERYON编辑方式下);
s(setup)+member:创建新成员(PDS);
CUT:复制当前内容(配合CC和MM来使用);
PASTE:粘贴当前内容(配合CUT来用很常用);
COPY+member-name:复制同一DATASET下MEMBER内容(配合AB使用);
HEX ON/OFF:打开关闭十六进制编码形式;
HI+XXX:高亮显示某种语言(JCL COBOLREXX等等);
MEMBER+member-name:查询当前所有DATASET下该member是否存在;
PROFILE:列出当前编辑环境的所有的editorprofile;
HEX ON/OFF:打开关闭十六进制编码形式;
AUTOSAVE ON/OFF:打开关闭自动保存;
AUTONUMON/OFF:自动重新编号行号(SAVE后生效);
PROFILE,:列出当前编辑环境的所有的editorprofile;
PROFILE UNLOCK/LOCK:可以修改ISPF的editorprofile;
PACKON/OFF:是否将该MEMBER保存成PACK格式(一种主机上标准的压缩格式);
TABSON/OFF:编辑的时候是否允许用TAB键跳格;
如果是编辑REXX,COBOL,JCL等,可以用 HI REXX, HICOBOL, HI JCL,让语言的关键字高亮显示。这个对阅读程序帮助很大。命令 COPY member1 就会把 member1的内容拷贝到当前的文件中。命令 CUT可以把当前文件的内容拷贝到剪贴板中,然后到你要你要粘入的文件,使用PASTE 命令 拷贝到该文件。
CTRL+HOME显示隐藏十字光标;
另一种命令是行命令,是输入在文本行中的左侧EDIT下面列来使用的命令,常见的行命令如下:
C、CC、Cxx:拷贝命令。与其他行命令(A、B)或主命令 结合使用 C拷贝当前行,CC拷贝多行,用两个CC来定位,Cxx拷贝多行,XX表示行数;
I、IXX:插入命令。执行一次插入命令后,可直接按回车(ctrl)换行;
D、DD、Dxx:删除;
R、RR、Rxx:复制;
O:覆盖当前内容(结合C和R来用);
A:定位于当前行之前;
B:定位于当前行之后;
X、XX、Xxx:隐藏;
S、Sxx:显示隐藏的内容;
COLS:屏幕的刻度标尺;
UC、UCxx:转换成大写;
LC、LCxx:转换成小写;
TS:将一行文本切分为两行;
TF:将多行文本合并为一行;
行命令还有O,配合A,B一起使用能够覆盖指定的行相同位置还有列于最下行的功能键都有提示,就不说了。编辑完了F3可保存退出。F12不保存退出。
本词条内容贡献者为:
王海侠 - 副教授 - 南京理工大学