本节书摘来自华章计算机《数据库技术原理与应用教程(第2版)》一书中的第2章,第2.1节,作者 徐洁磐 操凤萍,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第2章 数据库的基础知识
本章将介绍数据库的基础知识,包括基本概念、基本结构、应用平台及特点等。本章内容十分重要,它对全书具有提纲挈领的作用。
2.1 数据库中的基本概念
1.数据
(1)数据的概念
数据(data)是现实世界中客体在计算机中的抽象表示。具体地说,它是一种计算机内的有限个数的一组符号表示。
由于数据是一种抽象的符号表示,因此它缺少语义,在必要时须对它作出语义解释。
(2)数据的性质分类
1)数据的持久性:从存储时间看,数据一般分为两部分,其中一部分与程序仅有短时间的交互关系,随着程序的结束而消亡,它们称为临时性(transient)数据。这类数据一般存放于计算机内存中。而另一部分数据则对系统起着长期持久的作用,它们称为持久性(persistent)数据,这类数据一般存放于计算机中的次级存储器(如磁盘)内。
2)数据的共享性:从其使用对象看,数据可分为私有性与共享性数据。为特定应用(程序)服务的数据称为私有性(private)数据,而为多个应用(程序)服务的数据则称为共享性(share)数据。
3)数据的超大规模性:从其存储数量看,数据可分为小规模、大规模及超大规模三种。数据的量是衡量与区别数据的重要标志,这是因为数据“量”的变化可能会引起数据“质”的变化。数据量由小变大后,就需要对数据进行管理、保护与控制。目前,当数据以超大规模形式出现时,一般均需管理、保护与控制。
随着技术的进步与应用的扩大,数据的特性不断发生变化,这些变化主要表现为:
- 数据的量由小规模到大规模进而到超大规模。
- 数据的服务范围由私有到共享。
- 数据的存储周期由挥发到持久。
数据的这些变化使得现代数据具有超大规模的、持久的和共享的特点,本书如不加特别说明,所提数据均具这三种特性。
近期来,数据特性又有了新的变化,数据的量由超大规模而到“海量”“巨量”规模,数据服务范围由共享到全球性共享,从而出现了互联网+与大数据分析等新技术应用。
下面我们讨论数据与软件间的关系。
(3)数据与软件
软件(software)是计算机科学的一大门类,它是建立在计算机硬件之上的一种运行(或处理)实体。软件一般由程序与数据两部分组成,其中程序给出了运行的过程表示,而数据则给出了运行的对象与结果。
在软件中,数据(主要指其结构)是其稳定部分,而程序则是可变部分,因此数据称为软件中的不动点(fixed point),它在软件中起着基础性的作用。它们间关系可见图2.1所示。
过去,软件是以程序为中心,而数据则以私有形式从属于程序。在这样的系统中,数据是分散、凌乱的,于是造成了数据管理的混乱,如数据冗余大、一致性差、结构复杂等多种弊病。但经过若干年的发展,数据在软件中的地位和作用发生了本质的变化,在软件中它已占据主体地位,而程序则已退居附属地位,从而形成了以数据为中心的结构。在这样的结构中,需要对数据进行集中、统一的管理,并使其为多个应用程序共享。这种结构如图22所示,它为数据库系统的产生与发展奠定了基础。
2.数据库
数据库(DataBase,DB)是数据的集合,它具有统一的结构形式,存放于统一的存储介质内,并由统一机构管理。它由持久、超大规模数据集成,并可被应用所共享。
数据库存放数据,数据按所提供的数据模式存放,它能构造复杂的数据结构以建立数据间内在联系与复杂关系,从而构成数据的全局结构模式。
3.数据库管理系统
数据库管理系统(Database Management System,DBMS)是统一管理数据库的一种软件(属系统软件),它负责如下工作:
(1)数据组织定义
数据库管理系统负责为数据库构建数据结构,它包括为数据库构建全局统一数据框架称全局模式以及局部数据框架称局部模式。
(2)数据存取的物理构作
数据库管理系统负责为数据模式的物理存取构作有效的存取方法与手段,如构作索引(index)、集簇(cluster)及分区(partition)等。
(3)数据操纵
数据库管理系统为用户使用数据提供方便,它提供数据查询、插入、修改以及删除的功能。此外,它还具有一定的运算、转换、统计能力以及一定的过程调用能力。
(4)数据的完整性、安全性定义与检查
数据库中的数据具有内在语义上的关联性与一致性,它们构成了数据的完整性。数据的完整性是保证数据库中数据正确性的必要条件,因此必须经常检查以维护数据的正确性。
数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,因此必须要对数据正确使用做出必要的规定,并在使用时检查,从而保证数据的安全性。
维护数据库的完整性与安全性是数据库管理系统的基本职能。
(5)数据的并发控制与故障恢复
数据库是一个集成、共享的数据集合体,它能为多个应用服务,因此就会出现多个应用对数据库的并发操作的情况。而在并发操作中,多个应用间的相互干扰会对数据库中的数据造成破坏,因此,必须进行必要的控制以保证数据不受破坏,这就是数据的并发控制。
同时数据库在运行时遭受外界破坏后有能力及时进行恢复,即数据的故障恢复。
(6)数据交换
数据库中的数据需要与外界数据主体进行交换,这种主体可以是操作员、应用程序,也可以是另一种数据体。数据库管理系统提供了数据交换的管理功能。
(7)数据的服务
数据库管理系统提供对数据库中数据的多种服务功能,如数学函数、输入/输出函数、数据转换函数、日期函数等,此外还提供数据复制、转储、重组、性能监测、分析等服务功能以及可视化界面平台服务等。这些服务可以函数、过程及组件形式出现,也可以工具及工具包等形式出现。
此外,数据服务还包括信息服务。信息服务主要以数据字典为主。数据字典是一组关于数据的数据(即元数据),它存放数据库管理系统中的数据模式结构、数据完整性规则、安全性要求等,此外,还包括数据管理中的多种参数。数据字典是数据库管理系统中的一个专门的系统数据库,它具有固定的模式结构,称为信息模式(information schema),用户可用查询语言对其操作,以获取数据库的结构性信息。
为完成以上功能,数据库管理系统一般提供以下统一的数据语言(data language):
1)数据定义语言(Data Definition Language,DDL):该语言负责数据的模式定义、表定义、视图定义与数据的物理存取构作。
2)数据操纵语言(Data Manipulation Language,DML):该语言负责数据的操纵,包括查询及增、删、改等操作。
3)数据控制语言(Data Control Language,DCL):该语言负责数据完整性、安全性的定义与检查以及事务、并发控制、故障恢复等功能。
以上三种语言都是非过程性语言,它们可以有多种表示形式。随着数据库系统发展,这三种语言已逐渐合并成为一种语言。
此外,数据库管理系统还提供与数据交换有关的语言与接口函数,同时还提供为用户服务的服务性软件,如程序包、函数库、类库、存储过程以及专用工具等。
4.开发性数据库管理
由于数据库的共享性,因此对数据库生成、维护等工作需要管理,其主要工作如下:
1)数据库生成:在数据库设计基础上建立数据模式,生成数据库。
2)数据库运行维护:在数据库运行过程中需对数据库进行监督以保证其运行效率。同时对数据库中数据的安全性、完整性、并发控制及系统恢复进行维护。此外,还须不断调整内部结构及参数,以改善数据库性能。
开发性数据库管理中的运行维护由数据库管理员(DataBase Administrator,DBA)负责实施。而数据库系统则由数据库程序员负责实施。
5.数据库系统
数据库系统(DataBase System,DBS)是一种采用数据库技术的计算机系统,它是一个实际可运行的,向应用系统提供支撑的系统。
数据库系统由五个部分组成:
- 数据库(数据)
- 数据库管理系统(软件)
- 数据库管理员(人员)
- 系统平台之一——硬件平台(硬件)
- 系统平台之二——软件平台(软件)
这五个部分构成了一个以数据库为核心的完整的运行实体。
在数据库系统中,硬件平台包括以下两类:
1)计算机:它是系统中硬件的基础平台,目前常用的有微型机、小型机、中型机、大型机及巨型机。近期还有移动终端、智能手机等。
2)网络:过去,数据库系统一般建立在单机上,但是近年来多建立在网络上,包括局域网、广域网及互联网,而其结构形式又以客户/服务器(C/S)方式与浏览器/服务器(B/S)方式为主。
在数据库系统中,软件平台包括三类:
1)操作系统:它是系统的基础软件平台,目前常用的有Windows与UNIX(包括Linux)两种,近期还有Android及iOS等。
2)数据库系统开发工具:为开发数据库应用提供的工具,包括过程化程序设计语言(如JAVA、C、C++等)、可视化开发工具(VB、PB、Delphi等),还包括近期与互联网有关的ASP、JSP、PHP、HTML及XML等工具以及一些专用开发工具。
3)中间件:在网络环境下,数据库系统中的数据库与应用间需要有一个提供标准接口与服务的统一平台,它们称为中间件(middleware)。目前使用较普遍的中间件有微软的 NET、ODMG的CORBA以及基于Java的J2EE等。它们为支持数据库应用开发、方便用户使用提供了基础性的服务。
6.数据库应用系统
数据库应用系统(DataBase Applied System,DBAS)是以数据库为核心,以数据处理为内容的应用系统,它利用数据库系统作应用开发,可构成一个数据库应用系统。数据库应用系统是由数据库系统、应用软件及应用界面三部分组成,具体组成包括:
目前很多的流行的应用系统都属于此种系统,它们一般也称为信息系统(Information System),例如管理信息系统(MIS)、企业资源规划(ERP)、办公自动化系统(OA)、情报检索系统(IRS)、客户关系管理(CRM)、财务信息系统(FIS)等均为信息系统。