1.1.1 文件及其分类
一、对比----以前认识和现在认识:
1)old:文件是最小单元,不能再细分。
new:域是最小单元。域--->记录----->文件
2)old:域---记录---文件,该格式以为是数据库文件的独创。
new:该格式是文件的先创,数据库文件在此基础上的推演。
(再次体现大道理:任何新生事物都以以前事物为基础,在其上发生小的微变。)
二、疑问:
1)一个视频文件:其记录是什么?其域是什么?
一个音频文件:其记录是什么?其域是什么?
一个office文件(比如Word文件):其记录是什么?其域是什么?
cc:例:
基本数据项:学号、姓名;
组合数据项:经理:正经理和副经理;
记录:一个学生:学生: 学号、姓名、班级……
医疗对象:病历号、姓名、姓名……
文件:对象集。
对比:txt: 数据项:字符;
记录:一段文字;
文件:整个文件;
图片1:数据项:像素;
记录:横向的一屏像素;
文件:整个图片;
图片2:(也可能没有,数据库三层,可以简化成两层:记录就是一条数据项!-->简化数据库模型:项,数据库;-->简化文件模型:数据项,文件)
数据项:像素;
文件:整个图片;
视频: 数据项:一个图片;记录:一帧;
文件:文件;
2)数据库文件与文件(文件系统中的文件),在域---记录的形式上有何异同?
不同的文件格式,存储组织方式都是不一样的。
3)书中说:“大多数文件系统不支持变长的域”
cc:根本上来讲,作为任何一个最基本的单元,都一定是最简单的,不可在划分的,基本单元。
所以,可变了,就不简单了,可划分了,不适合做域!
另外,作为任何事物的基本构件,效率一般很重要,可变的话,不太合适。
(1)主流的Windows、类Unix系统支持吗?哪些系统支持变长域,哪些系统不支持?
cc:不知道。
(2)数据库系统支持变长域吗?
cc:支持,blob类型,其他类型,确定;
(3)从物理存储的角度看:存在变长的域到底给文件(或者更准确的说:给文件的增删改查)带来哪些复杂性?
cc: 1.检索;
2.文件多分区读取,整合。
三、推广、演绎:
1)书中说:“记录是相关域的集合,可以看成是将一个单元供应用程序使用”,“用户和应用程序把文件当成单个实体”。
(1)站在应用程序的角度看:记录是其操作文件的最小单元,而非域。
(2)此处不要认为“操作”的最小单元就应该被当成单个实体,为什么呢?(cc:??不明白问题?)
个人认为:同一个文件内的各个记录有相同的访问控制属性、具体的绝对文件路径等。因此将文件定为单个实体,比将记录定为单个实体,在管理上要方便、简单的多。(具体答案后续书中应该会提供)
2)书中说:“访问控制常常在文件层上进行”,则非在记录层上或者域层。
(1)为什么呢?答案同1)(2)个人认为
(2)主流的Windows、类Unix系统是在文件层上进行的访问控制吗?哪些系统是,哪些系统不是?
cc:linux一切皆文件:
3)文件管理 = 文件说明 + 文件体
个人认为:文件说明存放着文件路径、访问控制权限、文件类型、磁盘存储方式(具体答案后续书中应该会提供)。因此非常重要!!!
4)书中说:“文件的权限由文件所有者或系统授予”
(1)哪些文件的权限是文件所有者能修改(授予)的,哪些是系统修改(授予)的?
用户文件---文件所有者,库文件,系统文件----系统。
但是个人认为:有时候利用命令工具也能修改库文件、系统文件。(cc:意见一致)
(2)如何修改?<1>通过图形界面操作来修改 <2>通过命令工具(此处只谈类Unix系统)chmod来修改RWX访问属性。
三、举例:
1)按用途分
(1)用户文件:用户自己创建的Word文档、text文本等。
(2)库文件:比如:iOS中UIKit库中的UIView.h文件则是库文件
(3)系统文件:如Windows中C盘中的一些文件。具体名字麻烦大家指出。
2)按访问控制属性分:
省略。