理论教育 数据库概述:解决数据冗余、独立性、共享与问题

数据库概述:解决数据冗余、独立性、共享与问题

时间:2023-08-18 理论教育 版权反馈
【摘要】:图1.3 数据库管理方式程序与数据之间的对应关系数据库系统的目标: 解决数据冗余问题,实现独立性,实现数据共享并解决由于数据共享而带来的数据完整性、安全性及并发控制等一系列问题。

数据库概述:解决数据冗余、独立性、共享与问题

1.1.1 数据、数据管理数据处理

数据、数据管理与数据处理是在学习数据库之前与数据库技术密切相关的三个基本概念。

1. 数据

数据是数据库中存储的基本对象,是指某一目标定性、定量描述的原始资料,包括数字、文字、符号、图形、图像以及它们能转换成的其他形式。数据用以荷载信息的物理符号,其本身并没有意义。信息是数据处理的结果,表示数据内涵的意义,是数据的内容和解释。例如用学号、姓名、年龄、系别这几个特征来描述学生时(2009021101,李峰,20,测绘工程系),这一记录就是一个学生的数据,又如用X、Y这一信息来表示某一点的平面位置,(3263245.462,21534357.126)这一记录就是描述某一个点的通用坐标数据。

2. 数据管理

数据库技术是基于数据管理的各项任务的需要而产生的。

数据管理是利用计算机硬件软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的在于充分有效地发挥数据的作用。实现数据有效管理的关键是数据组织。随着计算机技术的发展,数据管理经历了手工管理方式、文件管理方式、数据库管理方式三个发展阶段。这三个阶段的特点及其比较如表1.1所示。

表1.1 数据管理的三个阶段的比较

(1)手工管理方式

20世纪50年代中期以前,计算机对数据的处理主要限于手工管理(或称人工管理、自由管理、程序管理)方式阶段,计算机主要用于科学计算,这种方式要求用户必须掌握数据在计算机内部的存储位置和方式,才能在程序中使用这些数据。将要处理的数据交给应用程序直接管理,因而数据冗余很大,无法让数据共享,数据也不可能长期保存,而且数据必须依附于程序(如图1.1所示)。手工管理方式具有如下特点:

①数据不存储。由于当时的计算机主要用于科学计算,一般不需要将数据长期保存,只是在计算某一项目课题时将数据输入,用完就取走。不仅对用户数据如此处理,对系统软件有时也是这样。

②无专门的数据管理软件。数据需要由应用程序自身管理,没有相应的软件系统负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构,包括存储结构、存取方法、输入方式等,因而程序员的工作非常繁重。

③数据无共享。数据是面向应用的,一组数据只能对应一个程序。当多个应用程序涉及某些相同的数据时,由于必须各自定义,无法互相利用、互相参照,因此程序与程序之间有大量的冗余数据。

④数据不具有独立性。数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,这就进一步加重了程序员的工作量。

1.1 手工管理方式程序与数据之间的对应关系

(2)文件管理方式

20世纪50年代后期至60年代中期,计算机不仅应用于科学计算,还大量应用于经济管理,数据处理进入第二阶段——文件管理方式,这种方式是把数据集中存放在一个或多个数据文件中,用户在程序中通过一个名为“文件管理系统”的软件来使用数据文件中的数据,实现了按文件名访问,按记录存取的管理技术。文件管理仍是现在高级语言普遍采用的数据管理方式。在数据量较大的系统中,数据之间会存在着某种联系,文件系统中的数据就缺乏联系的结构。文件管理方式具有以下特点:

①数据长期存储。由于计算机大量用于数据处理,数据需要长期保留在外存上反复进行查询、修改、插入和删除等操作。

②由文件系统管理数据。由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录进行存取”的管理技术,可以对文件进行修改、插入和删除的操作。文件系统实现了记录内的结构性,但整体无结构。程序和数据之间由文件系统提供存取方法进行转换,使应用程序与数据之间有了一定的独立性,程序员可以不必过多地考虑物理细节,将注意力集中于算法。而且数据在存储上的改变不一定反映在程序上,大大节省了维护程序的工作量。

