文章教程

中级通信工程师考试13.1.1数据库系统概述

8/24/2020 11:08:17 PM 人评论 次浏览

13.1.1 数据库系统概述

本节主要介绍数据库的基本概念和基本原理。

1.基本概念

数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的4个基本概念。

(1)数据

数据(Data)是数据库中存储的基本对象。数据给大多数人的第一个反应是数字,其实数字只是最简单的一种数据,是对数据的一种传统和狭义的理解。广义地理解,数据的种类很多,文字、图形、图像、声音、学生的档案记录、货物的运输情况等,这些都是数据。

可以对数据做如下定义:描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等。数据有多种表现形式,它们都可以经过数字化后存入计算机。

(2)数据库

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

(3)数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是位于用户与操作系统之间的数据管理软件。它的主要功能包括以下几方面。

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

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

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

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

(4)数据库系统

数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(DataBaseAdministrator,DBA)。

在一般不引起混淆的情况下常常把数据库系统简称为数据库。

数据库系统如图13-1表示。数据库系统在整个计算机系统中的地位如图13-2所示。

图13-1 数据库系统

图13-2 数据库系统在整个计算机系统中的地位

2.数据库系统的特点

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

(1)数据结构化

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

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

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

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

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

由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。

(3)数据独立性高

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

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

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

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

(4)数据由DBMS统一管理和控制

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

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

·数据的安全性(Security)保护。数据的安全性是指保护数据,以防止不合法的使用造成的数据泄密和破坏,使每个用户只能按规定,对某些数据以某些方式进行使用和处理。

·数据的完整性(Integrity)检查。数据的完整性是指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。

·并发(Concurrency)控制。当多个用户的并发进程同时存取、修改数据库时,可能会相互干扰而得到错误的结果,或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。

·数据库恢复(Recovery)。计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为完整状态或一致状态)的功能,这就是数据库的恢复功能。

3.数据模型

模型是现实世界特征的模拟和抽象。数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。

现有的数据库系统均是基于某种数据模型的。数据模型应满足3方面要求,一是能比较真实地模拟现实世界;二是容易为人所理解:三是便于在计算机上实现。在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。

不同的数据模型实际上是提供模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的层次。第一类模型是概念模型,也称信息模型,它是按用户的观点来对数据和信息建模。主要用于数据库设计。另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。

(1)数据模型的组成要素

一般地讲,数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常由数据结构、数据操作和完整性约束3部分组成。

1)数据结构

数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,它们包括如下两类。

一类是与数据类型、内容、性质有关的对象,如网状模型中的数据项、记录,关系模型中的域、属性、关系等。

一类是与数据之间联系有关的对象,如网状模型中的系型(SetType)。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。

数据结构是对系统静态特性的描述。

2)数据操作

数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。

3)数据的约束条件

数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。

此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学校的数据库中规定大学生入学年龄不得超过30岁,硕士研究生入学年龄不得超过38岁,学生累计成绩不得有3门以上不及格等。

(2)概念模型

概念模型是现实世界到机器世界的一个中间层次。

概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面还应该简单、清晰,易于用户理解。

1)概念模型中的基本概念

概念模型涉及的概念主要有如下几个。

·实体(Entity)。客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个职工、一个学生、一个部门、一门课、学生的一次选课、部门的一次订货、老师与系的工作关系(即某位老师在某系工作)等都是实体。

·属性(Attribute)。实体所具有的某一特性称为属性。一个实体可以由若干个属性来描述。例如,学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。如(94002268,张三,男,1976,计算机系,1994)这些属性组合起来表征了一个学生。

·码(Key)。唯一标识实体的属性集称为码。例如,学号是学生实体的码。

·域(Domain)。属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合,年龄的域为小于38的整数,性别的域为(男,女)。

·实体型(Entity Type)。具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。

·实体集(Entity Set)。同型实体的集合称为实体集。例如,全体学生就是一个实体集。

·联系(Relationship)。在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。

2)概念模型的表示方法

概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体—联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。

E-R图提供了表示实体型、属性和联系的方法。

·实体型:用矩形表示,矩形框内写明实体名。

·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。

·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。

3)最常用的数据模型

目前,数据库领域中最常用的数据模型有3种,分别是层次模型(Hierarchical Model)、网状模型(Network Model)和关系模型(Relational Model)。

·层次模型类似于倒置树形的父子结构,它构成层次结构。一个父表可以有多个子表,而一个子表只能有一个父表。层次模型的优点是数据结构类似金字塔。不同层次之间的关联性直接且简单:缺点是,由于数据纵向发展,横向关系难以建立,数据可能会重复出现,造成管理维护的不便。

·网状模型克服了层次模型的一些缺点。该模型也使用倒置树形结构。与层次结构不同的是,网状模型的结点间可以任意发生联系,能够表示各种复杂的联系。网状模型的优点是可以避免数据的重复性,缺点是关联性比较复杂,尤其是当数据库变得越来越大时,关联性的维护会非常复杂。

·关系模型突破了层次模型和网状模型的许多局限。关系是指由行与列构成的二维表。在关系模型中,实体和实体间的联系都是用关系表示的。也就是说,二维表格中既存放着实体本身的数据,又存放着实体间的联系。关系不但可以表示实体间一对多的联系,通过建立关系间的关联,也可以表示多对多的联系。

4.数据库系统结构

考察数据库系统的结构可以有多种不同的层次或不同的角度。

从数据库管理系统角度看,数据库系统通常采用三级模式结构。这是数据库管理系统内部的系统结构。

从数据库最终用户角度看,数据库系统的结构分为集中式结构、分布式结构、客户机/服务器结构和并行结构。这是数据库系统外部的体系结构。

下面介绍数据库系统的模式结构。

(1)数据库系统模式的概念

在数据模型中有“型”(Type)和“值”(Value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如,学生记录定义为(学号,姓名,性别,系别,年龄,籍贯)这样的记录型,而(900201,李四,男,计算机,22,江苏)则是该记录型的—个记录值。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

虽然实际的数据库管理系统产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构并提供两级映像功能。

(2)数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统是由模式、外模式和内模式三级构成。

1)模式(Schema)

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,与所使用的应用开发工具及高级程序设计语言无关。

模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

DBMS提供模式描述语言(模式DDL)来严格地定义模式。

2)外模式(External Schema)

外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

外模式通常是模式的子集,一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则其外模式描述就是不同的。即使对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。

DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

3)内模式(Internal Schema)

内模式也称存储模式(Storage Schema),—个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储、加密;数据的存储记录结构有何规定等。

DBMS提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格地定义内模式。

(3)数据库的二级映像功能与数据独立性

数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了如下两层映像。

·外模式/模式映像。

·模式/内模式映像。

正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

1)外模式/模式映像

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。

当模式改变(如增加新的关系、新的属性、改变属性的数据类型等)时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性。

2)模式/内模式映像

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了(如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。

数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。

数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式必须作相应改动,所以设计外模式时应充分考虑到应用的扩充性。

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。

数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

教程类别