1.1 数据库与数据模型

1.1.1 数据库基本概念

1.数据(Data)

数据是指存储在某一种媒体上能够被识别的物理符号序列,它的内容是事物特性的反映。数据不仅包括数字、字母、文字和其他特殊字符,还包括图像、图形、声音、动画等多媒体数据。

2.信息(Information)

信息是经过加工处理并对人类客观行为产生影响的数据表现形式,是反映客观现实世界的知识。数据是信息的具体表现形式,数据经过加工处理后具有知识性并可以对人类活动产生有意义的决策作用。

信息客观存在于人类社会的各个领域,而且随着社会的变化而变化。从计算机的角度来看,信息是人们进行各种活动需要获取的知识。

3.数据处理(Data Processing)

数据处理是指将数据转换成信息的过程,它包括对数据的收集、存储、加工、分类、检索、统计、传播等一系列活动。

4.数据库(DataBase,DB)

数据库是按一定的组织形式存储在一起的相互关联的数据集合。数据库中的数据不是分散、孤立的,而是按照某种数据模型组织起来的。不仅数据记录内的数据之间是彼此相关的,数据记录之间在结构上也是有机地联系在一起的。

数据库的主要特点有:

(1)数据结构化;

(2)数据共享;

(3)数据独立性;

(4)可控冗余度。

5.数据库管理系统(DataBase Management System,DBMS)

数据库管理系统是为数据库的建立、使用和维护而配置的软件,是数据库系统的核心部分。数据库管理系统是在操作系统的支持下进行工作的,它提供了安全性和完整性等统一的控制机制,方便用户管理和存取大量的数据资源。

数据库管理系统的主要功能有:

(1)数据定义功能;

(2)数据操作功能;

(3)控制和管理功能。

6.数据库系统(DataBase System,DBS)

数据库系统是指引入数据库技术后的计算机系统,是一个具有管理数据库功能的计算机软/硬件综合系统。它实现了有组织地、动态地存储大量相关数据的功能,提供了数据处理和信息资源共享的便利手段。

数据库系统的主要组成有:

(1)数据库;

(2)硬件(计算机硬件设备);

(3)软件(数据库管理系统、操作系统);

(4)用户(应用程序设计员、终端用户、数据库管理员)。

7.数据库应用系统(DataBase Application Systems,DBAS)

数据库应用系统是在数据库管理系统(DBMS)支持下根据实际问题开发出来的数据库应用软件,通常由数据库和应用程序组成,如高校学生管理系统、高校教务管理系统等。

1.1.2 数据模型

1.实体

客观存在并且可以相互区别的事物称为实体。实体可以是实际事物(如一个班级、一名学生等),也可以是抽象事件(如一场比赛、一次考试等)。同类型实体的集合构成一个实体集。

描述实体的特性称为属性,例如,学生实体可以用学号、姓名、性别、专业等属性来描述。实体之间的对应关系称为联系,它反映了现实世界事物之间的相互关联。实体与实体之间的联系有三种类型:一对一联系、一对多联系和多对多联系。

2.数据模型的分类

数据库中的数据有一定的组织结构,这些结构反映了事物与事物之间的联系。对这种结构的描述就是数据模型,它表示数据与数据之间联系的方法。不同的数据模型以不同的方式把数据组织到数据库中。常用的数据模型有三种:层次模型、网状模型和关系模型。

(1)层次模型。层次模型以树形结构表示实体(记录)与实体之间的联系。层次模型像一棵倒置的树,根节点在上,层次最高,子节点在下,逐层排列。层次模型的示意图如图1.1所示。

层次模型的特点:仅有一个节点无父节点,这个节点即为树的根;其他节点有且仅有一个父节点,但可有多个子节点。

(2)网状模型。网状模型以网状结构表示实体与实体之间的联系,是层次模型的扩展。它既可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵向关系,网状模型可以方便地表示各种类型的联系,但结构复杂,实现的算法难以规范化。网状模型的示意图如图1.2所示。

图1.1 层次模型

图1.2 网状模型

网状模型的特点:可以有一个以上的节点无父节点,至少有一个子节点有一个以上的父节点,在两个节点之间有两个或两个以上的联系。

(3)关系模型。关系模型是以关系数学理论为基础的。它把数据结构看成一个二维表,每个二维表就是一个关系,关系模型就是由若干个二维表组成的集合,操作的对象和结果都是二维表。在二维表中,每一行称为一个记录,用于表示一组数据项;表中的每一列称为一个字段或属性,用于表示每列中的数据项;表中的第一行称为字段名,用于表示每个字段的名称,如表1.1所示。

表1.1 学生成绩表

关系模型的特点:表格中的每一列都是不可再分的基本属性,每一列都被指定一个不相同的名字,各行不允许重复,行、列的次序无关。

关系模型是目前最流行的数据库模型,其与层次模型、网状模型的区别在于数据描述的一致性。支持关系模型的数据库管理系统称为关系数据库管理系统,VFP系统就是一种关系数据库管理系统。

1.1.3 关系数据库

自20世纪80年代以来,新推出的数据库管理系统几乎都是基于关系模型的,VFP就是一种比较流行的关系数据库管理系统。

1.关系术语

(1)关系。关系就是指一个二维表,每个关系都有一个关系名。在VFP中,一个关系就称为一个数据表。

(2)元组。二维表中的行称为元组,在VFP中一行称为一个记录。

(3)属性。二维表中的列称为属性,每一列有一个属性名。在VFP中一列称为一个字段。

(4)域。域是指表中属性的取值范围,即不同元组对同一个属性的取值所限定的范围,例如,逻辑型属性只能从逻辑真或逻辑假两个值中取值。

