通过前面的学习可知,数据处理的中心问题是数据管理。随着计算机硬件和软件的发展,数据管理经历了人工管理阶段、文件系统阶段和数据库系统阶段三个发展阶段。数据库技术正是应数据管理任务的需要而产生、发展的。与人工管理和文件系统相比,数据库系统特点主要有以下几个方面。
1.数据结构化
数据库在描述数据时不仅要描述数据本身,还要描述数据之间的联系。在文件系统中,尽管记录内部已有了某些结构,但记录之间没有联系。数据库系统实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在数据库系统中,数据不再针对某一应用,而是面向全组织,具有整体的结构化。
2.数据共享性高,冗余度低,易扩充
数据库系统从整体角度描述数据,数据不再面向某个应用而是面向整个系统,因此,数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
数据中相容性指的是表示同一事实的两个数据应相同,否则就不相容或者满足某一约束关系的一组数据不应该发生互斥,否则就不相容。比如:同一个人不能有两个性别。
所谓数据的不一致性,是指数据的矛盾性、不相容性。产生数据不一致的原因主要有以下三种:一是由于数据冗余造成的;二是由于并发控制不当造成的;三是由于各种故障、错误造成的。
第一种情况的出现往往是由于重复存放的数据未能进行一致性地更新造成的。例如教师工资的调整,如果人事处的工资数据已经改动了,而财务处的工资数据未改变,就会产生矛盾的工资数。
第二种情况是由于多用户共享数据库,而更新操作未能保持同步进行而引起。例如,在飞机票订购系统中,如果不同的两个购票点同时查询某张机票的订购情况,而且分别为顾客订购了这张机票,就会造成一张机票分别卖给两名顾客的情况。这是由于系统没有进行并发控制,所以造成了数据的不一致性。
第三种情况下,当由于某种原因(如硬件故障或软件故障)而造成数据丢失或数据损坏,要根据各种数据库维护手段(如转存、日志等)和数据恢复措施将数据库恢复到某个正确的、完整的、一致性的状态下。
3.数据独立性高
数据独立性包括数据的物理独立性和数据的逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。也就是说,数据在磁盘上的数据库中的存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,而应用程序却不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序可以不变。数据与程序的独立,把数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
4.数据由DBMS统一管理和控制
数据由DBMS统一管理和控制,用户和应用程序通过DBMS访问和使用数据库。数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一数据。为此,DBMS还必须提供以下几方面的数据控制功能:
(1)数据的安全性(Security)保护
数据的安全性是指保护数据以防止不合法的使用造成数据的泄密和破坏。使每个用户只能按规定,对某些数据以某些方式进行使用和处理。
(2)数据的完整性(Integrity)检查
数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。
(3)并发(Concurrency)控制
当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果,或使得数据库的完整性遭到破坏,因此,必须对多用户的并发操作加以控制和协调。
(4)数据库恢复(Recovery)
计算机系统的硬件故障、软件故障、操作员的失误,以及故意的破坏会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为完整状态或一致状态)的功能,这就是数据库的恢复功能。
注: 数据库、数据库管理系统、数据库系统是三个不同的概念。数据库强调的是相互关联的数据;数据库管理系统强调的是管理数据库的系统软件;而数据库系统强调的是基于数据库技术的计算机系统。