③数据共享性差,冗余度大。在文件系统中,一个文件基本上对应于一个应用程序,即文件仍然是面向应用的。当不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据的冗余度大,浪费存储空间。同时由于相同的数据重复存储、各自管理,容易造成数据的不一致性,给数据的修改和维护带来了困难。

④数据独立性弱。文件系统中的文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此要想对现有的数据再增加一些新的应用会相对困难,系统不容易扩充。一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。应用程序的改变,例如应用程序改用不同的高级语言等,也将引起文件的数据结构的改变。因此数据与程序之间仍缺乏独立性。可见,文件系统仍然是一个不具有弹性的无结构的数据集合,即文件之间是独立的,不能反映现实世界事物之间的内在联系。在文件管理方式阶段,程序与数据之间的关系如图1.2所示。

1.2 文件管理方式程序与数据之间的对应关系

(3)数据库管理方式

20世纪60年代后期,计算机性能得到提高,出现了大容量磁盘,磁盘容量大大增加且价格下降。在此基础上,使克服文件管理系统的不足而去满足和解决实际应用中多用户、多应用程序共享数据的要求成为可能,从而使数据为尽可能多的应用程序服务。在这样的背景下,进入数据处理发展的第三阶段——数据库管理方式,它把数据集中存放在一个数据库中,用户通过一个名为“数据库管理系统”的软件可以很方便地使用数据库中的数据。

这一阶段的特点是数据不再针对某一特定应用,而是面向全组织的,数据共享度高、冗余度小,具有整体的结构性,并且实现了对数据进行统一的控制。如图1.3所示。

图1.3 数据库管理方式程序与数据之间的对应关系

数据库系统的目标: 解决数据冗余问题,实现独立性,实现数据共享并解决由于数据共享而带来的数据完整性、安全性及并发控制等一系列问题。为实现这一目标,数据库的运行必须有一个软件系统来控制,这个软件系统成为数据库管理系统(Data Base Management System,DBMS)。

在数据库系统中所建立的数据结构,更充分地描述了数据间的内在联系,便于数据修改、更新与扩充,同时保证了数据的独立性、可靠性、安全性与完整性,减少了数据冗余,故提高了数据共享程度及数据管理效率

从文件管理系统到数据库管理系统,标志着数据管理技术质的飞跃。20世纪80年代后,微型机也配置了经过功能简化的数据管理软件,如常见的d Base,Fox Base,Fox Pro及Microsoft Access等就是这一类软件,数据库技术得到广泛的应用和普及。

3. 数据处理

数据处理是指对数据进行收集、存储、分类、计算、加工、检索、传输和制表等处理的总称。数据处理的目的是为了对原始数据进行加工,从而得到我们所需要的有价值的数据。数据处理是系统工程和自动控制的基本环节,贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响着人类社会发展的进程。

数据处理离不开软件的支持,数据处理软件包括: 用以书写处理程序的各种程序设计语言及其编译程序,管理数据的文件系统和数据库系统,以及各种数据处理方法的应用软件包。为了保证数据安全可靠,还有一整套数据安全保密的技术。

根据处理设备的结构方式、工作方式,以及数据的时间空间分布方式的不同,数据处理有不同的方式。不同的处理方式要求不同的硬件和软件支持。每种处理方式都有自己的特点,应当根据应用问题的实际环境选择合适的处理方式。数据处理主要有以下四种分类方式:

①根据处理设备的结构方式区分,有联机处理方式和脱机处理方式。

②根据数据处理时间的分配方式区分,有批处理方式、分时处理方式和实时处理方式。

③根据数据处理空间的分布方式区分,有集中式处理方式和分布处理方式。

④根据计算机中央处理器的工作方式区分,有单道作业处理方式、多道作业处理方式和交互式处理方式。

数据处理是对数据(包括数值的和非数值的)进行分析和加工的技术过程。包括对各种原始数据的分析、整理、计算、编辑等的加工和处理,比数据分析含义广。随着计算机的日益普及,在计算机应用领域中,数值计算所占比重很小,通过计算机数据处理进行信息管理已成为主要的应用。如测绘制图管理、仓库管理、财会管理、交通运输管理,技术情报管理、办公室自动化等。在地理数据方面既有大量自然环境数据(土地、水、气候、生物等各类资源数据),也有大量社会经济数据(人口、交通、工农业等),常要求进行综合性数据处理。故需建立地理数据库,系统地整理和存储地理数据减少冗余,发展数据处理软件,充分利用数据库技术进行数据管理和处理。

