二十世纪五十年代中期以前,计算机主要用于科学计算。这一时期的外存只有纸带、卡片、磁带,没有磁盘等直接存取的设备,没有操作系统,没有管理数据的软件;数据处理方式基本是批处理。这一阶段的数据和程序之间的关系如下图所示:
人工管理数据特点:
a.不能单独保存数据。数据和程序是一个整体,数据只能为本程序所用,数据只有和相应的程序一起保存才有价值,否则毫无用处。
b.应用程序管理数据,计算机系统不提供对用户数据的管理功能。
c.数据不能共享,存在大量冗余,浪费存储空间。
二十世纪五十年代后期到六十年代中期,计算机开始大量用于数据处理工作,大量的数据存储、检索和维护工作提上议事日程。
此阶段硬件方面,拥有磁盘、磁鼓等直接存取设备;软件方面,操作系统中已经有专门的数据管理软件,一般称为文件系统;数据处理方式:批处理以及联机实时处理。文件系统阶段数据和程序之间的关系如下图所示:
文件系统管理数据特点:
a.数据以文件的形式长期保存在外部存储器上;
b.数据的逻辑结构和物理结构有了区别,但比较简单。程序与数据之间具有"设备独立性",即程序能实现按名存取,而不必关心数据的物理位置。
c.文件组织方式多样化,但文件之间相互独立、缺乏联系。数据之间的联系要通过程序去改造。
d.数据面向应用。 数据不再属于某个特定的程序,可以重复使用,即数据面向应用。但是文件结构的设计仍是给予特定的用途,程序基于特定的物理结构和存取方法,因此程序和数据结构之间的依赖关系并未根本改变。
e.文件系统管理数据由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录存取”的管理技术,可以对文件进行修改、插入、删除等操作;
缺点:数据冗余度大 、数据和程序缺乏独立性 、增删数据困难、 数据独立性差。
一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义,修改应用程序。例如,应用程序改用不同的高级语言等,将引起文件的数据结构改变,因此数据与程序之间仍缺乏独立性。
二十世纪六十年代后期以来,数据管理技术进入了数据库系统阶段。
此阶段 硬件方面:拥有大容量磁盘,硬件价格下降;
软件方面:软件价格上升,为编制和维护系统软件及应用程序的成本相对增加;
数据处理方式:统一管理数据的专门软件系统,即数据库管理系统。
数据库阶段数据和程序之间的关系如下图所示:数据库系统的特点:
a.数据结构化;
数据结构化是数据库与文件系统的根本区别。在文件系统中,尽管记录内部已经有了某些结构,但记录之间没有联系。
b.数据共享性高,冗余度低,易扩充;
数据库系统从整体角度描述数据,数据不再面向某个应用,而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。
c.数据独立性高
数据独立性包括物理独立性、逻辑独立性。
数据的物理存储改变,应用程序不需改变。数据与程序独立,把数据的定义从程序中分离,数据的存取由DBMS负责,简化应用程序的复杂程度,大大减少应用程序的维护和修改。
d.数据由DBMS统一管理和控制。
数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。
比较项目 |
人工管理 |
文件系统 |
数据库系统 |
|||
背景 |
应用背景 |
科学计算 |
科学计算、管理 |
大规模管理 |
||
硬件背景 |
无直接存取存储设备 |
磁盘、磁鼓 |
大容量磁盘 |
|||
软件背景 |
没有操作系统 |
有文件系统 |
数据库管理系统 |
|||
数据处理方式 |
批处理 |
批处理、联机实时处理 |
批处理、联机实时处理、分布处理 |
|||
特点 |
数据管理者 |
人 |
文件系统 |
数据库管理系统 |
||
数据面对的对象 |
某一应用程序 |
某一应用程序 |
整个应用系统 |
|||
数据共享程度 |
无共享、数据冗余度极大 |
共享性差、数据冗余度大 |
共享性高、数据冗余度小 |
|||
数据独立性 |
数据不独立、完全依赖程序 |
数据独立性差 |
数据具有高度物理独立性和逻辑独立性 |
|||
数据结构化 |
无结构 |
记录内有结构、整体无结构 |
整体结构化、用数据模型描述 |
|||
数据控制能力 |
应用程序自己控制 |
应用程序自己控制 |
由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中, 而概念模式提供了连接这两级的相对稳定的中间观点,并使得任何一级的改变都不受另一级的牵制。
(1)模式/内模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。
(2)外模式/模式映象:用于定义外模式和概念模式间的对应性。在外模式中描述。
两级映射关系如下图所示: