【数据库原理】数据库系统概述(一)

信息与数据.

信息(Infomation)的定义如下:

信息是人脑对于现实世界事物的存在方式、运动状态以及事物之间的联系的抽象反映

信息是客观存在的,人类有意识地对信息进行采集、加工和传递,从而形成了各种消息、情报、指令、数据及信号等。信息有三大特征:

  1. 信息源于物质和能量。信息不可能脱离物质而存在,信息的传递需要物质载体,信息的获取和传递需要消耗能量。
  2. 信息是可以被感知的。人类对于客观事物的认知,可以通过人体器官,也可以借助于制造出的各种仪器仪表。不同的信息源有着不同的感知形式。
  3. 信息是可以存储、加工和再生的。

数据(Data)的定义如下:

数据是由可识别符号组合而成的,这些符号的用途是记录信息。所以说数据是信息的具体表现形式。

我们以一个学生的基本情况为例,一位同学的学号是"X123",姓名是"TheShy",性别是"男",年龄是"21岁",我们可以用一组数据【X123,TheShy,男,21】来表示。当我们给这些符号赋予特定的语义后,它们就转化为可以传递的信息。所以,我们有"信息=数据+语义"的说法。
数据处理是将数据转换成信息的过程,包括对于数据的收集、管理、加工利用以及信息输出等一系列的过程。数据处理的目的大体上说有两个:

  1. 从大量原始数据中抽取和推导出有价值的信息,作为决策的依据;
  2. 借助计算机来科学地保存和管理大量复杂数据,以便人类能够充分利用其中的信息资源。

数据管理是数据处理中的一个过程,主要包括数据的分类、组织、编码、存储、维护和检索等操作。人们认为,对于这些数据管理的操作,应研制一个通用、高效又便捷的管理软件,从而最大程度地减少管理员的工作负担。数据库技术正是瞄准这一目标而研究、发展并完善起来的。

数据管理.

数据管理是数据处理的中心问题,随着计算机软、硬件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。

人工管理阶段.

20世纪50年代以前的计算机主要用于科学计算,当时的输入输出设备只有卡片、纸带和磁带这些,机器通过判定指定位置是否存在【空洞】来确定该位置上的二进制数值。软件也只有汇编语言,没有操作系统和管理数据的软件。所以,当时的使用者为了给程序提供数据,都必须手工制作【穿孔纸带】,因此称之为人工管理阶段。该阶段有4个特点,或者说缺点:

  1. 数据没有专门的存取设备。当时的计算机主要用于科学计算,对于数据保存的需求不是很迫切。当计算某一问题时才将原始数据随程序一起输入内存,运算后输出结果,此时数据和程序一起从内存中被释放。如果下次再计算同一问题,还需要将原始数据随程序一同输入内存。也就是说,由于没有像磁盘这样用于直接存取数据的存储设备,不仅参加计算的原始数据没有保存,计算后的结果也没有保存。
  2. 数据没有专门的管理软件。数据需要用应用程序自己管理,没有相应的软件系统负责数据的管理工作。每个应用程序不仅要规定数据的逻辑结构,还要设计数据的物理结构,包括输入数据的物理结构,对应于输入数据物理结构的计算方法以及输出数据的物理结构。
  3. 数据不共享。数据是面向程序的,一组数据对应一个程序。即使多个程序涉及一部分相同的数据,也必须各自定义,所以程序之间存在大量的冗余数据。
  4. 数据不具有独立性。由于上面所说的三个特点,当数据的类型、格式或者输入/输出方式等发生了变化时,应用程序就必须也进行修改,因此我们说,数据和程序不具有独立性。

文件系统阶段.