1.1.2 数据库与数据模型

在介绍数据库之前,引入三个最常用的基本概念。

1. 数据库(Data Base,DB)

数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上且数据是按一定格式存放的。

人们收集并抽取一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息。在科学技术飞速发展的今天,人们的视野越来越广,数据量急剧增加。过去人们把数据存放在文件柜中,现在人们借助计算机和数据库技术科学地保存和管理大量的复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。

因此数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为不同用户共享。

2. 数据库管理系统(Data Management System,DBMS)

数据库管理系统的建立是为了科学地组织和存储数据,高效地获取和维护数据。

数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它主要功能包括以下几个方面:

(1)数据定义功能

DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

(2)数据操纵功能

DBMS还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。

(3)数据库的运行管理

数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

(4)数据库的建立和维护功能(www.daowen.com)

它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序完成的。

3. 数据模型

数据库系统研究的对象是现实世界中的客观事物,以及反映这些事物之间的相互联系。但这些事物及其联系不能以它们在现实世界中的形式进入计算机,因此必须对客观事物及其联系进行抽象转换,使其以便于计算机表示的形式进入计算机。数据模型是指数据库的组织形式,它决定了数据库中数据之间联系的表达方式,即把在计算机中表示客观事物及其联系的数据及结构称为数据模型。根据组织方式的不同,目前常用的数据模型有四种。

(1)层次模型(Hierarchical Model)

层次模型是以记录数据为节点的树,节点之间的联系像一棵倒放的树,树根、树的分枝点、树叶都是节点。节点是分层的,树根是最高层。例如家谱、企事业中各部门编制之间的联系。

(2)网状模型(Network Model)

网状模型是以记录数据为节点的连通图,节点之间的联系像一张网,网上的连接点都是节点。节点之间是平等的,不分层次。例如同事、同学、朋友、亲戚之间的联系。

(3)关系模型(Relational Model)

关系模型中每个关系对应一张二维表,采用二维表来表示数据及其联系,表格与表格之间通过相同的属性建立联系。由于关系模型有很强的数据表示能力和坚实的数学理论,且结构单一、数据操作方便,最容易被用户接受,是目前应用最广的一种数据模型。例如学生成绩表、人事档案表。

20世纪80年代以来,世界知名数据库研发公司新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也大都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础。因此本书关于空间数据库的基础理论的重点也将放在关系数据库上面。

(4)面向对象模型(Object Oriented Model)

面向对象数据库系统支持面向对象数据模型(以下简称OO模型)。

也就是说,一个面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者; 而一个对象库是由一个OO模型所定义的对象的集合体。

1.1.3 数据库系统

1. 数据库系统的定义和构成

