文件组织

计算机领域术语

文件组织是指文件的构造方式。文件用户按照自己的使用要求,把构成文件的元素组织起来,文件的这种结构叫文件逻辑结构

基本介绍
文件存取方法是由用户使用文件的要求、存贮设备特征来决定的,不仅要考虑到文件的逻辑结构,而且要考虑到文件物理结构
当我们讨论文件组织时,我们是在讨论一个文件中记录排列,因为所有文件都是由记录组成的。用户给出的修改文件内容的命令其实就是一个访问记录命令
记录格式
在每个文件里面,记录都应该具有同样的格式——它们可以定长或者变长。不管其具体格式,这些记录都可以是分块或者未分块。
定长记录是最常见的,因为它们最容易直接访问。这就是为什么它们是理想的数据文件。定长记录的关键是记录的大小。如果太小,小过了记录存储的字符数,那么多出的字符就要被截掉了。如果记录大小太大了,大过了要存储字符数,就会有空间的浪费。
变长记录不会有剩余空间和截掉记录,所以克服了定长的2个缺点。但尽管它也容易一个接一个读取,但因为记录的位置很难计算,所以直接读取很困难。连续访问的文件或者通过目录查找的文件经常使用变长记录格式记录格式,它如何分块,和其它相关信息都被保存在文件描述符里。
用来保存信息的空间根据系统各异,它由存储介质的物理性质所限制。
物理组织
一个文件的物理组织就是根据记录排列存储介质的特性来组织文件。
在一个磁介质磁盘上,文件组织可以是下面3种方法中的一种:顺序存储,直接存储,和顺序索引。为了选择最好的方法,程序员或者分析员必须要考虑下面特性的实际:
数据的挥发性——添加和删除的频率
文件的行为——在一个运行中,被处理的记录的百分比
文件大小
响应时间——完成操作之前用户要等待的时间。这在交互环境中的查找和修改信息中尤其重要。
顺序记录组织是最容易实现的,因为记录的存储和得到都是顺序的,一个接一个。为了找到一个记录,文件要从头开始查找直到找到这个记录。
为了加速这个处理过程,一些优化特性被加入系统。一个就是选择记录的一个关键区域,然后再存储记录前都是根据这个区域分类记录。然后当用户需要一个记录的时候,系统只是查找关键区域。当相匹配的记录找到或者关键区域比最后一次比较的记录小时,给出信息“没找到记录”,然后完成搜索。
尽管这个技术辅助查找处理过程,但因为当有记录添加或者删除的时候都要保存,它使得算法更复杂了。为了保存物理顺序,文件必须在更改的时候完成回写或者动态分类。
直接记录组织使用直接访问文件的方法,当然,只有在直接访问存储设备上才能实现。这些文件给用户提供了以任何顺序访问任何记录的灵活性,而不用从头开始寻找。这也是一个随机组织方法,其文件叫做随机访问文件。
记录是由它们的相对地址——它们到文件开始的相对位置来确定的。它们的逻辑地址是当文件被存储或者记录恢复的时候计算出来的。
这个方法很直截了当。用户通过记录格式来确定一个区域(或者区域组合),并标记为键域,它唯一确定每一个记录。程序通过一系列指令来保存数据,叫做散列算法,它将每一个键域编号,即记录逻辑地址。然后把这些交给信息管理器,它可以把逻辑地址通过几步转换成物理地址(簇,表面和记录号)并保持文件组织,检索记录过程也是同样的。
另外,直接访问文件可以连续访问,即从一个相对地址开始,然后增加地址来找到下一个记录
直接访问文件比顺序文件可以修改得更快,因为记录可以很快回写到它的原始地址。同时它也不需要保存记录的顺序,所以增加和删除文件可以用更少的时间。
电话邮购公司用散列的方法来直接访问客户信息。假设你在订货,你询问你的顾客号。(假设为152132727)。程序将从数据文件中按照散列算法的键值来计算出你的记录逻辑地址,(在348)。所以当服务员输入152132727,荧幕很快显示出同一个逻辑地址的顾客号。如果你在数据库中,操作员会很快知道,如果不在,你会很快知道。
散列算法的问题在于,一些有唯一主键(比如顾客号)的记录可能会有同一个逻辑地址——这里将产生冲突。在文件管理存储之前,它必须找到另一个逻辑地址。冲突的记录将被存在一个溢出区域,它在文件的生成时就被附加上了。尽管程序做到了从溢出区域与记录逻辑地址的连接,文件管理还是要处理空间的分配问题。
文件的最大尺寸在它生成的时候就确立了。最终,文件可能会完全写满或者存储在溢出区域的记录数已经太多了,这将导致数据检索的效率大大降低。在这两种情况下,文件必须重新组织和重新写入,这需要由编程者来干预。
索引顺序记录组织是顺序和直接访问的组合。它通过索引顺序访问方法(ISAM)来生成和维护记录,它消除了编程者处理溢出和保存记录顺序的负担。
这种组织方法避免了冲突,因为它没有用哈希算法来生成一个记录的地址。代替它的是,使用了该信息生成索引文件来实现记录的查找。这种组织将顺序的连续的文件分成了同等大小的块。它的大小由文件管理器来决定,以充分利用物理存储设备的优点并优化检索策略。每一个索引文件的项目包括最高的记录键和这个数据块的物理位置,即这个记录记录号最小的记录的存储位置。
因此,为访问文件中的记录,系统先搜索索引文件,然后进入物理位置。索引文件就像是一个数据的指示器。一个索引顺序文件也有溢出区域,但是它会扩展到整个文件(可能是很少的记录),所以已有的记录也可以扩展,新的记录可以生成在物理顺序与逻辑顺序最近的地方。另一个溢出区不在主要数据区域,而是只有在其它溢出区都充满了才用。我们叫它为最后记录的溢出区。
这个最后分配的溢出区可以在文件的有效时间内添加记录。记录是用软件包来实现逻辑顺序保存,而不用程序员投入太多的努力。当然,添加太多记录进程就会变慢,这是因为寻找一个记录必须从目录到主数据区最后才到溢出区。
当恢复时间变得太长,文件就需要重新组织。这个工作尽管不像组织一个直接访问文件一样枯燥,但通常仍要系统的分析员或者程序员来做。
对于大多数的动态文件,索引顺序可以选择,它允许直接访问一小部分记录和顺序访问很多记录。一个索引顺序文件的变体是B-tree
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市