数据存储是数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。数据存储要命名,这种命名要反映信息特征的组成含义。数据流反映了系统中流动的数据,表现出动态数据的特征;数据存储反映系统中静止的数据,表现出静态数据的特征。
存储一张图片,常见两种思路:
1存储宽高、每个像素的RGBA值——位图
2存储宽高、每个几何图形——矢量图
一张图片,如果几何图形关系明确,用矢量图来存储,不但空间占用少,而且信息比位图全。因为位图没有表达出几何图形的关系,在缩放时位图只好失真。
同理,存储一系列数据时:
1如果不知道数据的关系,我们只好像位图一样把所有数据老老实实地存下来:
[1,2,3,5,6];
2如果知道数据的关系,我们就可以只存数据的关系。
例如用Generator存储一个斐波那契数列:
function*fibGenerator(){
leta=1,
b=1;
yielda;
yieldb;
while(true){
[a,b]=[b,a+b];
yieldb;
}
}
在编程时,多数情况下我们用第一种方式存储数据,例如用数组存下所有数据。但有时我们也需要使用第二种方式,因为我们不知道需要多少数据。有时候是真的不知道;有时候是不想知道,比如为了解耦。
常用的存储介质为磁盘和磁带。数据存储组织方式因存储介质而异。在磁带上数据仅按顺序文件方式存取;在磁盘上则可按使用要求采用顺序存取或直接存取方式。数据存储方式与数据文件组织密切相关,其关键在于建立记录的逻辑与物理顺序间对应关系,确定存储地址,以提高数据存取速度。