CHAPTER 1
第1章
分布式数据库系统概论
1.1 引言及准备知识
分布式数据库系统(Distributed DataBase System,DDBS)是随着计算技术的发展和应用需求的推动而提出的新型软件系统。简单地说,分布式数据库系统是地理上分散而逻辑上集中的数据库系统,即通过计算机网络将地理上分散的各局域节点连接起来共同组成一个逻辑上统一的数据库系统。因此,分布式数据库系统是数据库技术和计算机网络技术相结合的产物。
分布式数据库系统与集中式数据库系统一样,包含两个重要部分:分布式数据库和分布式数据库管理系统。在介绍分布式数据库系统之前,先重温一下有关数据库和数据库管理系统的基本概念。
1.1.1 基本概念
1.数据库
数据库(DataBase,DB)的定义有很多。从用户使用数据库的角度出发,数据库可定义为长期存储在计算机内、有组织、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述、存储,具有较小的冗余度、较高的数据独立性并易于扩展,同时可为各种用户共享。数据库设计就是对一个给定的应用环境(现实世界)设计出最优的数据模型,然后,按模型建立数据库,如图1.1所示。典型的数据模型是E-R概念模型和关系数据模型。
图1.1 数据库模型
2.数据库管理系统
数据库管理系统(DataBase Management System,DBMS)是人们用于管理和操作数据库的软件,介于应用程序和操作系统之间。实际的数据库很复杂,对数据库的操作也相当烦琐,因此,需要有数据库管理系统有效地管理和操作数据库,使用户不必涉及数据的具体结构描述及实际存储就能方便、最优地操作数据库。DBMS不仅具有最基本的数据管理功能,还提供多用户的并发控制、事务管理和访问控制,以保证数据的完整性和安全性,并在数据库出现故障时对系统进行恢复。数据库管理系统可描述为由用户接口、查询处理、查询优化、存储管理四个基本模块和事务管理、并发控制、恢复管理三个辅助模块组成,其模型如图1.2所示。
图1.2 数据库管理系统模型
3.数据库系统
数据库系统(DataBase System,DBS)是指与数据库相关的整个系统。广义上讲,数据库系统由数据库、数据库管理系统、应用开发工具(运行环境)、应用系统和数据库管理员等构成,如图1.3所示。狭义的数据库系统只包括数据库和数据库管理系统。
图1.3 广义的数据库系统组成
4.模式
从现实世界的信息抽象到数据库存储的数据是一个逐步抽象的过程。美国国家标准协会的标准计划与需求委员会(American National Standards Institute, Standards Planning And Requirements Committee, ANSI-SPARC)根据数据的抽象级别为数据库定义了三层模式参考模型,如图1.4所示。
图1.4 ANSI-SPARC三层模式参考模型
外模式是数据库用户和数据库系统的接口,是数据库用户的数据视图(View),是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述,是同应用有关的数据的逻辑表示。一个数据库系统通常有多个外模式。外模式是保证数据库安全的重要措施,因为每个用户只能看见和访问特定的外模式中的数据。通常,由DBMS中的视图定义(Create View)命令定义数据库的外模式。
例如,某外模式定义如下:
模式是关于数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式是数据库中数据在逻辑级上的视图。一个数据库只有一个模式。模式以某种数据模型为基础,综合考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,如组成关系模式的属性名、属性的类型、取值范围,还要定义属性间的关联关系、完整性约束等。模式由DBMS中提供的模式描述语言定义。
例如,某模式定义如下:
内模式是关于数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式,如关系表的存储方式是按照堆存储还是按照属性值聚簇存储、索引是采用B+树索引还是采用哈希索引等。内模式由DBMS中提供的内模式描述语言定义。
例如,某内模式定义如下:
1.1.2 基础知识
在后面章节的学习中,将涉及关系模型、关系代数和SQL语言知识。下面给出简单介绍。
1.关系模型
关系模型是数据库的三种经典数据模型(层次数据模型、网状数据模型和关系数据模型)之一。关系是二维表,也称为表。表中的一行称为关系的一个元组,表中的一列称为关系的一个属性。
2.关系代数
关系是一个集合,关系的元组是集合的元素。常见的关系代数包括5个集合运算和3个关系运算。
5个集合运算为:
●并(UNION)运算:设有两个关系R和S,具有相同的关系模式,R和S的并运算的结果是由两个关系中所有元组组成的一个新关系,记为R∪S或R+S。
●交(INTERSECT)运算:设有两个关系R和S,具有相同的关系模式,R和S的交运算的结果是由两个关系中所有公共元组组成的一个新关系,记为R∩S。
●差(DIFFERENCE)运算:设有两个关系R和S,具有相同的关系模式,R和S的差运算结果是由属于关系R但不属于关系S的元组组成的一个新关系,记为R-S。
●乘(PRODUCT)运算:设R有m个属性,S有n个属性,R有i个元组,S有j个元组,R和S的乘(笛卡儿积)的运算结果是由(m+n)个属性、i×j个元组组成的一个新关系,每个元组的前m个分量(属性值)来自R的一个元组,后n个分量来自S的一个元组,记为R×S。
●除(DIVIDE)运算:设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组,R中的Y与S中的Y可有不同的属性名,但必须出自相同的值域。R和S的除运算得到一个新关系P(X),P是R中满足下列条件的元组在X属性上的投影:元组在X上分量值x的象集YX包含S在Y上投影的集合,记为R÷S。
3个关系运算为:
●选择(SELECT)运算:选择运算是从指定的关系R中选择满足条件(条件表达式)的元组组成的一个新关系,记为σ<条件表达式>(R)。
●投影(PROJECT)运算:投影运算是从指定的关系R中选择属性集A的所有值组成的一个新关系,记为∏A(R)。
●连接(JOIN)运算:连接运算有θ连接、等值连接和自然连接三种运算,θ是算术比较符号。设有关系R(A,B)和S(C,D),A、C出自同一值域,R和S的θ连接运算是由两个关系R和S中满足AθC连接条件的元组连接在一起组成的一个新关系,记为。若θ是等号(=),该连接操作称为等值连接,记为。若A、C具有相同的属性名,R和S的连接运算默认按A=C连接条件进行连接,并去除重复列属性,则为自然连接运算,记为R∞S。
3.SQL语言
SQL(Structured Query Language)是一种非过程性语言,提供了数据定义(建立数据库和表结构)、数据操作(输入、修改、删除、查询)、数据控制(授予、回收权限)等数据库操作命令,较好地满足了数据库语言的要求。美国国家标准协会(ANSI)与国际标准化组织(ISO)制定了SQL标准,相继推出了SQL/86、SQL/92、SQL/99、SQL/2003、SQL/2006等。SQL提供了灵活而强大的查询功能,具有可移植性。SQL已为广大用户所采用,成为用户访问数据库系统的标准接口语言。