频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.1.2 文件管理系统

作者: 何玉洁 出处:机械工业出版社  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2007-04-12 21:37
关 键 词:数据库原理与应用
阅读提示:数据库技术是计算机科学中一个重要的组成部分,它正在以日新月异的速度发展。数据库的基本原理和应用技术已经成为高等院校的学生及广大技术人员必须掌握的知识。本书作者总结了多年教学经验,全面介绍数据库基础知识,既包括基础理论,又包括数据库的前、后端应用技术。本书注重基础知识的讲解,兼顾实用能力培养。
要想很好地理解现代数据库的特征,最好先看一下在数据库技术产生之前,人们如何保存和使用数据。
早期的数据是采用文件系统进行管理的,即将数据保存在文件中。用户的应用程序直接操作文件中的数据。在文件系统中,数据按其内容、结构和用途分成若干个命名的文件。文件一般为某一用户或用户组所有,但也可以指定与其它用户共享。用户可以通过操作系统对文件进行打开、读、写、关闭等操作。
假设现在用文件系统来实现对学生进行管理的程序。在此系统中,要对学生的基本信息和选课情况进行管理。在管理学生基本信息时要用到学生的基本信息数据,假设此数据存在F1文件中。学生选课情况的管理包括管理学生的基本信息、课程的基本信息和学生的选课信息,假设用F2和F3两个文件分别存储课程基本信息和学生选课基本信息数据。学生选课情况管理中涉及的学生基本信息可以使用学生基本信息管理系统中的F1文件。假设实现学生基本信息管理功能的应用程序叫A1,实现学生选课管理功能的应用程序叫A2,则学生的基本信息和选课情况可用图1-1表示。
假设F1、F2和F3文件分别包含如下信息:
F1包含学号、姓名、性别、出生日期、所在系、专业、所在班、特长、家庭住址。
F2包含课程号、课程名、授课学期、学分、课程性质。
F3包含学号、姓名、专业、课程号、课程名、修课类型、修课时间、考试成绩。
我们将文件中所包含的每一个子项称为文件结构中的字段或列,将每一行数据称为一个记录。
“学生选课管理”系统的处理过程大致为:在学生选课管理系统中,若有学生选课,则先查F1文件,判断有无此学生。若有此学生,则再访问F2文件,判断其所选的课程是否存在。若课程也存在,就将学生选课信息写到F3文件中。
这看起来似乎很好,但仔细分析一下,就会发现使用文件管理系统管理数据有如下一些缺点。
1. 编写应用程序不方便
应用程序编写者必须对所用文件的逻辑及物理结构(文件中包含多少个字段,每个字段的数据类型,采用何种存储结构,比如链表或数组等)有清楚的了解。操作系统只提供了打开、关闭、读、写等几个低级的文件操作命令,而文件的查询、修改等处理都必须在应用程序中通过编程实现。这样也容易造成各应用程序在功能上的重复,比如图1-1中的“学生基本信息管理”和“学生选课管理”都要对F1文件进行操作,但这两个功能相同的操作却很难共享。
2. 数据冗余不可避免
假设A2需要用到F3文件中包含的学生的所有或大部分信息,比如,除了学号之外,还需要姓名、性别、专业、所在系等信息,而F1中也包含了这些信息,因此F3和F1文件中有重复的信息。但这些重复的信息只是不同文件的部分内容,因此很难在两个文件中公用这些公共信息,从而造成数据的重复(也叫数据的冗余)。
数据冗余不仅会造成存储空间的浪费(其实,随着计算机硬件技术的飞速发展,存储容量不断扩大,空间问题已经不是解决问题时需要关心的主要问题),更为严重的是造成了数据的不一致。例如,假设某个学生所学的专业发生了变化,我们一般只会想到在F1文件中进行修改,而往往忘记了在F3中要进行同样的修改。这样就会造成同一名学生在F1文件和F3文件中的“专业”不一样,也就是数据不一致。人们不能判定哪个数据是正确的,尤其当数据冗余很多的时候,情况更是如此。这样数据就失去了其可信性。
文件系统本身不具备维护数据一致性的功能,这些功能完全由用户(应用程序开发者)负责维护。这在简单的系统中还可以勉强应付,但在复杂的系统中,若让开发者来保证数据的一致性,几乎是不可能的。
3. 应用程序有依赖性
就文件系统而言,应用程序要依赖于文件的结构。文件和记录的结构通常是应用程序代码的一部分,如C语言的struct。文件结构每进行一次修改,比如添加字段、删除字段甚至是修改字段的长度(如电话号码从7位扩到8位),都要对应用程序进行相应的修改,因为我们在打开文件读取数据时,必须要将文件记录中的不同字段的值对应到程序变量中。随着应用环境和需求的变化,修改文件的结构是不可避免的事情,这样就需要在应用程序中进行相应的修改,而频繁修改应用程序是很麻烦的。这是因为首先要熟悉原有程序,修改后还需要对程序进行测试、安装等。
以上弊端都是由于应用程序对文件结构过分依赖造成的。换句话说,文件系统的数据独立性不好。
4. 不支持对文件的并发访问
在现代计算机系统中,为了有效地利用计算机资源,系统一般允许多个应用程序并发运行(尤其是在现在的多任务操作系统环境中)。文件最初是作为程序的附属数据出现的,它一般不支持多个应用程序同时对同一个文件进行访问。我们可以回忆一下,假设某个用户打开了一个Excel文件,如果第二个用户在第一个用户没有关闭此文件之前就想打开此文件,他会得到什么信息?他只能以只读方式打开此文件,而不能在第一个用户打开文件的同时对此文件进行修改。我们再回忆一下,如果我们用C语言编写一个修改某文件内容的程序,其过程是先以写的方式打开文件,然后写入新内容,最后再关闭文件。在文件关闭之前,无论在其它的程序中还是在同一个程序中都是不能再打开此文件的,这就是文件系统不支持并发访问的含义。对于以数据为中心的应用系统来说,必须要支持多个用户对数据的并发访问。
5. 数据间的联系弱
在文件系统中,文件与文件之间是彼此独立、毫不相干的,文件之间的联系必须通过程序来实现。比如在上述的F1和F3文件中,F3文件中的学号、姓名等学生的基本信息必须是F1文件中已经存在的(即选课的学生必须是已经存在的学生)。同样,F3中的课程号等与课程有关的基本信息也必须是F2文件中已经存在的(即学生选的课程也必须是已经存在的课程)。这些数据之间的联系是客观需求当中所要求的很自然的联系,但文件系统本身不具备自动实现这些联系的功能,所以必须通过应用程序来保证这些联系,也就是说必须编写代码来手工地保证这些联系。这样不但增加了编写代码的工作量和复杂度,而且当联系很复杂时,也难以保证其正确性。因此,文件系统不能反映现实世界事物间的联系。
6. 难以按不同用户的需要表示数据
如果用户需要的信息来自多个不同的数据文件,我们就需要对多个文件的信息内容进行提取、比较、组合和表示。例如,假设有用户希望得到如下信息:
(所在班,学号,姓名,课程名,学分,考试成绩)
这些信息涉及三个文件。从F1文件中可以得到“所在系”信息,从F2文件中得到“学分”信息,从F3文件中得到“考试成绩”信息。而“学号”、“姓名”信息可以从F1或F3文件中得到,“课程名”可以从F2或F3文件中得到。我们在生成一行数据时,必须比较从三个文件中读取的数据,然后组合成一行有意义的数据。比如,将从F1文件中读取的学号与从F3中读取的学号进行比较,学号相同时,才可以将F1中的“所在系”、F3中的“考试成绩”以及当前所对应的学号和姓名组合成一行数据的内容。同样,在处理完F1和F3文件的组合后,我们可以将组合的结果再与F2文件的内容进行比较,找出课程号相同的课程的学分,再与已有的结果组合起来。如果数据量很大、涉及的表比较多时,可以想象这个过程有多复杂。因此,这种大容量复杂信息的查询,在文件管理系统中是很难处理的。
7. 无安全控制功能
在文件管理系统中,很难控制某个人对文件的操作,比如控制某人只能读和修改文件,不能删除文件,或者不能读或修改文件中的某个或者某些字段等等。而在实际应用中,数据的安全性是非常重要且不可缺少的。比如,在学生选课管理系统中,我们不允许学生修改他的考试成绩。在银行系统中,更是不允许一般用户修改其存款数额。
随着人们对数据需求的增加以及计算机科学技术的不断发展,对数据进行有效、科学、正确、方便的管理就成为人们的迫切需求。针对文件系统的这些缺陷,人们逐步开发出了以统一管理和共享数据为主要特征的数据库管理系统。
回书目   上一节   
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有