分布式数据库系统1
分布式数据库技术- 原理、系统及其在Internet时代的新发展,顾君忠 Institute of Computer Applications ICA-ECNU E-mail: jzguica.stc.sh.cn http:/www.ica.stc.sh.cn,1. 数据库系统基础和原理,1.1 发展历史回顾 1.2 数据、数据库、数据库系统和数据库管理系统 1.3 数据模型和关系数据模型 1.4 SQL语言 1.5 数据库系统的存储和存取管理 1.6 数据库的可靠性和系统审计 1.7 并发控制和数据封锁 1.8 数据库系统性能评测 1.9 练习,1.1 发展历史回顾,从源头看,数据库技术的起源最早可以追溯到20世纪50年代后期。随着计算机的发展,计算机的应用从科学计算和过程控制逐步推广到了数据处理领域。从而产生了对数据库的原始需求。,从科学计算/过程控制到数据处理,问题起由: 数据冗余 数据过时-由于数据副本很多,数据难于及时得到修改。 数据与应用程序互相依赖,数据管理要求:,1.顾及所有处理过程,避免数据冗余。 2.提高应用程序相对于数据的独立性。 3.集中检查数据完整性。,数据管理,指如何对数据分类、组织、编码、存储、检索和维护,是数据处理的中心问题。,1:程序员自行编写输入输出子程序,直接把数据存贮在外存贮器上; 2:OS提供的存取方法如SAM、ISAM将I/O和存贮分配标准化,使应用程序摆脱了对存贮结构参数的依赖性。 3:专门的文件管理系统,承担数据的修改、排序和准备,提供报告生成程序 (RPG) 。程序员不再与数据存贮格式和类型打交道,从而达到了一定的数据独立性。 4:出现了公用的数据库系统,如 IMS以及按DBTG报告实现的系统,还出现了一批描述数据(DDL)和应用程序员用于处理数据(DML)的语言。 5:建立在关系模型或实体集合(entity set)模型基础上的。 6:语义数据模型,诞生了演绎数据库,数据库技术的语义化(智能化)。另一个发展是数据库技术的多媒体化。多媒体数据库也成了目前数据库技术发展的一个热点。网络化(分布化)是数据库技术发展的又一个重要方向。,历程,1人工管理阶段 2文件系统阶段 3数据库系统阶段,1.2 数据、数据库、数据库系统和 数据库管理系统,数据(data)-数据指描述事物的符号记录。文字、图形、图像、声音、学生的档案记录、货物的运输情况等都是数据。 数据库(database,简称DB)-数据库指长期存储在计算机内有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。,数据库管理系统(database management system,简称DBMS)-数据库管理系统指位于用户与操作系统之间的一层数据管理软件。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 数据库系统(database system,简称DBS)-数据库系统指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。,1.3 数据模型和关系数据模型,数据模型由三个要素组成: 数据结构 数据操作 完整性约束,数据模型,三个要素: 1数据结构-数据结构用于描述系统的静态特性,是所研究的对象类型的集合。数据模型按其数据结构分为层次模型、网状模型和关系模型。 2数据操作-数据操作用于描述系统的动态特性,是指对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作集合。 3数据的约束条件,数据模型主要有三类:,1.关系数据模型。 2.层次数据模型。 3.网状模型。,关系模型,三个基本概念 属性的域(Domain),它说明属性所有合理的取值。 规范化的关系(Relation),用它来定义所有合理的数据记录。 键(Key),它用于保持关系的集合特征。,关系模式由关系名、属性名的有穷集合 (A1,A2,An) (在一个关系模式内,属性名是一义性的)和属性名集合在域集合上的函数映射 FRN构成。若属性名A对应域DF(A),则A的所有属性值都属于 D。一个域可以与多个属性名对应。,保持关系R中元组一义性的属性或属性组被称为候选键。 从R的所有候选键中挑选一个作为主键。 如果某关系的一个属性(或属性组)与另外一个关系的某个候选键同域,则称之为外键.,定义1 域(Domain)是一组具有相同数据类型的值的集合。 例如,整数、实数、字符串、男,女,大于0小于等于100的正整数等都可以是域。,定义2 给定一组域Dl,D2,Dn,则Dl,D2,Dn的笛卡尔积为: Dl×D2××Dn(d1,d2, ,dn)|diDj, j=1,2, ,n 其中每一个元素(d1,d2,dn)叫作一个元组,元素中的每一个值di叫作一个分量。,定义3 Dl×D2××Dn的子集叫做在域Dl,D2,Dn上的关系,用R(Dl,D2,Dn)来表示。这里R表示关系的名字。,4关系的性质,(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 (2)不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。 (3)列的顺序无所谓,即列的次序可以任意交换。 (4)任意两个元组不能完全相同。 (5)行的顺序无所谓,即行的次序可以任意交换。 (6)分量必须取原子值,即每一个分量都必须是不可分的数据项。,1.3 关系代数,1并 关系R与关系S的并由属于R或属于S的元组组成,其结果关系仍为n目关系。记作RS。 2交 关系R与关系S的交由既属于R又属于S的元组组成,其结果关系仍为n目关系。记作RS。 3差 关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作R-S。 4广义笛卡尔积,选择 投影 连接 除,一些规则,规则2.1 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 规则2.2 参照完整性规则:若属性(或属性组)F是关系R的外键,它与关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值为取空值(F的每个属性值均为空值),或者等于S中某个元组的主键值。,1.3.1 函数依赖,定义1.3 令R(U)为一个关系模式,U是R的属性集合,XU和YU是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作XfY(有时简化为XY)。,1.3.2 完全函数依赖与部分函数依赖,定义1.4 在关系模式R(U)中,如果X Y,并且对于X的任何一个真子集X',都有X' Y,则称Y完全函数依赖于X,记作X c Y。若X Y,但Y不完全函数依赖于X,称Y部分函数依赖于X,记作X p Y。,1.3.3 传递函数依赖,定义1.5在关系模式R(U)中,如果XY, Y X,Y Z,则称Z传递函数依赖于X。,1.3.4 规范化的方法,通常把某一关系模式R为第n范式简记为RnNF。 1NF2NF 3NF ,11NF 定义 如果一个关系模式的所有属性都是不可分的基本数据项,则R1NF。 任何一个关系模式都是1NF,不满足第一范式的数据库模式不能称为关系数据库。 22NF 定义 若关系模式RlNF,并且每一个非主属性都完全函数依赖于R的键,则R 2NF。 2NF就是不允许关系模式的属性之间有这样的函数依赖XY,其中X是键的真子集,Y是非主属性。显然,键只包含一个属性的关系模式如果属于1NF,那么它一定属于2NF。 33NF 定义 如果关系模式R中不存在候选键X、属性组Y以及非主属性Z(ZY),使得XY,YZ,YX成立,则R3NF。,各类关系系统,按照E.F.Codd的思想,依据关系系统支持关系模型的程度不同,可以把关系系统分为四类,如图2-1所示。,(a)表式系统 (b)(最小)关系系统 (c)关系完备系统 (d)全关系系统 图2-1 关系系统分类,1.4 数据库高级接口的特征和SQL语言,1.4.1 数据定义,CREATE TABLE 表名(列名 数据类型 列级完整件约束条件 ,列名 数据类型 列级完整性约束条件,表级完整性约束条件),1.4.1.1 定义表,CREATE TABLE 表名(列名 数据类型 列级完整件约束条件 ,列名 数据类型 列级完整性约束条件 ,表级完整性约束条件),1.4.1.2 修改表,ALTER TABLE 表名 ADD新列名 数据类型 完整性约束条件 DROP 完整性约束名 MODIFY 列名 数据类型;,1.4.1.3 删除表,DROP TABLE 表名;,1.4.1.4 建立索引,CREATE UNIQUE CLUSTER INDEX 索引名 ON 表名(列名 次序 ,列名次序);UNIQUE表示此索引的每一个索引值只对应惟一的数据记录。 CLUSTER表示要建立的索引是聚簇索引。,1.4.2 数据查询,SELECT ALL|DISTINCT目标列表达式,目标列表达式 FROM 表名或视图名,表名或视图名 WHERE 条件表达式 GROUP BY列名 HAVING 条件表达式 ORDER BY列名 ASC|DESC,1.4.3 数据更新,1.4.3.1 插入数据,INSERT INTO 表名 (列名1,列名2) VALUES(常量1,常量2 ); INSERET INTO 表名 (列名1,列名2) 查询子句;,1.4.3.2 修改数据,UPDATE 表名 SET 列名表达式 ,列名表达式 WHERE 条件;,1.4.3.3 删除数据,DELETE FROM 表名 WHERE 条件;,1.4.4 数据控制,授权 收回权限,GRANT 权限,权限 ON 对象类型 对象名 TO 用户,用户 WITH GRANT OPTION;,REVOKE 权限,权限 ON 对象类型 对象名 FROM 用户,用户 ;,1.4.5 嵌入宿主语言,1.5 数据库系统体系结构,数据库系统的多级模型 应用程序的束缚时间 系统实现的要点,数据库系统的多级模型,Senko等人提出的数据独立存取模型(DIAM) : 1逻辑数据结构(实体集合模型 entity set mode1)。 2逻辑存取路径(串模型 string model)。 3存贮结构(编码模型 encoding mode1)。 4存贮器分配结构(物理设备模型 physical device model)。,束缚时间,1在编写源程序时通过数据定义束缚。 2在编译时引入外部数据说明束缚。 3目标程序与预编译出的数据说明表格和子程序束缚。 4在应用程序打开数据库时束缚。 5在真正存取数据库时束缚(全解释)。束缚时间愈靠后,变化和修改的自由度愈高,当然,束缚之前的解释花费也愈大。如果单纯从经济角度来考虑,束缚时间应尽量靠前。这样一来,就需要在较早地束缚与较高的数据独立性之间尽可能寻找某种适当的途径。,束缚时间愈靠后,变化和修改的自由度愈高,当然,束缚之前的解释花费也愈大。如果单纯从经济角度来考虑,束缚时间应尽量靠前。这样一来,就需要在较早地束缚与较高的数据独立性之间尽可能寻找某种适当的途径。,1.6 数据库系统的基础层-存贮管理,1.7 存贮结构和存取路径,记录在数据页面上的映射 记录编址 TID法 分配表间接地址法 间接编址的指针法,