数据库系统(Data Base System,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成,如图1.4所示。

图1.4 数据库系统

包含数据库的计算机应用系统需要有足够大的内存空间来存放操作系统、DBMS、各类应用程序等,而且还需要有足够的外存空间来存储海量的数据信息。

DBMS对数据进行管理,是构成整个数据库系统运行的核心,是用户与数据库之间的接口。DBMS接收、分析并解释用户提出的命令请求,然后转到相应的处理程序去操纵(检索、存储、更新)数据库中的数据。

应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS是远远不够的,还要有专门的人员来完成,这些人被称为数据库管理员(Data Base Administrator,DBA), DBA负责数据库管理系统的全面维护工作,包括对数据库中的信息进行组织与存储,对数据库的性能及运行状况进行监控,对用户身份的合法性和有效性进行校验,从而保证数据库的正常生命周期。

2. 数据库系统的结构

美国ANSI/X3/SPARC的数据库管理系统研究小组为了提高数据库数据的逻辑独立性和物理独立性,于1975年、1978年提出标准化的建议,将数据库结构分为三级: 外模式(external scheme)、概念模式(conceptual scheme)和内模式(internal scheme)。

外模式对应用户级数据库,是用户看到和允许使用的那部分数据逻辑结构,因此也称为用户视图(view)、子模式和局部逻辑结构。用户根据DBMS提供的子模式,用查询语言或应用程序去操纵数据库中的数据。

概念模式简称模式,对应概念级数据库,是对数据库的整体逻辑描述,因此也称为全局逻辑模式。通常也称为数据库管理员视图,因为这是数据库管理员所看到的数据库。它是所有用户视图的一个最小并集,它把用户视图有机地结合成一个逻辑整体。

内模式对应物理级数据库,又称存储模式,它包含数据库的全部存储数据,数据存储在内存、外存介质上,这些数据是用一定的文件组织方法组织起来的一个个物理文件。它是系统管理员看到的数据库,因此也称为系统管理员视图。

对一个数据库系统来说,实际上存在的只是物理级数据库,它是数据访问的基础。而概念级数据库是物理级数据库的一种抽象描述,用户级数据库是用户与数据库的接口。

用户根据子模式进行操作,通过子模式到模式的映射与概念级联系起来,又通过模式到存储模式的映射与物理级联系起来。一个数据库管理系统的中心工作就是完成三级数据库之间的转换,把用户对数据库的操作转化到物理级去执行。概念模式向物理模式映射的过程,是数据库管理系统在操作系统的支持下完成的。

3. 数据库系统的特点与功能

与人工管理和文件系统相比,数据库系统的特点及功能主要有以下几个方面:

(1)数据结构化

数据库系统实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

在数据库系统中,数据不再针对某一应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,数据的最小存取单位是记录,粒度不能细到数据项。

(2)数据的共享性高,冗余度低,易扩充

数据库系统从整体角度看待和描述数据,数据不再面向某一个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。

所谓数据的不一致性是指同一数据不同拷贝的值不一样。采用人工管理或文件系统管理时,由于数据被重复存储,不同的使用和修改不同的拷贝时就很容易造成数据的不一致。在数据库中数据共享,减少了由于数据冗余造成的不一致现象。

(3)数据独立性高

数据独立性是数据库领域中的一个常用术语,包括数据的物理独立性和数据的逻辑独立性。

物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序也不用改变。

逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。

数据独立性是由DBMS的二级映像功能来保证的。

数据与程序的独立,是把数据的定义从程序中分离出去,加上数据的存取由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

(4)DBMS对数据进行统一的管理和控制

数据库的共享是并发(Concurrency)的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中的同一个数据。

为此,DBMS还必须提供以下几个方面的数据控制功能:

①数据的完整性(Integrity)检查。保证数据的正确性,要求数据在一定的取值范围内互相之间满足一定的关系。比如规定考试成绩在0分到100分之间,血型只能是A型、B型AB型和O型中的一种,等等。

②数据的安全性(Security)保护。让每个用户只能按指定的权限访问数据,防止不合法地使用数据,造成数据的破坏和丢失。比如学生对于课程的成绩只能进行查询,不能修改。

③并发(Concurrency)控制。对多用户的并发操作加以协调和控制,防止多个进程同时存取、修改数据库中的数据时发生冲突、造成错误。比如在学生选课系统中,某门课只剩下最后一个名额,但有两名学生在两台选课终端上同时发出了选这门课的请求,必须采取某种措施,确保两名学生不能同时拥有这最后一个名额。

④数据库恢复(Recovery)。当数据库系统出现硬件软件的故障或者遇上误操作时, DBMS应该有能力把数据库恢复到最近某个时刻的正确状态上来。

(5)为用户提供了友好的接口

用户可以使用交互式的命令语言,如将在下一阶段介绍的SQL(Structured Query Language,结构化查询语言)语言,对数据库进行操作; 也可以把普通的高级语言(如C++语言等)和SQL语言结合起来,从而把对数据库的访问和对数据的处理有机地结合在一起。总而言之,用户可以很方便地对数据进行管理。

综上所述,数据库是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。

数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。

目前,数据库已经成为现代信息系统不可分离的重要组成部分。具有数百万甚至数十亿字节信息的数据库已经普遍存在于科学技术、工业、农业、商业、服务业和政府部门的信息系统。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