20世纪50年代末至60年代中期,计算机应用范围逐步扩大,除了科学计算以外,已经大量应用于信息管理。随着数据量的急速增加,数据的存储、检索和维护成为紧迫的需要。此时,在硬件方面已有了磁盘、磁鼓等数据存取设备;在软件方面出现了高级语言和操作系统,操作系统中有了专门管理数据的软件。文件系统阶段的数据管理有如下的6个特点:

  1. 数据以文件形式长期保存。数据以文件的组织方式,长期保存在计算机的磁盘上,可以被多次反复使用。应用文件可以对文件进行查询、修改和增删等处理。
  2. 由文件系统管理数据。文件系统提供了文件管理功能和文件的存取方法。文件系统负责把数据组织成具有一定结构的记录,并以文件的形式存储在存储设备上,这样,程序只与存储设备上的 文件名打交道,不必关心数据的物理存储(存储位置、物理结构),而由文件系统提供的存取方法实现数据的存取,从而实现了"按文件名访问,按记录进行存取"的数据管理技术。
  3. 程序与数据间有一定独立性。由于文件系统的出现,它在程序和数据文件之间起到了存取转换作用,使得程序与数据之间具有"设备独立性",即当改变存储设备时,不必改变应用程序。程序员也不必过多地考虑数据存储的物理细节,而得以将精力集中于算法设计上。
  4. 文件的形式已经多样化。由于有了磁盘这样的数据存取设备,文件就不再局限于顺序文件,索引文件、链表文件等新形式应运而生。因此,对于文件的访问方式既可以是顺序访问,也可以是直接访问。但文件之间是独立的,它们之间的联系还是需要通过程序去构造,所以文件的共享性较差。
  5. 数据有一定的共享性。有了文件以后,数据就不再专属于某一个程序了,而是可以由多个程序反复使用,例如.dat的视频文件,我可以选择通过腾讯视频打开,也可以选择用Windows自带的视频播放器打开。但文件结构仍然是基于特定用途的,程序依然是基于特定的物理结构和存取方法编制的,就像我无法用腾讯视频打开一个.txt文本文件。因此,数据和程序之间的依赖关系没有得到根本的改变。

不难看出,文件系统阶段已经比人工管理阶段的效率高出不少,但仍然有一些根本性的问题没有得到解决,主要表现在下面4个方面:

  1. 数据共享性差,冗余度大。一个文件大多数情况下对应于一个应用程序,即文件仍然是面向应用的。当不同的应用程序所使用的数据具有共同部分时,也必须建立自己的数据文件,而无法进行共享。
  2. 数据不一致性。这通常是由于冗余数据造成的。相同的数据会被不同应用程序的数据文件重复存储、各自管理,在对数据进行更新操作时,不但浪费磁盘空间,同时也容易造成数据的不一致性。
  3. 数据的独立性差。文件系统阶段的程序与数据之间有一定的独立性,但这种独立性主要体现在设备独立性,也就是当改变存储设备时,不必改变应用程序。这一阶段还未能彻底体现用户观点下的数据逻辑结构独立于数据在外部存储器的物理结构要求。因此,在文件系统中,一旦改变数据的逻辑结构,必须修改相应的应用程序,修改文件结构的定义。而如果应用程序发生变化,例如更换了程序设计语言,那么也将引起文件的数据结构的改变。
  4. 数据间的联系弱。文件与文件之间的联系是通过程序来构造的,文件与文件之间是独立的。所以,文件系统是一个无结构的数据集合,无法反映现实事物之间的内在联系。

数据库系统阶段.