(5)主关键字。主关键字是属性或属性的组合,其值能够唯一地标识一个元组。在VFP中表示为字段或字段的组合,例如在表1.1所示的学生成绩表中,“学号”就可以看做是标识记录的主关键字。

(6)外部关键字。如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,则这个字段(属性)就称为外部关键字。

(7)关系模式。对关系的描述,格式为:

关系名(属性1,属性2,…,属性n)

一个关系模式对应一个关系的结构,例如,学生成绩表的关系模式描述如下:

学生成绩表(学号,姓名,性别,成绩)

2.关系运算

(1)传统的集合运算。

并:设有两个具有相同结构的关系A和B,它们的并集是由属于A或属于B的元组组成的集合。

交:设有两个具有相同结构的关系A和B,它们的交集是由既属于A又属于B的元组组成的集合。

差:设有两个相同结构的关系A和B,A差B的结果是由属于A但不属于B的元组组成的集合,即差运算的结果是从A中去掉B中也有的元组。

(2)VFP中专门的关系运算。

选择:选择运算是指从关系中找出满足条件的记录的操作。选择运算是从行的角度进行运算,即从水平方向抽取记录。选择的条件以逻辑表达式的形式表示,逻辑表达式的值为真的记录被选取。

投影:投影运算是从关系中选取若干属性(字段)组成新的关系。投影运算是从列的角度进行运算,相当于对关系进行垂直分解。投影运算可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或属性的排列顺序不同。

连接:连接运算是关系的横向结合,将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的记录。

3.关系数据库

关系数据库是若干依照关系模型设计的二维数据表文件的集合。在VFP中,一个关系数据库由若干个数据表组成。

4.关系的完整性

(1)实体完整性。实体完整性是指主关键字的值在关系中必须是非空且唯一的。在关系中用关键字来唯一标识实体,关键字也就是关系模式中的主属性。

(2)域完整性。域完整性也称为用户定义的完整性。不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。域完整性就是针对某一具体关系数据库的约束条件。例如,性别的取值范围只能是“男”或“女”,学生的单科成绩的取值范围在0~100之间等。

(3)参照完整性。参照完整性是定义外部关键字与主关键字之间引用的规则,引用的时候必须取基本表中已经存在的值。

5.关系数据库的特点

不是所有的二维表都能称为关系型数据库,要称为关系型数据库,应具备以下特点。

(1)关系中的每一个数据项都是最基本的数据单位,不可再分。

(2)每一竖列数据项(即字段)属性相同。列数可根据需要而设,各列的次序可左右交换而不影响结果。

(3)每一横行数据项(即记录)由一个个体事物的各个字段组成。记录彼此独立,可根据需要而录入或删除,各条记录的次序可前后交换而不影响结果。

(4)一个二维表表示一个关系,其中不允许有相同的字段名,也不允许有两条记录完全相同。

1.1.4 关系数据库系统的发展

关系数据库随着计算机技术的发展而不断发展,主要经历了以下几个阶段。

1.人工管理阶段

计算机诞生的最初阶段,在硬件方面,外存储器采用的是低速度的纸带、磁带、卡片等,没有像磁盘这样速度快、存储容量大、支持随机访问、可直接存储的外存储器;在软件方面,没有专门管理数据的软件,数据包含在计算机或处理它的程序中。

这一阶段的数据管理任务,包括存储结构、存取方法、输入/输出方式等完全由程序员通过编程实现。

这一时期数据管理的特点是:数据与程序不独立,一组数据对应一组程序;数据不能长期保存,一个程序中的数据无法直接被其他程序使用,因此程序与程序之间存在大量的重复数据,即所谓的数据冗余。

2.文件系统管理阶段

20世纪50年代后期至60年代后期,计算机开始大量应用于各种数据管理软件中的数据处理工作,大量数据的存储、检索和维护成为紧迫的需求。此时,在硬件方面,可直接存取的磁盘成为外存储器的主流;在软件方面,出现了高级语言和操作系统。

在这一阶段,程序和数据有了一定的独立性,程序和数据分开存储,有了程序和数据文件的区别。数据文件可以长期保存在外存储器上多次存取。

3.数据库系统阶段

随着社会信息量的迅猛增长,计算机处理的数据量也相应增大,文件系统存在的问题阻碍了数据处理技术的发展,于是数据库系统便应运而生。

数据库也是以文件方式存储数据的,但是它是数据的一种高级组织形式,在应用程序与数据库之间,有一个数据库管理系统DBMS。数据库管理系统是为数据库的建立、使用和维护而配置的软件,在操作系统的支持下运行。数据库管理系统对数据的处理方式与文件系统不同。DBMS把所有应用程序中使用的数据汇集在一起,并以记录为单位存储起来,以便应用程序查询和使用,使多个用户能够同时访问数据库中的数据,减少数据的冗余度,提高数据的完整性和一致性,提高数据与应用程序的独立性,从而减少应用程序的开发和维护费用。

数据库系统从20世纪60年代问世以来,一直是计算机管理数据的主要方式。

4.分布式数据库系统阶段

20世纪70年代以前,数据库多是集中式的。网络技术的发展为数据库提供了良好的运行环境,使数据库从集中式发展到分布式,从“主机/终端”系统结构发展到“客户/服务器”系统结构。

分布式数据库在逻辑上像一个集中式数据库系统,实际上数据存储在不同地点的计算机网络的各个节点上。每个节点有自己的局部数据库管理系统,有很强的独立性。用户可以由分布式数据库管理系统(网络数据库管理系统)通过网络通信相互传输数据,实现数据的共享和数据的存取。