1、第第2 2章章 数据库系统结构数据库系统结构2.1 数据和数据模型数据和数据模型 2.2 概念层数据模型概念层数据模型 2.3 组织层数据模型组织层数据模型2.4 数据库系统的结构数据库系统的结构2.1 2.1 数据和数据模型数据和数据模型 一、数据一、数据数据数据是用物理符号把信息按一定格式记载下是用物理符号把信息按一定格式记载下来的有意义符号组合。来的有意义符号组合。如如(张三,张三,99121019912101,男,男,19811981,计算机系,计算机系,应用软件应用软件)数据有一定的格式。数据有一定的格式。数据是信息存在的一种形式,只有通过解释数据是信息存在的一种形式,只有通过解释或
2、处理才能成为有用的信息。或处理才能成为有用的信息。数据的两个特征:数据的两个特征:数据的静态特征数据的静态特征 包括数据的基本结构、数据间的联系和对包括数据的基本结构、数据间的联系和对数据取值范围的约束。数据取值范围的约束。数据的动态特征数据的动态特征 指对数据进行的操作及操作规则,对数据指对数据进行的操作及操作规则,对数据库数据的操作主要有查询数据、更改数据(插库数据的操作主要有查询数据、更改数据(插入、删除、修改数据)。入、删除、修改数据)。二、二、数据模型数据模型 模型模型是对事物、对象、过程等客观系统中感是对事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表达,是理解系统的兴趣的内
3、容的模拟和抽象表达,是理解系统的思维工具。思维工具。数据模型数据模型(Data Model)(Data Model)也是一种模型,它是对现实世界数据特征也是一种模型,它是对现实世界数据特征的抽象。的抽象。数据模型一般应满足三个要求:数据模型一般应满足三个要求:第一:要能够比较真实地模拟现实世界;第一:要能够比较真实地模拟现实世界;第二:要容易被人们理解;第二:要容易被人们理解;第三:要能够很方便地在计算机上实现。第三:要能够很方便地在计算机上实现。根据模型应用的不同目的,可将这些根据模型应用的不同目的,可将这些模型分为两大类,它们分别属于两个模型分为两大类,它们分别属于两个不同的层次。不同的层
4、次。v第一类是第一类是概念层模型概念层模型 v另一类是另一类是组织层数据模型组织层数据模型 概念层模型概念层模型从数据的从数据的应用语义视角应用语义视角来抽取模型并来抽取模型并按用户的观点来对数据和信息进行建按用户的观点来对数据和信息进行建模。模。这类模型主要用在这类模型主要用在数据库的设计阶段数据库的设计阶段它与具体的数据库管理系统无关。它与具体的数据库管理系统无关。组织层数据模型组织层数据模型从从计算机系统的观点计算机系统的观点出发对数据进行建模出发对数据进行建模指用什么样的结构来组织数据指用什么样的结构来组织数据 主要用于主要用于DBMSDBMS的实现的实现主要包括:主要包括:l层次模型
5、层次模型(用树型结构组织数据)(用树型结构组织数据)l网状模型网状模型(用图型结构组织数据)(用图型结构组织数据)l关系模型关系模型(用简单二维表结构组织数据)(用简单二维表结构组织数据)l对象关系模型对象关系模型(用复杂表格及其他结构(用复杂表格及其他结构组织数据)组织数据)为了把现实世界中的为了把现实世界中的具体事物抽象、组织为某具体事物抽象、组织为某一具体一具体DBMSDBMS支持的数据模支持的数据模型,型,通常首先将现实世界通常首先将现实世界抽象为信息世界,然后再抽象为信息世界,然后再将信息世界转换为机器世将信息世界转换为机器世界。界。即:首先把现实世界即:首先把现实世界中的客观对象中
6、的客观对象抽象抽象为某一为某一种信息结构,然后再把概种信息结构,然后再把概念级模型念级模型转换转换为计算机上为计算机上的的DBMSDBMS支持的数据模型,支持的数据模型,也就是组织层数据模型。也就是组织层数据模型。现实世界现实世界人的认识抽象人的认识抽象信息世界:概念模型信息世界:概念模型机器世界:具体的机器世界:具体的DBMS支持的组织模型支持的组织模型2.2 2.2 概念层数据模型概念层数据模型一、基本概念一、基本概念l 实际上是现实世界到机器世界的一个实际上是现实世界到机器世界的一个中间层次中间层次。l 概念层模型:概念层模型:是指抽象现实系统中有应用价值的是指抽象现实系统中有应用价值的
7、元素及其关联关系,反映现实系统中有应用价值元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织结构。的信息结构,并且不依赖于数据的组织结构。概念数据模型是面向用户、面向现实世界的数据概念数据模型是面向用户、面向现实世界的数据模型,它与具体的模型,它与具体的DBMSDBMS无关。无关。常用的概念模型有常用的概念模型有实体实体-联系联系(Entity-Entity-RelationshipRelationship,简称,简称E-RE-R)模型、语义对象模型。)模型、语义对象模型。二、实体二、实体-联系模型联系模型 1 1、实体、实体l实体实体是具有公共性质的可相互区别的现实
8、世是具有公共性质的可相互区别的现实世界对象的集合。界对象的集合。l实体可以是具体的,也可以是抽象的概念或实体可以是具体的,也可以是抽象的概念或联系。联系。如学生、课程,学生的选课、订货等如学生、课程,学生的选课、订货等。l在在E-RE-R图中用图中用矩形框矩形框表示具体的实体,把实表示具体的实体,把实体名写在框内。体名写在框内。l实体中的每个具体的记录值(一行数据),实体中的每个具体的记录值(一行数据),称之为实体的一个称之为实体的一个实例实例。比如学生实体中的每比如学生实体中的每个具体的学生。个具体的学生。2 2、属性、属性l属性属性就是描述实体或者联系的性质或特征的就是描述实体或者联系的性
9、质或特征的数据项。属于一个实体的所有实体实例都具有数据项。属于一个实体的所有实体实例都具有共同的性质,在共同的性质,在E-RE-R模型中,这些性质或特征模型中,这些性质或特征就是属性。就是属性。l属性在属性在E-RE-R图中用图中用圆角矩形圆角矩形表示,在矩形框表示,在矩形框内写上属性的名字,并用连线将属性矩形框与内写上属性的名字,并用连线将属性矩形框与它所描述的实体联系起来。它所描述的实体联系起来。3 3、联系、联系l实体内部的联系通常是指组成实体的各属实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指性之间的联系,实体之间的联系通常是指不同实体之间的联系。不同实体之间
10、的联系。l联系是数据之间的关联集合,是客观存在联系是数据之间的关联集合,是客观存在的应用语义链。联系用的应用语义链。联系用菱形框菱形框表示,框内表示,框内写上联系名,并用写上联系名,并用连线连线将联系框与它所关将联系框与它所关联的实体连接起来。联的实体连接起来。实体型之间的联系分为三类:实体型之间的联系分为三类:一对一联系一对一联系:如果实体:如果实体A A中中的每个实例在实体的每个实例在实体B B中至多有中至多有一个(也可以没有)实例与一个(也可以没有)实例与之关联,反之亦然,则称实之关联,反之亦然,则称实体体A A与实体与实体B B具有一对一联系,具有一对一联系,记作:记作:1:11:1。
11、例如,部门和经理(假设一例如,部门和经理(假设一个部门只有一个经理)、系个部门只有一个经理)、系和正系主任(假设一个系只和正系主任(假设一个系只有一个正主任)都是一对一有一个正主任)都是一对一联系。联系。如图(如图(a a)所示。)所示。经理经理部门部门管理管理11(a)一对多联系一对多联系:如果实体:如果实体A A中中的每个实例在实体的每个实例在实体B B中有中有n n个个实例(实例(n0n0)与之联系,而)与之联系,而实体实体B B中每个实例在实体中每个实例在实体A A中中只有一个实例与之联系,则只有一个实例与之联系,则称实体称实体A A与实体与实体B B是一对多联是一对多联系,记作:系,
12、记作:1:n1:n。例,假设一个部门有若干职例,假设一个部门有若干职工,而一个职工只在一个部工,而一个职工只在一个部门工作,则部门和职工之间门工作,则部门和职工之间就是一对多联系。就是一对多联系。如图(如图(b b)所示。所示。职工职工部门部门工作工作n1(b)多对多联系多对多联系:如果对于实体:如果对于实体A A中的每个实中的每个实例,实体例,实体B B中有中有n n个实例(个实例(n0n0)与之联系,)与之联系,而实体而实体B B中的每个实例,在实体中的每个实例,在实体A A中也有中也有m m个个实例(实例(m0m0)与之联系,则称实体)与之联系,则称实体A A与实体与实体B B的联系是多
13、对多的,记为的联系是多对多的,记为m:n m:n。例如学生和课程,一个学生可以选修多门例如学生和课程,一个学生可以选修多门课程,一门课程也可以被多个学生选修,因课程,一门课程也可以被多个学生选修,因此学生和课程之间是多对多的联系。此学生和课程之间是多对多的联系。如图如图(c c)所示。)所示。n学生学生选课选课m学号学号姓名姓名性别性别成绩成绩课程课程课程号课程号课程名课程名学分学分n(c)lE-RE-R图不仅能描述两个实体之间的联系,而且还能描图不仅能描述两个实体之间的联系,而且还能描述两个以上实体之间的联系。述两个以上实体之间的联系。比如有顾客、商品、售比如有顾客、商品、售货员三个实体,并
14、且有语义:每个顾客可以从多个售货员三个实体,并且有语义:每个顾客可以从多个售货员那里购买商品,并且可以购买多种商品;每个售货员那里购买商品,并且可以购买多种商品;每个售货员可以向多名顾客销售商品,并且可以销售多种商货员可以向多名顾客销售商品,并且可以销售多种商品;每种商品可由多个售货员销售,并且可以销售给品;每种商品可由多个售货员销售,并且可以销售给多名顾客。描述三者之间的关联关系的多名顾客。描述三者之间的关联关系的E-RE-R图如下图所图如下图所示,这里联系被命名为示,这里联系被命名为“销售销售”。售货员售货员顾客顾客商品商品销售销售mnp2.3 2.3 组织层数据模型组织层数据模型 组织层
15、数据模型组织层数据模型是从数据的是从数据的组织方式组织方式的角度来描述信息。目前,在数据库领域的角度来描述信息。目前,在数据库领域中最常用的组织层数据模型有四种,它们中最常用的组织层数据模型有四种,它们是:是:层次模型层次模型、网状模型网状模型、关系模型关系模型和和面面向对象模型向对象模型。组织层数据模型是按存储数据的逻辑组织层数据模型是按存储数据的逻辑结构来命名的。结构来命名的。层次模型层次模型 层次模型用层次模型用树形结构树形结构来表示实体及其之间的来表示实体及其之间的联系,如行政机构、家族关系等。特点:联系,如行政机构、家族关系等。特点:1 1)有一个结点没有父亲结点,称为根结点。)有一
16、个结点没有父亲结点,称为根结点。2 2)其它结点有且仅有一个父亲结点。)其它结点有且仅有一个父亲结点。每个结点表示一个记录类型,记录类型之间每个结点表示一个记录类型,记录类型之间的联系用结点间的连线的联系用结点间的连线(有向边有向边)表示,这种实体表示,这种实体之间的联系是之间的联系是1:M1:M联系(包括联系(包括1:11:1联系)。联系)。系编号系编号系名系名办公地点办公地点学号学号姓名姓名成绩成绩教研室编号教研室编号 教研室教研室职工号职工号姓名姓名研究方向研究方向教员教员-学生数据库模型学生数据库模型系系教研室教研室学生学生教员教员教员学生层次数据库的一个值教员学生层次数据库的一个值
17、l 层次模型存储结构层次模型存储结构 邻接法、链接法邻接法、链接法l 层次模型优点:层次模型优点:层次清晰、构造简单、易于实现层次清晰、构造简单、易于实现1:11:1和和1:N1:N 的实体联系。的实体联系。l 层次模型有两个缺点:层次模型有两个缺点:只能表示只能表示1:N1:N联系,虽然系统有多种辅助手联系,虽然系统有多种辅助手段实现段实现M:NM:N联系但较复杂,用户不易掌握联系但较复杂,用户不易掌握由于层次顺序的严格和复杂,引起数据的查由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也询和更新操作很复杂,因此应用程序的编写也比较复杂。比较复杂。网状模型网状模型
18、 是用以实体型为结点的是用以实体型为结点的有向图有向图来表示各实体来表示各实体及其之间的联系。特点:及其之间的联系。特点:1 1)可以有一个以上的结点无父亲。可以有一个以上的结点无父亲。2 2)至少有一个结点有多于一个的父亲。至少有一个结点有多于一个的父亲。能表示能表示 M:N M:N 联系。联系。缺点:编写应用程序复杂,模型结构复杂。缺点:编写应用程序复杂,模型结构复杂。CDBEA学生学生/选课选课/课程的网状数据模型课程的网状数据模型 一、关系模型的数据结构一、关系模型的数据结构 关系数据模型源于数学,它用关系数据模型源于数学,它用二维表二维表来组织数据,而这个二维表在关系数据库来组织数据
19、,而这个二维表在关系数据库中就称为中就称为关系关系。关系数据库就是表或者说。关系数据库就是表或者说是关系的集合。关系系统要求只让用户所是关系的集合。关系系统要求只让用户所感觉的数据库就是一张张表。在关系系统感觉的数据库就是一张张表。在关系系统中,表是中,表是逻辑结构逻辑结构而不是物理结构。而不是物理结构。1 1、关系关系关系就是二维表,它满足如下两个条件:关系就是二维表,它满足如下两个条件:关系表中的每一列都是不可再分的基本属性。关系表中的每一列都是不可再分的基本属性。表中各属性不能重名。表中各属性不能重名。表中的行、列次序并不重要。表中的行、列次序并不重要。2 2、元组元组 表中的每一行数据
20、称作是一个元组表中的每一行数据称作是一个元组3 3、属性属性 表中的每一列是一个属性值集,列可以命名,称为表中的每一列是一个属性值集,列可以命名,称为属性名属性名4 4、主码主码(主键或主关键字)(主键或主关键字)是表中的属性或属性组,用于惟一地确定一个元组是表中的属性或属性组,用于惟一地确定一个元组5 5、域域 属性的取值范围就称为域属性的取值范围就称为域二、二、关系模型的数据操作关系模型的数据操作 关系模型的操作对象是关系模型的操作对象是集合集合,而不是,而不是行。也就是操作的数据以及操作的结果都是行。也就是操作的数据以及操作的结果都是完整的表完整的表(是包含行集的表,而不只是单(是包含行
21、集的表,而不只是单行)。因此,行)。因此,集合处理能力集合处理能力是关系系统区别是关系系统区别于其他系统的一个重要特征。于其他系统的一个重要特征。关系数据模型的数据操作主要包括四种:关系数据模型的数据操作主要包括四种:查询查询、插入插入、删除删除和和修改修改数据。数据。关系代数关系代数 关系代数的运算按运算符的不同主要分为关系代数的运算按运算符的不同主要分为两类:两类:传统的集合运算传统的集合运算:运算是从关系:运算是从关系行的角度行的角度进进行的。包括行的。包括并并、差差、交交和和乘积乘积(笛卡尔积笛卡尔积)等运等运算。算。专门的关系运算专门的关系运算:不仅涉及:不仅涉及行运算行运算,也涉及
22、,也涉及列运算列运算,这种运算是为数据库的应用而引进的,这种运算是为数据库的应用而引进的特殊运算。包括特殊运算。包括选取选取、投影投影、连接连接和和求商求商等运等运算。算。(1 1)合并)合并(Union)(Union)运算运算 运算符:运算符:运算表达式:运算表达式:R1R2 R1R2将关系将关系R2R2中与关系中与关系R1R1中不相同的元组中不相同的元组插入到关系插入到关系R1R1中中(2 2)求差)求差(Difference)(Difference)运算运算 运算符:运算符:运算表达式:运算表达式:R1 R1R2R2将关系将关系R1R1中与关系中与关系R2R2中相同的元组删除中相同的元组
23、删除关系关系R1R1和和R2R2具有相同具有相同的的n n个属性,相应的个属性,相应的属性取自同一个域属性取自同一个域ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2ABCa1b1c1a1b1c2a2b2c1a2b3c2 R S R S R-SABCa1b1c2(3 3)乘积()乘积(Cartesian ProductCartesian Product)运算)运算 严格地讲应该是广义的笛卡尔积严格地讲应该是广义的笛卡尔积R:R:n n目关系,目关系,k k1 1个元组个元组S:S:m m目关系,目关系,k k2 2个元组个元组R RS S 列:(列:(n n
24、+m m)列元组的集合)列元组的集合 元组的前元组的前n n列是关系列是关系R R的一个元组的一个元组 后后m m列是关系列是关系S S的一个元组的一个元组行:行:k k1 1k k2 2个元组个元组R RS S=t tr r t ts|s|t tr r R R t ts s S S ABCABCa1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2RS(4 4)选择)选择(Selection)(Selection)运算运算 运算符:
25、运算符:运算表达式:运算表达式:F F(R)(R)从关系从关系R R中选出满足条件表达式中选出满足条件表达式F F的那些元组构的那些元组构成的关系成的关系ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a1b1c2R B=b1(R)(5 5)投影()投影(ProjectionProjection)运算)运算 运算符:运算符:运算表达式:运算表达式:A1,A2,An(R)A1,A2,An(R)从从R R中选择出若干属性列中选择出若干属性列(A1,A2,An)(A1,A2,An)组成新的关系组成新的关系ABCa1b1c1a1b1c2a2b2c1ACa1c1a1c2a2c1R A,C(R
26、)(6 6)连接)连接从两个关系的笛卡尔积中选取属性间满足一定从两个关系的笛卡尔积中选取属性间满足一定 条件的元组条件的元组记作:记作:R S R SA A和和B B:分别为分别为R R和和S S上度数相等且可比的属性组上度数相等且可比的属性组:比较运算符:比较运算符 连接运算从连接运算从R R和和S S的广义笛卡尔积的广义笛卡尔积R RS S中选取中选取 (R R关系)在关系)在A A属性组上的值与(属性组上的值与(S S关系)在关系)在B B 属性组上值满足比较关系属性组上值满足比较关系的元组的元组 AB两个重要的连接:两个重要的连接:等值连接等值连接 为为“=”“=”,是从关系,是从关系
27、R R和和S S的广义笛卡尔积的广义笛卡尔积中选取中选取A A,B B属性值相等的那些元祖。属性值相等的那些元祖。自然连接自然连接 是一种特殊的等值连接,它要求两个关系是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。在结果中把重复的属性列去掉。A AB BC Ca1a1b1b12 2a1a1b2b24 4a2a2b3b36 6a2a2b4b48 8B BC Cb1b15 5b2b26 6b3b37 7b3b38 8A AR.BR.BC CS.BS.BD Da1a1b1b12 2b1b15 5a1a1
28、b2b24 4b2b26 6a2a2b3b36 6b3b37 7a2a2b3b36 6b3b38 8 R S等值连接等值连接(R.B=S.B)自然连接自然连接A AB BC CD Da1a1b1b12 25 5a1a1b2b24 46 6a2a2b3b36 67 7a2a2b3b36 68 8等值连接与自然连接的区别:等值连接与自然连接的区别:等值连接中不要求相等属性值的属性名相同,等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然同,即两关系只有在同名属性才能进行自然连接。连接。等值连接不
29、将重复属性去掉,而自然连接去等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重掉重复属性,也可以说,自然连接是去掉重复列的等值连接。复列的等值连接。(7 7)商操作)商操作 运算符:运算符:运算表达式:运算表达式:R RS S R R和和S S是两个关系,是两个关系,Z Z是是R R的属性集合,的属性集合,X X是是S S的的属性集合,属性集合,X X是是Z Z的子集,的子集,Y=Z-XY=Z-X。R R除以除以S S的商为:的商为:R RS=S=Y Y(R)-(R)-Y Y(Y Y(R)(R)S S)-R)-R)A AB BC CD Da ab bc cd da a
30、b be ef fb bc ce ef fe ed dc cd de ed de ef fa ab bd de eC CD Dc cd de ef fA AB Ba ab be ed d关系关系R关系关系SRS 关系演算的表达能力与关系代数等价,它关系演算的表达能力与关系代数等价,它是以数理逻辑中的谓词演算为基础的。是以数理逻辑中的谓词演算为基础的。根据关系演算中变量的不同,可将关系演根据关系演算中变量的不同,可将关系演算分为算分为:基于元组变量的关系演算基于元组变量的关系演算 (简称(简称元组关系演算元组关系演算)基于域变量的关系演算基于域变量的关系演算 (简称(简称域关系演算域关系演算)关
31、系演算关系演算三、关系模型的数据完整性约束三、关系模型的数据完整性约束 数据完整性数据完整性是指数据库中存储的数据是指数据库中存储的数据是有意义的或正确的。数据完整性约束主是有意义的或正确的。数据完整性约束主要包括三大类:要包括三大类:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性1 1、实体完整性、实体完整性指关系数据库中的所有表都必须有主码,而指关系数据库中的所有表都必须有主码,而且表中不允许存在如下的记录:且表中不允许存在如下的记录:l 无主码值的记录无主码值的记录l 主码值相同的记录主码值相同的记录关系模型中使用主码作为记录的惟一标识,关系模型中使用主码作为记
32、录的惟一标识,主码所包含的属性称为关系的主码所包含的属性称为关系的主属性主属性,其他,其他的非主码属性称为的非主码属性称为非主属性非主属性。在关系数据库。在关系数据库中主属性不能取空值。关系数据库中的空值中主属性不能取空值。关系数据库中的空值是特殊的标量常数,它代表未定义的(不适是特殊的标量常数,它代表未定义的(不适用的)或者有意义但目前还处于未知状态的用的)或者有意义但目前还处于未知状态的值。值。2 2、参照完整性、参照完整性参照完整性有时也称为参照完整性有时也称为引用完整性引用完整性。参照完整性参照完整性是描述实体之间的联系的。是描述实体之间的联系的。参照完整性一般是指多个实体或表之间的关
33、参照完整性一般是指多个实体或表之间的关联关系。联关系。限制一个表中某列的取值受另一个限制一个表中某列的取值受另一个表的某列的取值范围约束表的某列的取值范围约束的特点就称为参照的特点就称为参照完整性。在关系数据库中用完整性。在关系数据库中用外码(外码(Foreign Foreign keykey,有时也称为外部关键字或外键),有时也称为外部关键字或外键)来实来实现参照完整性。现参照完整性。外码一般在联系实体中,用于表示两个外码一般在联系实体中,用于表示两个或多个实体之间的关联关系。或多个实体之间的关联关系。例例1 1:学生实体和专业实体可以用下面的关系表示。:学生实体和专业实体可以用下面的关系表
34、示。学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,出生日期),出生日期)专业(专业(专业号专业号,专业名),专业名)例例2 2:学生、课程以及学生与课程之间的选课关系可:学生、课程以及学生与课程之间的选课关系可以用如下三个关系表示:以用如下三个关系表示:学生(学生(学号学号,姓名,性别,专业号,出生日期),姓名,性别,专业号,出生日期)课程(课程(课程号课程号,课程名,学分),课程名,学分)选课(选课(学号学号,课程号课程号,成绩),成绩)3 3、用户定义的完整性、用户定义的完整性 用户定义的完整性也称为用户定义的完整性也称为域完整性或语义域完整性或语义完整性完整性。用户定义的完
35、整性就是。用户定义的完整性就是针对某一具体针对某一具体应用领域定义的数据库约束条件应用领域定义的数据库约束条件。用户定义的完整性实际上就是指明关系中用户定义的完整性实际上就是指明关系中属性的属性的取值范围取值范围,也就是,也就是属性的域属性的域,即限制关,即限制关系中的属性的取值类型及取值范围,防止属性系中的属性的取值类型及取值范围,防止属性的值与应用语义矛盾。例如,学生的考试成绩的值与应用语义矛盾。例如,学生的考试成绩的取值范围为的取值范围为0 0100100,或取,或取 优、良、中、及优、良、中、及格、不及格格、不及格。2.4 2.4 数据库系统的结构数据库系统的结构一、三级模式结构一、三
36、级模式结构 数据模型(组织模型)数据模型(组织模型)是描述数据的一种是描述数据的一种形式,模式是用给定的数据模型对具体数据形式,模式是用给定的数据模型对具体数据的描述。的描述。模式模式是数据库中全体数据的是数据库中全体数据的逻辑结逻辑结构和特征构和特征的描述,它仅仅涉及到型的描述,不的描述,它仅仅涉及到型的描述,不涉及到具体的值。关系模式是关系的涉及到具体的值。关系模式是关系的“型型”或或元组的结构共性的描述。关系模式实际上对应元组的结构共性的描述。关系模式实际上对应的是关系表的表头,如图的是关系表的表头,如图2-52-5所示。所示。属性属性1 1属性属性2 2属性属性n n 表头表头(关系模
37、式关系模式)元组元组图图2-5 关系模式关系模式关系模式一般表示为:关系模式一般表示为:关系名(属性关系名(属性1 1,属性,属性2 2,属性,属性n n)模式的一个具体值称为模式的一个实例,一模式的一个具体值称为模式的一个实例,一个模式可以有多个实例。个模式可以有多个实例。模式是相对稳定的(结模式是相对稳定的(结构不会经常变动),而实例是相对变动的(具体构不会经常变动),而实例是相对变动的(具体的数据值可以经常变化)的数据值可以经常变化)。数据模式描述一类事。数据模式描述一类事物的结构、属性、类型和约束,实质上是用数据物的结构、属性、类型和约束,实质上是用数据模型对一类事物进行模拟,而实例是
38、反映某类事模型对一类事物进行模拟,而实例是反映某类事物在某一时刻的当前状态。物在某一时刻的当前状态。ANSI ANSISPARCSPARC体系结构将数据库划分为三层体系结构将数据库划分为三层结构:即结构:即内模式内模式、概、概念模式念模式和和外模式外模式。外模式外模式1 1外模式外模式2 2外模式外模式n n概念模式概念模式内模式内模式(单个用户视图单个用户视图)(公共用户视图公共用户视图)(存储视图存储视图)数据库系统的三级模式结构(数据库系统的三级模式结构(2-62-6)广义地讲:广义地讲:内模式内模式:是最接近物理存储的,也就:是最接近物理存储的,也就是数据的物理存方式,只有一个。是数据
39、的物理存方式,只有一个。外模式外模式:是最接近用户的,也就是用:是最接近用户的,也就是用户所看到的数据视图,可有多个。户所看到的数据视图,可有多个。概念模式概念模式:是介于内模式和外模式间:是介于内模式和外模式间的中接层次,只有一个。的中接层次,只有一个。1 1、外模式、外模式也称为也称为用户模式或子模式用户模式或子模式,它是对现实系,它是对现实系统中用户感兴趣的整体数据结构的局部描统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对
40、数部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。据库整体数据结构的子集或局部重构。外模式通常是模式的子集。外模式通常是模式的子集。一个数据库可一个数据库可以有多个外模式以有多个外模式。外模式是保证数据库安全的一个措施。外模式是保证数据库安全的一个措施。2 2、概念模式、概念模式 也称为也称为逻辑模式或模式逻辑模式或模式,是数据库中全体数据,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的的逻辑结构和特征的描述,是所有用户的公共数据公共数据视图视图。它是数据库系统结构的。它是数据库系统结构的中间层中间层,既不涉及数,既不涉及数据的物理存储细节和硬件环境,也与具体的应
41、用程据的物理存储细节和硬件环境,也与具体的应用程序、与所使用的应用开发工具和环境无关。序、与所使用的应用开发工具和环境无关。概念模式实际上是数据库数据在逻辑级上的视概念模式实际上是数据库数据在逻辑级上的视图。图。一个数据库只有一种模式一个数据库只有一种模式。定义数据库模式时定义数据库模式时不仅要定义数据的逻辑结构不仅要定义数据的逻辑结构,比如,数据记录由哪,比如,数据记录由哪些数据项组成,数据库项的名字、类型、取值范围些数据项组成,数据库项的名字、类型、取值范围等,而且等,而且还要定义数据之间的联系,定义与数据有还要定义数据之间的联系,定义与数据有关的安全性、完整性要求关的安全性、完整性要求。
42、3 3、内模式、内模式 内模式也称为内模式也称为存储模式存储模式。内模式是对整个。内模式是对整个数据库的数据库的底层表示底层表示,它描述了数据的,它描述了数据的存储结存储结构构,比如数据的组织与存储比如数据的组织与存储。注意内模式与物。注意内模式与物理层是不一样的,内模式不涉及物理记录的形理层是不一样的,内模式不涉及物理记录的形式(即物理块或页,输出输出单位),也不式(即物理块或页,输出输出单位),也不考虑具体设备的柱面或磁道大小。考虑具体设备的柱面或磁道大小。内模式用另一种数据定义语言内模式用另一种数据定义语言内部数据内部数据定义语言定义语言来描述。来描述。二、二、二级映象功能二级映象功能
43、除了三级模式结构之外,在数据库体系除了三级模式结构之外,在数据库体系结结构中还有一定的映象关系,即构中还有一定的映象关系,即概念模式和内概念模式和内模式间的映象模式间的映象以及以及外模式和概念模式间的映外模式和概念模式间的映象象。数据库系统的三级模式是对数据的三个数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给抽象级别,它把数据的具体组织留给DBMSDBMS管管理,使用户能逻辑地、抽象地处理数据,而理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与不必关心数据在计算机中的具体表示方式与存储方式存储方式。1 1、概念模式内模式映象、概念模式内模式映象
44、概念模式内模式映象概念模式内模式映象定义了概念视图和定义了概念视图和存储的数据库的对应关系存储的数据库的对应关系,它说明了概念层的,它说明了概念层的记录和字段在内部层次怎样表示。如果数据库记录和字段在内部层次怎样表示。如果数据库的存储结构改变了,也就是,的存储结构改变了,也就是,如果改变了存储如果改变了存储结构的定义,那么概念模式内模式的映象必结构的定义,那么概念模式内模式的映象必须进行相应的改变,以使概念模式能够保持不须进行相应的改变,以使概念模式能够保持不变变。换句话说,概念模式内模式映象保证了。换句话说,概念模式内模式映象保证了数据的数据的物理独立性物理独立性,由内模式变化带来的影响,由
45、内模式变化带来的影响必须与概念模式隔离开来。必须与概念模式隔离开来。2 2、外模式概念模式映象、外模式概念模式映象 外模式概念模式映象外模式概念模式映象定义了特定的外部定义了特定的外部视视图和概念视图之间的对应关系图和概念视图之间的对应关系。一般地说,这。一般地说,这两层之间的差异情况与概念视图与存储模式之两层之间的差异情况与概念视图与存储模式之间的差异情况是类似的。间的差异情况是类似的。例如,概念模式的结例如,概念模式的结构可以改变,但概念结构的这些改变可以不影构可以改变,但概念结构的这些改变可以不影响外模式响外模式。很明显,外模式概念模式的映象是数据很明显,外模式概念模式的映象是数据逻辑独
46、立性逻辑独立性的关键。的关键。三、三、数据库管理系统数据库管理系统 数据库管理系统(数据库管理系统(DBMSDBMS)是处理数据库访)是处理数据库访问的系统软件。从概念上讲,它包括以下处理问的系统软件。从概念上讲,它包括以下处理过程:过程:用户使用数据库语言(比如用户使用数据库语言(比如SQLSQL)发出一个)发出一个 访问请求访问请求 DBMSDBMS接受请求并分析接受请求并分析 然后然后DBMSDBMS检查用户外模式、相应的外模式检查用户外模式、相应的外模式 概念模式间的映象、概念模式、概念模式概念模式间的映象、概念模式、概念模式 内模式间的映象和存储结构定义内模式间的映象和存储结构定义源
47、模式和源模式和映象映象计划的计划的DML请求请求非计划的非计划的DML请求请求DDL处理器处理器DML处理器处理器查询语言处查询语言处理器理器编译器编译器优化处理器优化处理器运行管理器运行管理器源模式目标模式和源模式目标模式和映象映象源数据源数据数据数据数据字典数据字典增强安全增强安全性与完整性与完整性约束性约束DBMSDBMS支持的功能支持的功能 1 1、数据定义数据定义 DBMS DBMS必须能够接受数据库定义的源形式,并把它们必须能够接受数据库定义的源形式,并把它们转换成相应的目标形式。转换成相应的目标形式。2 2、数据操纵数据操纵 DBMS DBMS必须能够检索、更新或删除数据库中已有
48、的数必须能够检索、更新或删除数据库中已有的数据,或向数据库中插入数据。据,或向数据库中插入数据。3 3、优化和执行优化和执行 计划(在请求执行前就可以预见到的请求)的或非计划(在请求执行前就可以预见到的请求)的或非计划(不可预知的请求)的数据操纵语言请求必须经过计划(不可预知的请求)的数据操纵语言请求必须经过优化器的处理,优化器是用来决定执行请求的最佳方优化器的处理,优化器是用来决定执行请求的最佳方式式 。4 4、数据安全和完整性数据安全和完整性 DBMS DBMS要监控用户的请求,拒绝那些有破坏要监控用户的请求,拒绝那些有破坏DBADBA定义定义的数据库安全性和完整性的请求。的数据库安全性和
49、完整性的请求。5 5、数据恢复和并发数据恢复和并发 DBMS DBMS必须保证有恢复和并发控制功能。必须保证有恢复和并发控制功能。6 6、数据字典数据字典 DBMS DBMS包括数据字典。数据字典本身也可以看作是包括数据字典。数据字典本身也可以看作是一个数据库,只不过它是一个数据库,只不过它是系统数据库系统数据库,而不是用户数,而不是用户数据库。特别地,在数据字典中,也保存各种模式和映据库。特别地,在数据字典中,也保存各种模式和映象的各种安全性和完整性约束。象的各种安全性和完整性约束。7 7、性能性能DBMSDBMS支持的功能支持的功能 本章小结本章小结本章首先介绍了数据库中本章首先介绍了数据
50、库中数据模型数据模型的概念。数据模的概念。数据模型根据其应用的对象划分为两个层次:型根据其应用的对象划分为两个层次:概念层数据概念层数据模型模型和和组织层数据模型组织层数据模型。概念模型是对现实世界信。概念模型是对现实世界信息的第一次抽象,它与具体的息的第一次抽象,它与具体的DBMSDBMS无关。组织层数无关。组织层数据模型是对现实世界信息的第二次抽象,它与具体据模型是对现实世界信息的第二次抽象,它与具体的的DBMSDBMS有关。有关。最后我们从体系结构角度分析了最后我们从体系结构角度分析了数据库系统数据库系统,介绍,介绍了三个模式和两个映象。三个模式分别为:了三个模式和两个映象。三个模式分别