1、第第2 2章章 数据模型与数据库结构数据模型与数据库结构o2.1 2.1 数据和数据模型数据和数据模型o2.2 2.2 概念层数据模型概念层数据模型o2.3 2.3 组织层数据模型组织层数据模型o2.4 2.4 面向对象数据模型面向对象数据模型o2.5 2.5 数据库数据库结构结构2022年4月17日10时17分2.1 2.1 数据和数据模型数据和数据模型o 现实世界的数据是散乱无章的,散乱的数据现实世界的数据是散乱无章的,散乱的数据不利于人们对其进行有效的管理和处理。不利于人们对其进行有效的管理和处理。o 因此,必须把现实世界的数据按照一定的格因此,必须把现实世界的数据按照一定的格式组织起来
2、,以方便对其进行操作和使用式组织起来,以方便对其进行操作和使用。o 在用数据库技术管理数据时,数据被按照一在用数据库技术管理数据时,数据被按照一定的格式组织起来,比如二维表结构,以使定的格式组织起来,比如二维表结构,以使数据能够被更高效地管理和处理数据能够被更高效地管理和处理。2022年4月17日10时17分22.1.1 2.1.1 数据与信息数据与信息o描述事物的符号记录称为描述事物的符号记录称为数据数据。o将从数据中获得的有意义的内容称为将从数据中获得的有意义的内容称为信息信息。o数据有一定的格式,这些格式的规定数据有一定的格式,这些格式的规定是数据的语法,而数据的含义是数据是数据的语法,
3、而数据的含义是数据的语义。的语义。o数据是信息存在的一种形式,只有通数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。过解释或处理才能成为有用的信息。2022年4月17日10时17分3示例示例o数据:数据:n (张三,(张三,99121019912101,男,男,19811981,计算机,计算机系,应用软件)系,应用软件)o解释:解释:n 张三是张三是99121019912101班的男生,班的男生,19811981年出生年出生,计算机系应用软件专业,计算机系应用软件专业。2022年4月17日10时17分4数据信息解释数据的静态特征数据的静态特征o数据的数据的基本结构基本结构n 学
4、生学生的的学号、姓名、性别、出生日期学号、姓名、性别、出生日期o数据间的数据间的联系联系n 学生选课中的学号与学生基本信息中学生选课中的学号与学生基本信息中的学号的学号o数据取值范围数据取值范围约束约束n 考试成绩在考试成绩在0 0100100分之间分之间2022年4月17日10时17分5动态特征动态特征o指对数据可以进行的操作以及操作规指对数据可以进行的操作以及操作规则。则。o对数据库数据的操作主要有对数据库数据的操作主要有n 查询数据查询数据n 更改数据更改数据:插入、删除和更新插入、删除和更新o一般将对数据的静态特征和动态特征一般将对数据的静态特征和动态特征的描述称为的描述称为数据模型三
5、要素数据模型三要素2022年4月17日10时17分62.1.2 2.1.2 数据模型数据模型o对于模型,人们并不陌生。对于模型,人们并不陌生。n 建筑建筑模型模型 飞机模型飞机模型o计算机中的模型是对事物、对象、过程计算机中的模型是对事物、对象、过程等客观系统中感兴趣的内容的模拟和抽等客观系统中感兴趣的内容的模拟和抽象表达,是理解系统的思维工具象表达,是理解系统的思维工具o数据模型数据模型(data model)(data model)也是一种模型,也是一种模型,它是对现实世界数据特征的抽象它是对现实世界数据特征的抽象。2022年4月17日10时17分7数据模型(续)数据模型(续)o数据库管理
6、系统是基于某种数据模型数据库管理系统是基于某种数据模型对数据进行组织的,因此,了解数据对数据进行组织的,因此,了解数据模型的基本概念是学习数据库知识的模型的基本概念是学习数据库知识的基础。基础。o在数据库领域中,数据模型用于表达在数据库领域中,数据模型用于表达现实世界中的对象,即将现实世界中现实世界中的对象,即将现实世界中杂乱的信息用一种规范的、形象化的杂乱的信息用一种规范的、形象化的方式表达出来方式表达出来。2022年4月17日10时17分8数据模型(续)数据模型(续)o数据模型即要面向现实世界,又要面数据模型即要面向现实世界,又要面向机器世界,因此向机器世界,因此需需满足三个要求满足三个要
7、求: :n 能够真实地模拟现实世界能够真实地模拟现实世界; ;n 容易被人们理解容易被人们理解; ;n 能够方便地在计算机上实现能够方便地在计算机上实现。2022年4月17日10时17分9数据模型(续)数据模型(续)o数据模型实际上是模型化数据和信息数据模型实际上是模型化数据和信息的工具。根据模型应用的不同目的,的工具。根据模型应用的不同目的,可以将模型分为两大类可以将模型分为两大类:o概念层数据模型概念层数据模型(概念模型)(概念模型),从数从数据的据的语义视角语义视角来抽取模型,是按用户来抽取模型,是按用户的观点来对数据和信息进行建模。的观点来对数据和信息进行建模。o组织层数据模型组织层数
8、据模型(组织模型组织模型)。从数)。从数据的据的组织层次组织层次来描述数据。来描述数据。2022年4月17日10时17分10概念层数据模型概念层数据模型o从数据的应用语义视角来抽取现实世从数据的应用语义视角来抽取现实世界中有价值的数据并按用户的观点对界中有价值的数据并按用户的观点对数据进行建模。数据进行建模。o主要用在数据库的设计阶段,主要用在数据库的设计阶段,o与具体的数据库管理系统无关,与具体的数据库管理系统无关,o与具体的实现方式无关。与具体的实现方式无关。2022年4月17日10时17分11组织层数据模型组织层数据模型o 从数据的组织方式来描述数据。从数据的组织方式来描述数据。主要有主
9、要有:n 层次模型层次模型n 网状模型网状模型n 关系模型关系模型n 对象对象- -关系模型关系模型o 是从计算机系统的观点对数据进行建模是从计算机系统的观点对数据进行建模,o 与所使用的数据库管理系统有关与所使用的数据库管理系统有关。2022年4月17日10时17分12从现实世界到机器世界的过程从现实世界到机器世界的过程2022年4月17日10时17分132.2 2.2 概念层数据模型概念层数据模型o基本概念基本概念o实体实体- -联系模型联系模型2022年4月17日10时17分14基本概念基本概念o概念层数据模型是指抽象现实系统中有应概念层数据模型是指抽象现实系统中有应用价值的元素及其关联
10、关系,反映现实系用价值的元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖统中有应用价值的信息结构,并且不依赖于数据的组织层数据模型。于数据的组织层数据模型。o用于对信息世界建模,是现实世界到信息用于对信息世界建模,是现实世界到信息世界的世界的第一层抽象第一层抽象,是数据库设计人员进,是数据库设计人员进行数据库行数据库设计设计的的工具工具,也是数据库设计人,也是数据库设计人员和业务领域的用户之间进行员和业务领域的用户之间进行交流交流的的工具工具。2022年4月17日10时17分15基本概念(续)基本概念(续)o 概念层数据概念层数据模型应该模型应该:n 具有较强的语义表达能力;具
11、有较强的语义表达能力;n 能够方便、直接地表达应用中的各种语义能够方便、直接地表达应用中的各种语义知识知识n 简单、清晰简单、清晰,易于被用户理解易于被用户理解。o 是面向用户、面向现实世界的数据模型,是面向用户、面向现实世界的数据模型,与具体的与具体的DBMSDBMS无关无关。o 常用常用概念模型:概念模型:实体实体- -联系模型联系模型、语义对象语义对象模型模型2022年4月17日10时17分16实体实体- -联系模型联系模型o由由P. P. S. ChenP. P. S. Chen于于19761976年提出年提出,即即通常所说的通常所说的E-RE-R方法。方法。o这种方法由于简单、实用,
12、因此得到这种方法由于简单、实用,因此得到了广泛的应用,也是目前描述信息结了广泛的应用,也是目前描述信息结构最常用的方法。构最常用的方法。o实体实体- -联系方法使用的工具称为联系方法使用的工具称为E-RE-R图图o也把这种描述结果称为也把这种描述结果称为E-RE-R模型模型。2022年4月17日10时17分17实体实体- -联系模型联系模型o实体实体 o属性属性 o联系联系2022年4月17日10时17分18实体实体o具有公共性质的可相互区分的现实世具有公共性质的可相互区分的现实世界对象的集合。例如:界对象的集合。例如:n 学生、课程、职工学生、课程、职工o在在E-RE-R图中用矩形框表示具体
13、的实体图中用矩形框表示具体的实体,把实体名写在框内,把实体名写在框内。学生2022年4月17日10时17分19实体与实例实体与实例o实体中每个具体的记录值(一行数据实体中每个具体的记录值(一行数据),称为实体的一个),称为实体的一个实例实例。o有些书也将实体称为有些书也将实体称为实体集实体集或或实体类实体类型型,而将每行具体的记录称为,而将每行具体的记录称为实体实体。2022年4月17日10时17分20实体实例属性属性o描述实体或者联系的性质或特征的描述实体或者联系的性质或特征的数据项数据项。学号学号姓名姓名性别性别年龄年龄2022年4月17日10时17分21标识属性标识属性o能够唯一标识实体
14、的一个属性或最小能够唯一标识实体的一个属性或最小的一组属性(称为属性集或属性组)的一组属性(称为属性集或属性组)称为实体的称为实体的标识属性标识属性,o称为实体的称为实体的码码。o例如,例如,“学号学号”就是学生实体的码就是学生实体的码。2022年4月17日10时17分22属性的表示方式属性的表示方式o用圆角矩形或椭圆框表示,框内写用圆角矩形或椭圆框表示,框内写上属性名,并用连线连到相应实体上属性名,并用连线连到相应实体。学生学生学号学号姓名姓名性别性别2022年4月17日10时17分23联系联系 o联系是数据之间的关联集合,是客观存在联系是数据之间的关联集合,是客观存在的应用语义链的应用语义
15、链 。o实体内部的联系实体内部的联系:一个实体内属性之间的:一个实体内属性之间的联系。联系。n 职工中的职工号和此职工的部门经理号职工中的职工号和此职工的部门经理号o实体之间的联系实体之间的联系:不同实体之间:不同实体之间的的联系。联系。n 课程和学生实体之间存在选课联系。课程和学生实体之间存在选课联系。2022年4月17日10时17分24联系的表示方式 实体之间的实体之间的联系用菱形框表联系用菱形框表示,框内写上联示,框内写上联系名,并用连线系名,并用连线与有关的实体相与有关的实体相连。连。联系名实体1实体22022年4月17日10时17分联系的种类一对一联系一对一联系(1:1)一对多联系一
16、对多联系(1:n)多对多联系多对多联系(m:n)2022年4月17日10时17分 如果实体如果实体A A中的每个实例在实体中的每个实例在实体B B中中至多有一个(也可以没有)实例与至多有一个(也可以没有)实例与之关联,反之亦然,则称实体之关联,反之亦然,则称实体A A与实与实体体B B具有一对一联系,记作:具有一对一联系,记作:1:11:1 一对一联系(一对一联系(1:11:1)2022年4月17日10时17分27一对一联系的例子一对一联系的例子部门和正经理(假设部门和正经理(假设一个部门只有一个正一个部门只有一个正经理,一个人只当一经理,一个人只当一个部门的经理)、系个部门的经理)、系和正系
17、主任(假设一和正系主任(假设一个系只有一个正主任个系只有一个正主任,一个人只当一个系,一个人只当一个系的主任)都是一对一的主任)都是一对一联系。联系。 管理经理部门112022年4月17日10时17分28一对多的联系 如果实体如果实体A与实体与实体B之间存在联系,之间存在联系,并且对于实体并且对于实体A中的一个实例,实体中的一个实例,实体B中有多个实例与之对应;而对实体中有多个实例与之对应;而对实体B中中的任意一个实例,在实体的任意一个实例,在实体A中都只有一中都只有一个实例与之对应,则称实体个实例与之对应,则称实体A到实体到实体B的联系是一对多的,记为的联系是一对多的,记为1 : n 202
18、2年4月17日10时17分 有部门和职工两个实体,有部门和职工两个实体,并且有语义:一个部门可以有并且有语义:一个部门可以有多名职工,但是一个职工只在多名职工,但是一个职工只在一个部门工作。则部门和职工一个部门工作。则部门和职工之间的联系是一对多的,我们之间的联系是一对多的,我们把这种联系命名为工作。把这种联系命名为工作。一对多联系的例子工作部门职工1n2022年4月17日10时17分多对多的联系 如果实体如果实体A与实体与实体B之间存在联系,之间存在联系,并且对于实体并且对于实体A中的一个实例,实体中的一个实例,实体B中有多个实例与之对应;而对实体中有多个实例与之对应;而对实体B中中的一个实
19、例,在实体的一个实例,在实体A中也有多个实例中也有多个实例与之对应,则称实体与之对应,则称实体A到实体到实体B的联系的联系是多对多的,记为是多对多的,记为m : n 。2022年4月17日10时17分多对多联系的例子 有学生和课程两个实有学生和课程两个实体,并有语义:一个学生体,并有语义:一个学生可以修多门课程,一门课可以修多门课程,一门课程可以被多个学生修。那程可以被多个学生修。那么学生和课程之间的联系么学生和课程之间的联系就是多对多的,我们把这就是多对多的,我们把这种联系命名为选课。种联系命名为选课。学生课程选课mn2022年4月17日10时17分联系说明联系说明o 一对一联系是一对多联系
20、的特例,而一对多联系一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。又是多对多联系的特例。o 实体之间联系的种类与实体之间联系的种类与语义语义直接相关。直接相关。o 例如,部门和经理例如,部门和经理:n 如果一个部门只有一个经理,一个人只担任一个部门的如果一个部门只有一个经理,一个人只担任一个部门的经理,则部门和经理之间是经理,则部门和经理之间是一对一一对一联系。联系。n 如果一个部门可以有多个经理,而一个人只担任一个部如果一个部门可以有多个经理,而一个人只担任一个部门的经理,则部门和经理之间就是门的经理,则部门和经理之间就是一对多一对多联系。联系。n 如果一个部门可以有多个经
21、理,而且一个人也可以担任如果一个部门可以有多个经理,而且一个人也可以担任多个部门的经理,则部门和经理之间就是多个部门的经理,则部门和经理之间就是多对多多对多联系。联系。2022年4月17日10时17分33关联多个实体的联系关联多个实体的联系o顾客购买商品顾客购买商品:n 每个顾客可以从多个售货员那里购每个顾客可以从多个售货员那里购买商品,并且可以购买多种商品;买商品,并且可以购买多种商品;n 每个售货员可以向多名顾客销售商每个售货员可以向多名顾客销售商品,并且可以销售多种商品;品,并且可以销售多种商品;n 每种商品可由多个售货员销售,并每种商品可由多个售货员销售,并且可以销售给多名顾客。且可以
22、销售给多名顾客。 m mn np p顾客顾客商品商品售货员售货员销售销售2022年4月17日10时17分34两个图不等价两个图不等价2022年4月17日10时17分35m mn np p顾客顾客商品商品售货员售货员销售销售2.3 2.3 组织层数据模型组织层数据模型o2.3.1 2.3.1 层次数据模型层次数据模型o2.3.2 2.3.2 网状数据模型网状数据模型o2.3.3 2.3.3 关系数据模型关系数据模型2022年4月17日10时17分36概述概述o 组织层数据模型是从数据的组织形式的组织层数据模型是从数据的组织形式的角度来描述信息角度来描述信息。o 在数据库技术的发展过程中用到的组织
23、在数据库技术的发展过程中用到的组织层数据模型主要有:层数据模型主要有:n 层次模型层次模型(Hierarchical ModelHierarchical Model)n 网状模型网状模型(Network ModelNetwork Model)n 关系模型关系模型(Relational ModelRelational Model)n 面向对象模型面向对象模型(Object Oriented ModelObject Oriented Model)2022年4月17日10时17分372.3.1 2.3.1 层次数据模型层次数据模型o是数据库管理系统中最早出现的数据是数据库管理系统中最早出现的数据模型
24、。模型。o层次数据库管理系统采用层次模型作层次数据库管理系统采用层次模型作为数据的组织方式。为数据的组织方式。o层次数据库管理系统的典型代表是层次数据库管理系统的典型代表是IBMIBM公司的公司的IMSIMS,是,是IBM1968IBM1968年推出的年推出的第一个大型商用数据库管理系统。第一个大型商用数据库管理系统。2022年4月17日10时17分38层次数据模型层次数据模型o用用树树形结构表示实体和实体之间的联形结构表示实体和实体之间的联系。系。o现实世界中许多实体之间的联系本身现实世界中许多实体之间的联系本身就呈现出一种自然的层次关系,如就呈现出一种自然的层次关系,如:n 行政机构行政机
25、构n 家族关系家族关系2022年4月17日10时17分39层次数据模型层次数据模型o 构成层次模型的树由构成层次模型的树由结点结点和和连线连线组成组成n 结点结点表示实体,结点中的项表示实体的属性表示实体,结点中的项表示实体的属性n 连线连线表示相连的两个实体间的联系,这种联表示相连的两个实体间的联系,这种联系是一对多的。系是一对多的。o 通常把表示通常把表示“一一”的实体放在上方,称的实体放在上方,称为为父结点父结点;o 把表示把表示“多多”的实体放在下方,称为的实体放在下方,称为子子结点结点。o 将不包含任何子结点的结点称为将不包含任何子结点的结点称为叶结点叶结点。2022年4月17日10
26、时17分40层次模型示意图层次模型示意图2022年4月17日10时17分41层次模型的限制层次模型的限制o可以方便的表示一对多的联系。但有可以方便的表示一对多的联系。但有以下两点限制:以下两点限制:n 有且仅有一个结点无父结点,这个有且仅有一个结点无父结点,这个结点即为树的结点即为树的根根;n 其他结点有且仅有一个父结点。其他结点有且仅有一个父结点。2022年4月17日10时17分42层次模型基本特点层次模型基本特点o 任何一个给定的记录值只有从层次模型的根任何一个给定的记录值只有从层次模型的根部开始按路径查看时,才能明确其含义,任部开始按路径查看时,才能明确其含义,任何子结点都不能脱离父结点
27、而存在何子结点都不能脱离父结点而存在。2022年4月17日10时17分43层次数据模型的一个值层次数据模型的一个值2022年4月17日10时17分44层次模型局限性层次模型局限性o 只能表示一对多的联系,不能直接表示多只能表示一对多的联系,不能直接表示多对多联系。对多联系。o 如果把多对多联系转换为一对多联系,会如果把多对多联系转换为一对多联系,会出现一个子结点有多个父结点的情况出现一个子结点有多个父结点的情况。2022年4月17日10时17分45解决办法解决办法o把一个层次模型分解为两个层次模型把一个层次模型分解为两个层次模型2022年4月17日10时17分462.3.22.3.2网状数据模
28、型网状数据模型o如果去掉层次模型中的两点限制,即如果去掉层次模型中的两点限制,即n 允许一个以上的结点无父结点,允许一个以上的结点无父结点,n 每个结点可以有多个父结点,每个结点可以有多个父结点,o便构成了网状模型。便构成了网状模型。o用用图图形结构表示实体和实体之间的联形结构表示实体和实体之间的联系系。2022年4月17日10时17分47网状模型示例网状模型示例2022年4月17日10时17分48网状模型限制网状模型限制o网状数据模型可以直接表示多对多联网状数据模型可以直接表示多对多联系。但实现起来太复杂系。但实现起来太复杂。o因此一些支持网状模型的数据库管理因此一些支持网状模型的数据库管理
29、系统,对多对多联系还是进行了限制系统,对多对多联系还是进行了限制o例如,网状模型的典型代表例如,网状模型的典型代表CODASYLCODASYL就只支持一对多联系。就只支持一对多联系。2022年4月17日10时17分49网状模型示意图网状模型示意图2022年4月17日10时17分502.3.32.3.3关系数据模型关系数据模型o关系数据模型是目前最重要的一种数关系数据模型是目前最重要的一种数据模型,据模型,o关系数据库就是采用关系数据模型作关系数据库就是采用关系数据模型作为数据的组织方式。为数据的组织方式。o关系数据模型源于数学,它把数据看关系数据模型源于数学,它把数据看成是二维表中的元素,而这
30、个二维表成是二维表中的元素,而这个二维表在关系数据库中就称为在关系数据库中就称为关系关系。2022年4月17日10时17分51关系关系数据数据模型的数据结构模型的数据结构o用用关系(表格数据)表示实体和实体关系(表格数据)表示实体和实体之间的联系的模型就称为关系数据模之间的联系的模型就称为关系数据模型。型。o在关系数据模型中,实体本身以及实在关系数据模型中,实体本身以及实体和实体之间的联系都用关系来表示体和实体之间的联系都用关系来表示,实体之间的联系不再通过指针来实,实体之间的联系不再通过指针来实现。现。2022年4月17日10时17分52关系模型示例关系模型示例o学生表学生表2022年4月1
31、7日10时17分53学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系0611101李勇李勇21男男计算机系计算机系0611102刘晨刘晨20男男计算机系计算机系0611103王敏王敏20女女计算机系计算机系0621101张立张立20男男信息管理系信息管理系0621102吴宾吴宾19女女信息管理系信息管理系o在关系数据库中,记录值仅仅构成关在关系数据库中,记录值仅仅构成关系,关系之间的联系是靠语义相同的系,关系之间的联系是靠语义相同的字段(称为字段(称为连接字段连接字段)值表达的。)值表达的。o例如,要查询例如,要查询“刘晨刘晨”的考试成绩,的考试成绩,首先要在首先要在“学生学生”关系中
32、得到关系中得到“刘晨刘晨”的学号值,然后根据这个学号值再的学号值,然后根据这个学号值再在在“选课选课”关系中找出该学生的所有关系中找出该学生的所有考试记录值。考试记录值。2022年4月17日10时17分54示例示例2022年4月17日10时17分55学学 号号姓姓 名名0611101李勇李勇0611102刘晨刘晨0611103王敏王敏学学 号号课课 程号程号成成 绩绩0611101C001960611101C002800611101C003840611101C005620611102C001920611102C002900611102C004840621102C001760621102C004
33、85学生学生选课选课0611102刘晨刘晨0611102C001920611102C002900611102C00484关系模型好处关系模型好处o关系数据模型易于设计、实现、维护关系数据模型易于设计、实现、维护和使用,和使用,o它与层次数据模型和网状数据模型的它与层次数据模型和网状数据模型的最根本区别是,关系数据模型不依赖最根本区别是,关系数据模型不依赖于导航式的数据访问系统,数据结构于导航式的数据访问系统,数据结构的变化不会影响对数据的访问。的变化不会影响对数据的访问。2022年4月17日10时17分562.4 2.4 面向对象数据模型面向对象数据模型o面向对象数据模型是捕获在面向对象面向对
34、象数据模型是捕获在面向对象程序设计中所支持的对象语义的逻辑程序设计中所支持的对象语义的逻辑数据模型,是持久的和共享的对象集数据模型,是持久的和共享的对象集合,具有模拟整个解决方案的能力。合,具有模拟整个解决方案的能力。o面向对象数据模型把实体表示为面向对象数据模型把实体表示为类类,一个类描述了对象属性和实体行为。一个类描述了对象属性和实体行为。2022年4月17日10时17分57示例示例o“学生学生”类有学生的属性,如类有学生的属性,如n 学号、学生姓名和性别等,学号、学生姓名和性别等,o还包含模仿学生行为(如选修课程)还包含模仿学生行为(如选修课程)的方法。的方法。o类类- -对象的实例对应
35、于学生个体。对象的实例对应于学生个体。2022年4月17日10时17分58o面向对象数据库基于把数据和与对象面向对象数据库基于把数据和与对象相关的代码封装成单一组件,外面不相关的代码封装成单一组件,外面不能看到其里面的内容。能看到其里面的内容。o因此,面向对象数据模型强调对象(因此,面向对象数据模型强调对象(由数据和代码组成)而不是单独的数由数据和代码组成)而不是单独的数据。据。o与传统的数据库不同,对象模型没有与传统的数据库不同,对象模型没有单一固定的数据库结构。单一固定的数据库结构。2022年4月17日10时17分59o面向对象数据库管理系统(面向对象数据库管理系统(OODBMSOODBM
36、S)是数据库管理中最新的方法,它们)是数据库管理中最新的方法,它们始于工程和设计领域的应用,并且成始于工程和设计领域的应用,并且成为金融、通讯和万维网(为金融、通讯和万维网(WWWWWW)应用)应用欢迎的系统。欢迎的系统。o适用于多媒体应用以及复杂的很难在适用于多媒体应用以及复杂的很难在关系数据库管理系统中模拟和处理的关系数据库管理系统中模拟和处理的关系。关系。2022年4月17日10时17分602.5 2.5 数据库结构数据库结构o2.5.1 2.5.1 模式的基本概念模式的基本概念o2.5.2 2.5.2 三级模式结构三级模式结构o2.5.3 2.5.3 模式映像与数据独立性模式映像与数据
37、独立性2022年4月17日10时17分61概述概述o 考察数据库结构有不同的层次或不同的考察数据库结构有不同的层次或不同的角度。角度。n 从从数据库管理角度数据库管理角度看,数据库通常采用三级看,数据库通常采用三级模式结构。这是数据库管理系统内部的系统模式结构。这是数据库管理系统内部的系统结构。结构。n 从从数据库最终用户角度数据库最终用户角度看,数据库的结构分看,数据库的结构分为集中式结构、文件服务器结构、客户为集中式结构、文件服务器结构、客户/ /服服务器结构等。这是数据库的外部结构。务器结构等。这是数据库的外部结构。o 本节我们讨论数据库的本节我们讨论数据库的内部结构内部结构。2022年
38、4月17日10时17分622.5.1 2.5.1 模式的基本概念模式的基本概念o数据模型数据模型(组织层数据模型)是描述(组织层数据模型)是描述数据的组织形式,数据的组织形式,o模式模式是用给定的数据模型对具体数据是用给定的数据模型对具体数据的描述。的描述。o就像用某一种编程语言编写具体应用就像用某一种编程语言编写具体应用程序一样程序一样。2022年4月17日10时17分63模式的基本概念模式的基本概念o模式模式是数据库中全体数据的逻辑结构是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及和特征的描述,它仅仅涉及“型型”的的描述,不涉及具体的值。描述,不涉及具体的值。o关系模式关系模式是关系
39、的是关系的“型型”或元组的结或元组的结构共性的描述。构共性的描述。o实际上对应的是关系表的表头实际上对应的是关系表的表头。2022年4月17日10时17分64关系模式关系模式o模式的一个具体值称为模式的一个模式的一个具体值称为模式的一个实实例例。o如表中的每一行数据就是一个具体实如表中的每一行数据就是一个具体实例。例。o模式是相对稳定的,实例是相对变动模式是相对稳定的,实例是相对变动的的。2022年4月17日10时17分65关系模式关系模式关系模式关系模式实例实例属性1属性2属性n2022年4月17日10时17分66三级模式结构三级模式结构2022年4月17日10时17分67三个模式三个模式o
40、关系数据库中的关系数据库中的模式模式一定是关系的,一定是关系的,在该层可见的实体是关系的表和关系在该层可见的实体是关系的表和关系的操作符。的操作符。o外模式外模式也是关系的,它们的内容来自也是关系的,它们的内容来自模式模式o内模式内模式不是关系的,它是数据的物理不是关系的,它是数据的物理存储方式。存储方式。2022年4月17日10时17分68外模式外模式o也称为用户模式、子模式。也称为用户模式、子模式。 o用户对现实系统中感兴趣整体的局部数用户对现实系统中感兴趣整体的局部数据结构的描述。据结构的描述。 o是是DBDB整体数据结构的子集或局部重构。整体数据结构的子集或局部重构。 o用外模式定义语
41、言表达。例,对用外模式定义语言表达。例,对RDBRDB,定义视图结构。定义视图结构。o是保证数据库安全的一个措施。是保证数据库安全的一个措施。 2022年4月17日10时17分69示例示例11子集子集2022年4月17日10时17分70学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系0611101李勇李勇21男男计算机系计算机系0611102刘晨刘晨20男男计算机系计算机系0611103王敏王敏20女女计算机系计算机系0621101张立张立20男男信息管理系信息管理系0621102吴宾吴宾19女女信息管理系信息管理系学学 号号姓姓 名名性性 别别0611101李勇李勇男男0611102
42、刘晨刘晨男男0611103王敏王敏女女0621101张立张立男男0621102吴宾吴宾女女学生学生模式模式外模式外模式学学 号号06111010611102061110306211010621102姓姓 名名李勇李勇刘晨刘晨王敏王敏张立张立吴宾吴宾性性 别别男男男男女女男男女女示例示例22重构重构o学生(学号,姓名,性别,年龄,学生(学号,姓名,性别,年龄,所在系)所在系)o课程(课程号,课程名,学分)课程(课程号,课程名,学分)o选课(学号,课程号,成绩)选课(学号,课程号,成绩)2022年4月17日10时17分71学生(姓名,课程名,成绩)学生(姓名,课程名,成绩)姓名姓名课程名课程名成绩
43、成绩示例示例33安全性安全性职工表(职工号,姓名,所在部门,基职工表(职工号,姓名,所在部门,基本工资,职务工资,奖励工资)本工资,职务工资,奖励工资)2022年4月17日10时17分72职工职工信息信息(职工号,姓名,所在部门,(职工号,姓名,所在部门,基本工资,职务工资)基本工资,职务工资)奖励工资奖励工资模式模式 o也称为逻辑模式或模式,是数据库中也称为逻辑模式或模式,是数据库中全全体数据体数据的逻辑结构和特征的描述,是的逻辑结构和特征的描述,是所所有用户有用户的公共数据描述。的公共数据描述。 o是数据库系统结构的是数据库系统结构的中间层中间层。o不涉及数据的物理存储细节和硬件环境,不涉
44、及数据的物理存储细节和硬件环境,o与具体的应用程序、应用开发工具和环与具体的应用程序、应用开发工具和环境无关。境无关。2022年4月17日10时17分73o模式实际上是数据库数据在逻辑级上模式实际上是数据库数据在逻辑级上的视图。的视图。o一个数据库只有一种模式。一个数据库只有一种模式。o不涉及存储记录对列、索引、指针或不涉及存储记录对列、索引、指针或其他存储的访问细节。其他存储的访问细节。2022年4月17日10时17分74内模式内模式o也称为存储模式。也称为存储模式。o是对整个数据库的底层表示是对整个数据库的底层表示。o描述了数据的存储结构,比如描述了数据的存储结构,比如:n 数据的组织与存
45、储方式数据的组织与存储方式n 索引按什么方式组织索引按什么方式组织n 是否加密等是否加密等o但但不涉及物理记录的形式不涉及物理记录的形式。2022年4月17日10时17分752.5.3 2.5.3 模式映象与数据独立性模式映象与数据独立性o数据库系统的三级模式是对数据的三数据库系统的三级模式是对数据的三个抽象级别,个抽象级别,o它把数据的具体组织留给它把数据的具体组织留给DBMSDBMS管理,管理,使用户能逻辑地、抽象地处理数据,使用户能逻辑地、抽象地处理数据,o而不必关心数据在计算机中的具体表而不必关心数据在计算机中的具体表示方式与存储方式。示方式与存储方式。2022年4月17日10时17分
46、76两个映像两个映像o为了能够在内部实现这三个抽象层次为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在三的联系和转换,数据库管理系统在三级模式之间提供了两层映象:级模式之间提供了两层映象: 外模式外模式/ /模式映象模式映象 模式模式/ /内模式映象内模式映象2022年4月17日10时17分77外模式外模式/ /模式映象模式映象 o当模式改变时,可用外模式当模式改变时,可用外模式/ /模式定模式定义语句,调整外模式义语句,调整外模式/ /模式映象定义,模式映象定义,从而保持外模式不变。从而保持外模式不变。 数据和程序逻辑独立(概念独立)数据和程序逻辑独立(概念独立) 2022年4
47、月17日10时17分78逻辑独立性示例逻辑独立性示例2022年4月17日10时17分79(学号,姓名,性别)(学号,姓名,性别)学生(学号,姓名,年龄,性别,所在系)学生(学号,姓名,年龄,性别,所在系)学生(学号,姓名,年龄,性别,所在系,学生(学号,姓名,年龄,性别,所在系,专业专业)模式模式/ /内模式映象内模式映象 o当存储结构改变时,可(由当存储结构改变时,可(由DBADBA)用)用内模式定义语句,调整内模式定义,内模式定义语句,调整内模式定义,从而保持模式不变。从而保持模式不变。 数据和程序物理独立(存储独立)数据和程序物理独立(存储独立) 2022年4月17日10时17分80物理
48、独立性示例物理独立性示例2022年4月17日10时17分81学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系0611101李勇李勇21男男计算机系计算机系0611102刘晨刘晨20男男计算机系计算机系0611103王敏王敏20女女计算机系计算机系0621101张立张立20男男信息管理系信息管理系0621102吴宾吴宾19女女信息管理系信息管理系D:xE:a学生数据库学生数据库 D:xF:b学生数据库学生数据库 物理独立性示例物理独立性示例2022年4月17日10时17分82学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系0611101李勇李勇21男男计算机系计算机系061110
49、2刘晨刘晨20男男计算机系计算机系0611103王敏王敏20女女计算机系计算机系0621101张立张立20男男信息管理系信息管理系0621102吴宾吴宾19女女信息管理系信息管理系模式小结模式小结o 模式模式是数据库的中心与关键,它独立于数据是数据库的中心与关键,它独立于数据库系统的其他层。设计数据库系统时也是首库系统的其他层。设计数据库系统时也是首先设计数据库系统的逻辑模式。先设计数据库系统的逻辑模式。o 内模式内模式依赖于数据库的全局逻辑结构,但独依赖于数据库的全局逻辑结构,但独立于数据库的用户视图,也独立于具体的存立于数据库的用户视图,也独立于具体的存储设备。储设备。o 外模式外模式面向具体的应用程序,它定义在逻辑面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。模式之上,但独立于存储模式和存储设备。2022年4月17日10时17分832022年4月17日10时17分84