20世纪60年代后期,计算机用于管理的规模更加庞大,应用越来越广泛,数据量急剧增加。为了解决多用户、多应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统(DataBase Management System,DBMS)。
DBMS克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。与人工、文件两种管理方式相比,DBMS阶段管理数据有着如下4个优点:

  1. 结构化的数据及其联系的集合。在数据库系统中,将各种应用的数据按一定的结构形式(即数据模型)组织到一个结构化的数据库中,不仅考虑了某个应用的数据结构,而且考虑了整个组织(即多个应用)的数据结构。这就意味着,数据库中的数据不再仅仅针对某个应用,而是面向全组织。不仅数据内部是结构化的,整体也是结构化的;不仅描述了数据本身,也描述了数据间的有机联系,从而较好地反映了现实世界事物间的联系。
    例如,我们建立一个学生成绩管理系统,其中包含【学生:学号,姓名,性别,系别,年龄】、【课程:课程号,课程名】以及【成绩:学号,课程号,成绩】三种结构化的数据,分别对应于三个文件。对比文件系统管理,由于文件只关注记录的内部联系,而不涉及不同文件之间的联系,要想查询某位学生的学号、姓名、所选的某一门课以及该课程的程序,需要编写一段很复杂的程序,也就是说不同文件之间产生联系只能发生在程序中。而采取数据库方式,由于数据库系统不仅描述数据本身,还描述数据之间的联系,上述查询可以非常容易地联机查到。
    在数据库系统中,不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。
  2. 数据共享性高、冗余度低。所谓的数据共享,说的是数据库中的一组数据可以被多个用户、多个应用共同使用。这是由于数据库系统从整体角度对待数据、描述数据,使得数据不再是面向某个或某些应用,而是全盘考虑所有用户的数据需求,面向整个应用系统,所有用户的数据都包含在数据库中。因此,不同用户、不同应用可以同时存取数据库中的数据。在数据库系统中,用户和程序不像在文件系统中各自建立自己的数据文件,而是从数据库中选用其中的数据子集(也就是需要的那部分)。该数据子集是通过DBMS从DB中经过映射而形成的逻辑文件。一个数据可能在物理存储上只存了一次,但可以将其映射到不同的逻辑文件里,这就是数据库系统提高数据共享、减少数据冗余的根本所在。
  3. 数据独立性高。所谓的数据独立性是指数据库中的数据与应用程序间相互独立,即数据的逻辑结构、存储结构以及存储方式的改变不影响应用程序。在数据库系统中,整个数据库的结构可以分为三级:用户逻辑结构、数据库逻辑结构以及物理结构。数据独立性分为两级:物理独立性和逻辑独立性。数据的物理独立性是指当数据库物理结构(如存储结构、存取方式、外部存储设备等)改变时。通过修改映射,使数据库逻辑结构不受影响,进而用户逻辑结构以及应用程序不改变。举例说明,当我们在更换程序运行的硬盘时,数据库管理系统会根据不同硬件,调整数据库逻辑结构到数据库物理结构的映射,保持数据库逻辑结构不变,因此用户逻辑结构无需改变。数据库的逻辑独立性是指当数据库逻辑结构(如修改数据定义、增加新的数据类型以及改变数据间的关系等)发生改变时,通过修改映射,用户逻辑结构以及应用程序不用改变。举例说明,在修改数据库的内容时,DBMS会根据调整后的数据库逻辑结构,调整用户逻辑结构到数据库逻辑结构的映射,保持用户逻辑结构访问的数据逻辑不改变,从而用户逻辑结构无需改变。
  4. 有统一的数据管理和控制功能。在数据库系统中,数据由数据库管理系统进行统一管理和控制。数据库可以为多个用户和应用程序所共享,不同的应用需求可以从整个数据库中选取所需要的数据子集。另外,对数据库中数据的存取往往时并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。所以为了保证数据库数据的正确、有效。DBMS需要提供一定程度的数据控制功能,包括安全性控制、完整性控制、并发控制以及数据恢复。

DBMS数据控制功能.

  1. 安全性(Security)控制。防止不合法使用数据库造成数据的泄露和破坏,使每个用户只能按规定对某些数据进行某种或某些操作和处理。保证数据的安全。例如,系统提供口令检查用户身份,放置非法用户使用系统。
  2. 完整性(Integrity)控制。系统通过设置一些完整性规则,确保数据的正确性、有效性和相容性。举例来说,正确性是指数据的合法性,例如年龄属性一般是数值型数据,就不可能为"A";有效性是指数据是否在其定义的有效范围内,如月份属性,其取值范围就是1~12的整数;相容性是指同一事实的两个数据应相同,例如一个学生不可能会有两个性别属性。
  3. 并发(Concurrency)控制。多个用户同时存取、修改数据库数据时,系统可防止由于相互干扰而提供给用户错误数据,并防止数据库被破坏。
  4. 数据恢复(Recovery)。由于计算机系统的硬件故障、软件故障、操作员的误操作以及其他的原因造成数据库中的数据不正确或数据丢失时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。

你可能感兴趣的:(数据库原理,数据库)