一、数据库系统概论
数据库系统管理数据的的方式是用数据库来组织和存储数据,利用数据库管理系统,在操作系统的支持下,统一管理和控制存储在磁盘上的数据库,各类用户通过不同的方式,借助于数据库管理系统(DBMS)来管理和访问数据库中的数据,数据库管理系统作为数据库系统的核心,大多遵循三级体系结构,为用户提供数据在不同层次上的抽象视图,在数据库管理系统中,采用三级模式结构,来描述三个级别的数据抽象,并在三级模式之间提供了二级映射机制,来完成各层间数据请求和结果转换,从而提供了数据的逻辑独立性和物理独立性,使得数据独立性成为数据库系统管理数据的显著特点
二、数据管理技术的发展
数据管理的三个阶段
1、人工管理
在20世纪50年代中期以前,计算机主要对数据进行批处理来完成科学计算,对数据的管理由用户在应用程序中,所以称为人工管理,人工管理数据阶段,外部存储器只有磁带、卡片和纸带等,还没有磁盘等直接存取设备,也没有出现操作系统和管理数据的软件,因此人工管理数据具有如下特点:
(1)数据面向应用
数据需要由应用程序自己设计、说明(定义)和管理,程序员在编写程序时自己规定数据的存储结构、存取方法和输入方式等。
(2)数据不保存
程序中的数据随着程序的运行完成,其所占用的内存空间同指令所占用的内存空间一起被释放,程序不能保存,数据更不能单独保存在计算机中
(3)数据不能共享
数据完全面向特定的应用程序,数据的产生和存储依赖于定义和使用数据的程序
多个程序使用相同的数据时,也必须各自定义,重复存储,因为数据不保存
一个程序所使用的数据,并不能为另一个程序所知,因此数据不能共享
(4)不具有数据独立性
数据独立性是指用户的应用程序与其所处理的数据是相互独立的,当数据的逻辑结构或物理结构发生变化时,应用程序保持不变的特性
在人工管理数据阶段,数据是面向应用的,当数据的存储结构发生变化时,必须由应用程序做相应的修改,对数据进行重新定义,因此,不具有数据独立性
2、文件系统管理
20世纪50年代末到60年代中期,计算机不仅用于科学计算,还开始大量用于数据管理,这个时期有了磁盘、磁鼓等直接存取设备,计算机所能处理数据的量和速度得到了提高,不仅能进行批处理,还能进行联机实时处理,开始出现了操作系统和高级语言,如DOS操作系统和BASIC语言,对数据的管理由操作系统中的文件系统功能来完成,所以称为文件系统管理
前面我们采用人工管理数据的方式,用C语言编程实现了求十个数据之和和最大值,现在文件系统可以把应用程序所管理的数据组织成数据文件,数据可以以“文件”长期保存在磁盘等外部存储器上,即数据可以脱离应用程序单独存储,可以重复使用
利用按文件名访问、按记录存取的文件管理技术,应用程序可以通过文件系统对磁盘上的文件中的数据进行操作,但文件的建立、存取、更新等操作,都要由应用程序来完成,数据仍需要用应用程序定义和管理
数据管理特点:
(1)由文件系统管理数据
(2)数据可以长期保存
(3)数据是面向应用的
由于利用文件系统,两个程序就可以“按名访问 ”相同的文件
(4)数据共享性
- 数据具有了一定的共享性
- 存在数据冗余
但对于在不同文件中存在的相同的数据则不能共享,例如在这三个数据文件中的关联数据只能冗余存储,而冗余存储会带来数据的不一致问题,比如学号相同表示同一个学生,可姓名却不相同,文件系统本身不能解决这个问题
因为数据文件可脱离应用程序单独存储在磁盘上,程序和设备之间具有了“设备独立性”,但由于数据仍然是面向应用的,因此数据和程序之间 仍缺乏数据独立性
(5)数据独立性
- 具有设备独立性
- 不具有数据独立性
3、数据库系统管理
20世纪60年代后期,计算机管理的数据对象的规模越来越大,应用范围也越来越广泛,数据量急剧膨胀,对数据处理的速度和共享性提出了新的要求,对多种应用、多种语言互相交叉地共享数据集合的要求越来越强烈,这个时期外存有了大容量磁盘、光盘,硬件价格也大幅度下降,相反软件的价格不断上升,编制和维护软件及应用程序的成本相对增加,其中维护的成本更高
数据处理上,联机实时处理要求更高,并开始出现了分布处理,以文件系统进行数据管理已不能适应数据管理的需要
为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库管理技术应运而生,标志性的事件有:
1963年,美国Honeywell公司的IDS系统投入运行,揭开了数据库技术的序幕
1965年,美国一家火箭公司利用该系统帮助设计了阿波罗登月宇航器,推动了数据库技术的产生
1968年,美国IBM公司研发了基于层次模型的数据库系统IMS
1969年,美国数据库系统语言协会下的数据库任务组提出了基于网状数据模型的的一个系统方案
1970年,美国E.F.Codd发表论文提出了关系数据模型
从此,数据库管理技术进入了蓬勃发展的时期
三、小结
1、计算机管理数据有三个阶段:人工管理、文件系统管理、数据库系统管理
2、人工管理和文件系统管理数据是面向应用的
3、用数据库系统管理管理数据将使应用程序摆脱繁杂的数据管理,实现了数据独立性(应用程序具有数据独立性)