软考 系统架构设计师系列知识点之数据库基本概念(2)

接前一篇文章:软考 系统架构设计师系列知识点之数据库基本概念(1)

所属章节:

第6章. 数据库设计基础知识

          第1节 数据库基本概念

6.1.1 数据库技术的发展

数据处理是对各种数据进行收集、存储、加工和传播的一系列活动。数据管理是对数据进行分类、组织、编码、存储、检索和维护的活动。数据管理技术的发展经历了3个阶段人工管理文件系统数据库系统阶段。

1. 人工管理阶段

早期的数据处理都是通过手工进行的,因为当时的计算机主要用于科学计算。计算机上没有专门管理数据的软件,也没有诸如磁盘之类的设备来存储数据。在人工管理阶段,数据处理具有以下几个特点:

(1)数据量较少

数据和程序一一对应,即一组数据对应一个程序,数据面向应用,独立性很差。

(2)数据不保存

该阶段计算机主要用于科学计算,一般不需要将数据长期保存,只在计算一个题目时,将数据输入计算机,计算完成得到计算结果即可。

(3)没有软件系统对数据进行管理

程序员不仅要规定数据的逻辑结构,而且在程序中还要设计物理结构,包括存储结构、数据存取方法、输入输出方式等。

手工处理数据有两个缺点:

(1)应用程序与数据之间的依赖性太强,不相互独立。

(2)数据组和数据组之间可能有许多重复数据,造成数据冗余

2. 文件系统阶段

由于大容量的磁盘等辅助存储设备的出现,专门管理辅助存储设备上数据的文件系统应运而生。在文件系统中,按一定的规则将数据组织称为一个文件,应用程序通过文件系统对文件中的数据进行存取和加工。

在文件系统阶段中,数据管理的特定如下:

(1)数据不属于某个特定的应用,即应用程序和数据之间不再是直接的对应关系,数据可以重复使用。但是文件系统只是简单地存取数据,相互之间并没有有机的联系,即数据存取依赖于应用程序的使用方法,不同的应用程序仍然很难共享同一数据文件。

(2)数据可以长期保留,数据的逻辑结构和物理结构有了区别,程序可以按照文件名称访问文件,不必关心数据的物理位置,由文件系统提供存取方法。

(3)文件组织形式的多样化,有索引文件、链接文件和Hash文件等。但文件之间没有联系、相互独立,数据间的联系要通过程序去构造。

文件系统具有如下缺点:

(1)数据冗余(Data Redundancy)

文件与应用程序密切相关,相同的数据集合在不同的应用程序中使用时,经常需要重复定义、重复存储,数据冗余度大。

(2)数据不一致性(Data Inconsistency)

由于相同数据的重复存储、单独管理,同样的数据可能存在于多个不同的文件中,给数据的修改和维护带来难度,容易造成数据的不一致性。

(3)数据孤立(Data Isolation)

即数据联系弱。由于数据分散在不同的文件中,而这些文件可能具有不同的文件格式,文件之间是孤立的,所以从整体上看,文件之间没有反映现实世界事物之间的内在联系,因此很难对数据进行合理的组织以适应不同应用的需要。

3. 数据库系统阶段

数据库系统是由计算机软件、硬件资源组成的系统,它有组织地、动态地存储大量关联数据,方便多用户访问。它与文件系统重要的区别数据的充分共享、交叉访问、与应用程序的高度独立性

数据库系统阶段数据管理的特点如下:

(1)采用复杂的数据模型表示数据结构

数据模型不仅描述数据本身的特点,还描述数据之间的联系。数据不再面向某个应用,而是面向整个应用系统数据冗余明显减少,实现了数据共享

(2)有较高的数据独立性

数据库也是以文件方式存储数据的,但是它是数据的一种更高的组织形式,在应用程序和数据库之间由DBMS负责数据的存取。DBMS对数据的处理方式和文件系统不同,它把所有应用程序中使用的数据以及数据之间的联系汇集在一起,以便于应用程序查询和使用。

数据库系统与文件系统的区别是:

  • 对应用程序的高度独立性

数据库对数据的存储是按照同一种数据结构进行的,不同的应用程序都可以直接操作这些数据。

  • 数据的充分独立性

数据库系统对数据的完整性、一致性和安全性都提供了一套有效的管理手段。

  • 操作方便性

数据库系统还提供了管理和控制数据的各种简单操作命令,容易掌握,使用户编写程序更为简单。

至此,“6.1.1 数据库技术的发展”的全部内容就讲解完了。更多内容请看下回。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 09:40:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 09:40:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 09:40:07       82 阅读
  4. Python语言-面向对象

    2024-04-06 09:40:07       91 阅读

热门阅读

  1. linux扩展正则表达式()

    2024-04-06 09:40:07       41 阅读
  2. mysql 常见数据处理 dml

    2024-04-06 09:40:07       34 阅读
  3. 每天学习一个Linux命令之ln

    2024-04-06 09:40:07       36 阅读
  4. 【无标题】

    2024-04-06 09:40:07       36 阅读
  5. es6的一些方法

    2024-04-06 09:40:07       36 阅读
  6. Github 2024-04-05 开源项目日报 Top10

    2024-04-06 09:40:07       41 阅读
  7. 如何利用GitHub和jsDelivr托管图片cdn

    2024-04-06 09:40:07       37 阅读