文件系统方法的局限性

2025年1月31日 | 阅读 7 分钟

在本文中,我们将详细阐述文件系统方法的局限性。

引言

基于文件的系统是计算机化手动系统的早期尝试。在这个系统中,数据存储没有采用集中式方法,而是采用了分散式方法,每个部门都在数据处理专家的帮助下存储和控制自己的数据。

您所说的文件是什么意思?

它可以是程序或数据库。例如:您可以将每个学生的记录放入一个文件中。反过来,每个记录将包含单个数据项的字段,例如姓名、学号、班级等。下面给出了特定文件中记录数量的示例。

Limitations of File System Approach

在上图中,我们看到银行有不同的部门,每个部门都有自己的应用程序来管理和操作文件中的不同数据。对于银行系统,程序可以是借记或贷记账户、查找账户余额、添加新的抵押贷款或生成月度报表。在这种方法下,出现了大量的困难。

文件组织类型

文件是计算机记录,可以是文档或信息,以特定方式存储以便以后检索。它们可以根据应用程序类型和用户需求以不同方式组织在辅助存储设备上。

常用的文件组织方式有

  • 顺序文件
  • 直接文件
  • 索引顺序文件

让我们逐一了解每种文件组织方式

顺序文件:在顺序文件中,记录按升序或降序一个接一个地存储在辅助存储设备上,通常由主键决定。顺序文件组织的一些最常见示例是英文字典等。

例如:在某大学的总办公室文件中,学生的记录根据他们的学号存储。

Roll_No名称Class电话号码
121阿加姆BCA9874561204
122AnujBCA9884561204
123基拉特BCA9774561204
124马尼BCA9874551204
125曼西BCA8874551204

顺序文件的优点

  • 这种文件组织类型很简单。
  • 易于理解。
  • 它易于维护且高效,在定位特定记录时不会产生开销,尤其是当文件太长时。

顺序文件的缺点

  • 不可能在文件中间插入或删除记录,因为必须保持记录的顺序。
  • 只能通过使用序列顺序访问记录。

直接文件:直接文件是指数据以散布在磁盘上的方式组织的文件。在这种组织形式中,记录可以即时且以任何顺序访问。使用几种不同的策略来查找记录,包括相对寻址、散列和索引。

直接文件的优点

  • 直接文件的优点是数据可以直接快速访问,集中维护的数据可以保持最新,文件仍然可以使用辅助索引按顺序处理,事务在处理前不需要排序和序列化。

直接文件的缺点

  • 直接文件的缺点是,由于所有数据都必须存储在磁盘上,这些系统的硬件可能很昂贵,因为文件是直接更新的,如果文件被破坏则没有备份。

索引顺序文件:在这种文件组织中,记录可以随机访问,而无需从文件开头访问其他记录。在这种类型的文件中,记录按顺序组织。索引表用于加快对记录的访问,而无需搜索整个文件。

索引顺序文件的优点

  • 它允许以有效的方式进行记录的直接访问和顺序访问处理。

索引顺序文件的缺点

  • 这种类型的文件相对昂贵。
  • 需要硬件和软件资源,并且访问记录可能比直接文件慢。

文件系统方法的特点

以下是文件系统方法的一些重要特点的列表

  • 一些公司或组织的数据以“文件”形式保存。
  • 每个文件包含特定部门或领域的信息,例如图书馆、学生考试。
  • 传统文件系统比 DBMS 的灵活性差得多。
  • 维护文件的成本非常高。

以下是文件系统方法的局限性类型

  • 数据冗余和不一致:指数据的重复或复制。例如:在银行部门,姓名、地址、电话号码等字段名称可能在多个地方存储,例如储蓄文件、贷款文件和客户文件等。
    如果数据重复,一个文件中的数据在更新或删除操作期间可能不会在另一个文件中更新,从而导致数据不一致。通过这种方式,数据重复会产生数据不一致的问题。
    例如:如果客户的地址发生变化,并且该变化只反映在储蓄账户文件中,而未反映在其他文件中,那么贷款对账单可能会发送到错误的地址,这可能导致不一致。
  • 数据依赖性:它使文件系统对程序员和数据库管理员来说极其复杂,因为他们必须在所有使用该数据的文件中反映更改。因为数据文件和记录的物理结构和存储都保存在每个访问它的应用程序程序中。
    例如:考虑一个例子,学号从5位变为10位。程序员需要更改所有访问学号字段的程序。这是一个非常耗时的过程,并且容易出错。
  • 难以快速回答简单问题:在文件系统方法中,应用程序旨在回答一组预定义的问题。后来,随着一些额外的查询,现有应用程序无法处理所需的查询。因此,为了满足这些请求,我们必须开发新的应用程序,这非常耗时且困难。
    例如:假设我们想列出所有余额为10000的客户,那么我们必须手动获取或开发一个新程序。现在假设如果余额变为15000,那么我们需要再次更改程序以支持新查询。
  • 缺乏数据完整性和质量:数据完整性意味着存储在数据库中的数据是正确和可靠的。不准确和不完整的数据将破坏人们对数据库的信心。因此,在将数据存储到数据库之前,应检查其正确性。这通过应用某些类型的约束来实现。例如:基本工资应为正值,因此通过在应用程序程序中编写适当的代码将这些类型的约束添加到系统中。由于数据分散并重复在多个文件中,因此很难应用约束。因此,很难维护数据完整性和质量。
  • 数据共享困难:由于数据分布在各种文件中,并且可能以不同的格式存在,因此很难生成需要来自不同文件的数据的信息。为此,数据处理部门需要创建将文件转换为通用格式的应用程序,这是一个非常耗时的过程。
  • 事务问题:文件系统方法存在事务问题。因为计算机像任何其他机械或电气设备一样容易发生故障,例如磁盘崩溃、电源故障、软件错误等。这将导致不完整的事务或信息丢失。因此,至关重要的是要确保如果在应用程序程序执行期间发生系统故障,数据将恢复到故障发生前存在的连贯状态。
    例如:在银行系统中,一个应用程序程序将2000卢比从账户A转移到账户B,账户A和账户B的初始值分别为10000卢比和20000卢比。假设在应用程序程序执行期间,在从账户A中移除2000卢比之后和在将金额添加到账户B之前发生了系统崩溃,导致不一致的状态。因此,事务不应部分执行,而应完全执行。在文件系统方法中很难控制它。
  • 缺乏安全性:传统的存储文件方式无法达到文件管理系统提供的安全级别。一些安全功能包括锁定部分文件或系统本身部分的能力、有效的密码保护等。
  • 并发问题:并发访问是指两个或多个用户同时访问同一文件。在这种情况下,当两个或多个用户同时读取数据时没有问题,但是当他们想同时更新文件时,可能会导致问题。
    例如:两个客户同时从同一账户取款。假设A从10000中取出1000,余额剩下9000。当客户B从账户中取出500时,他认为余额将是10000,但余额是9000。这导致数据不一致。
  • 对现实世界的数据建模不足:文件系统方法无法设计一个数据库,该数据库能够展示组织每天面临的基本实体、关系和事件。复杂的数据和接口关系无法在系统中正式定义。
  • 数据的隔离和分离:当数据存储在单独的文件中时,访问数据会变得复杂。当必须从两个以上的文件中获取数据时,由于必须搜索大量数据,因此会变得非常复杂。