数据库原理及应用第二版第2章 数据库系统结构_第1页
数据库原理及应用第二版第2章 数据库系统结构_第2页
数据库原理及应用第二版第2章 数据库系统结构_第3页
数据库原理及应用第二版第2章 数据库系统结构_第4页
数据库原理及应用第二版第2章 数据库系统结构_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 数据库系统结构2.1 数据和数据模型 2.2 概念层数据模型 2.3 组织层数据模型2.4 数据库系统的结构12.1 数据和数据模型 一、数据数据是用物理符号把信息按一定格式记载下来的有意义符号组合。 如(张三,9912101,男,1981,计算机系, 应用软件)数据有一定的格式。数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。2数据的两个特征:数据的静态特征 包括数据的基本结构、数据间的联系和对数据取值范围的约束。数据的动态特征 指对数据进行的操作及操作规则,对数据库数据的操作主要有查询数据、更改数据(插入、删除、修改数据)。3二、 数据模型 模型是对事物、对象、过程

2、等客观系统中感兴趣的内容的模拟和抽象表达,是理解系统的思维工具。 数据模型(Data Model) 也是一种模型,它是对现实世界数据特征的抽象。数据模型一般应满足三个要求: 第一:要能够比较真实地模拟现实世界; 第二:要容易被人们理解; 第三:要能够很方便地在计算机上实现。 4根据模型应用的不同目的,可将这些模型分为两大类,它们分别属于两个不同的层次。第一类是概念层模型 另一类是组织层数据模型 5概念层模型从数据的应用语义视角来抽取模型并按用户的观点来对数据和信息进行建模。这类模型主要用在数据库的设计阶段它与具体的数据库管理系统无关。 6组织层数据模型从计算机系统的观点出发对数据进行建模指用什

3、么样的结构来组织数据 主要用于DBMS的实现主要包括:层次模型(用树型结构组织数据)网状模型(用图型结构组织数据)关系模型(用简单二维表结构组织数据)对象关系模型(用复杂表格及其他结构组织数据) 7 为了把现实世界中的具体事物抽象、组织为某一具体DBMS支持的数据模型,通常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。即:首先把现实世界中的客观对象抽象为某一种信息结构,然后再把概念级模型转换为计算机上的DBMS支持的数据模型,也就是组织层数据模型。现实世界人的认识抽象信息世界:概念模型机器世界:具体的DBMS支持的组织模型82.2 概念层数据模型一、基本概念实际上是现实世界到机

4、器世界的一个中间层次。概念层模型:是指抽象现实系统中有应用价值的元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织结构。 概念数据模型是面向用户、面向现实世界的数据模型,它与具体的DBMS无关。 常用的概念模型有实体-联系(Entity-Relationship,简称E-R)模型、语义对象模型。9二、实体-联系模型 1、实体实体是具有公共性质的可相互区别的现实世界对象的集合。实体可以是具体的,也可以是抽象的概念或联系。如学生、课程,学生的选课、订货等。在E-R图中用矩形框表示具体的实体,把实体名写在框内。实体中的每个具体的记录值(一行数据),称之为实体的一个实例。比如

5、学生实体中的每个具体的学生。102、属性属性就是描述实体或者联系的性质或特征的数据项。属于一个实体的所有实体实例都具有共同的性质,在E-R模型中,这些性质或特征就是属性。属性在E-R图中用圆角矩形表示,在矩形框内写上属性的名字,并用连线将属性矩形框与它所描述的实体联系起来。113、联系实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体之间的联系。联系是数据之间的关联集合,是客观存在的应用语义链。联系用菱形框表示,框内写上联系名,并用连线将联系框与它所关联的实体连接起来。12实体型之间的联系分为三类: 一对一联系:如果实体A中的每个实例在实体B中至多有一个(也可以没

6、有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系,记作:1 : 1。例如,部门和经理(假设一个部门只有一个经理)、系和正系主任(假设一个系只有一个正主任)都是一对一联系。如图(a)所示。经理部门管理11(a)13一对多联系:如果实体A中的每个实例在实体B中有n个实例(n0)与之联系,而实体B中每个实例在实体A中只有一个实例与之联系,则称实体A与实体B是一对多联系,记作:1 : n。例,假设一个部门有若干职工,而一个职工只在一个部门工作,则部门和职工之间就是一对多联系。如图(b)所示。职工部门工作n1(b)14多对多联系:如果对于实体A中的每个实例,实体B中有n个实例(n0)与之联系

7、,而实体B中的每个实例,在实体A中也有m个实例(m0)与之联系,则称实体A与实体B的联系是多对多的,记为m : n 。例如学生和课程,一个学生可以选修多门课程,一门课程也可以被多个学生选修,因此学生和课程之间是多对多的联系。如图(c)所示。n15学生选课m学号姓名性别成绩课程课程号课程名学分n(c)16E-R图不仅能描述两个实体之间的联系,而且还能描述两个以上实体之间的联系。比如有顾客、商品、售货员三个实体,并且有语义:每个顾客可以从多个售货员那里购买商品,并且可以购买多种商品;每个售货员可以向多名顾客销售商品,并且可以销售多种商品;每种商品可由多个售货员销售,并且可以销售给多名顾客。描述三者

8、之间的关联关系的E-R图如下图所示,这里联系被命名为“销售”。售货员顾客商品销售mnp172.3 组织层数据模型 组织层数据模型是从数据的组织方式的角度来描述信息。目前,在数据库领域中最常用的组织层数据模型有四种,它们是:层次模型、网状模型、关系模型和面向对象模型。 组织层数据模型是按存储数据的逻辑结构来命名的。18层次模型 层次模型用树形结构来表示实体及其之间的联系,如行政机构、家族关系等。特点: 1)有一个结点没有父亲结点,称为根结点。 2)其它结点有且仅有一个父亲结点。 每个结点表示一个记录类型,记录类型之间的联系用结点间的连线(有向边)表示,这种实体之间的联系是1:M联系(包括1:1联

9、系)。 19系编号系名办公地点学号姓名成绩教研室编号教研室职工号姓名研究方向教员-学生数据库模型系教研室学生教员20教员学生层次数据库的一个值 21 层次模型存储结构 邻接法、链接法 层次模型优点: 层次清晰、构造简单、易于实现1:1和1:N 的实体联系。 层次模型有两个缺点:只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但较复杂,用户不易掌握由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。22网状模型 是用以实体型为结点的有向图来表示各实体及其之间的联系。特点: 1) 可以有一个以上的结点无父亲。 2) 至少有一个结点有多于一个的父亲。能表示

10、 M:N 联系。 缺点:编写应用程序复杂,模型结构复杂。23CDBEA24学生/选课/课程的网状数据模型 25一、关系模型的数据结构 关系数据模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中就称为关系。关系数据库就是表或者说是关系的集合。关系系统要求只让用户所感觉的数据库就是一张张表。在关系系统中,表是逻辑结构而不是物理结构。 261、关系关系就是二维表,它满足如下两个条件:关系表中的每一列都是不可再分的基本属性。表中各属性不能重名。 表中的行、列次序并不重要。2、元组 表中的每一行数据称作是一个元组3、属性 表中的每一列是一个属性值集,列可以命名,称为属性名4、主码(主键或主关

11、键字) 是表中的属性或属性组,用于惟一地确定一个元组5、域 属性的取值范围就称为域27二、 关系模型的数据操作 关系模型的操作对象是集合,而不是行。也就是操作的数据以及操作的结果都是完整的表(是包含行集的表,而不只是单行)。因此,集合处理能力是关系系统区别于其他系统的一个重要特征。 关系数据模型的数据操作主要包括四种:查询、插入、删除和修改数据。28关系代数 关系代数的运算按运算符的不同主要分为两类:传统的集合运算:运算是从关系行的角度进行的。包括并、差、交和乘积(笛卡尔积)等运算。专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和求

12、商等运算。29(1)合并(Union)运算 运算符: 运算表达式: R1R2将关系R2中与关系R1中不相同的元组插入到关系R1中(2)求差(Difference)运算 运算符: 运算表达式: R1R2将关系R1中与关系R2中相同的元组删除关系R1和R2具有相同的n个属性,相应的属性取自同一个域30ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2ABCa1b1c1a1b1c2a2b2c1a2b3c2 R S R S R-SABCa1b1c231(3)乘积(Cartesian Product)运算 严格地讲应该是广义的笛卡尔积R: n目关系,k1个元组S: m目

13、关系,k2个元组RS 列:(n+m)列元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组行:k1k2个元组RS = tr ts |tr R tsS 32ABCABCa1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2RS33(4)选择(Selection)运算 运算符: 运算表达式: F(R)从关系R中选出满足条件表达式F的那些元组构成的关系ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a1b1c2R

14、 B=b1(R) 34(5)投影(Projection)运算 运算符: 运算表达式:A1 , A2 , , An(R)从R中选择出若干属性列(A1 , A2 , , An)组成新的关系ABCa1b1c1a1b1c2a2b2c1ACa1c1a1c2a2c1R A,C(R) 35(6)连接从两个关系的笛卡尔积中选取属性间满足一定 条件的元组记作: R SA和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中选取 (R关系)在A属性组上的值与(S关系)在B 属性组上值满足比较关系的元组 AB36两个重要的连接: 等值连接 为“=”,是从关系R和S的广义笛卡尔积中

15、选取A,B属性值相等的那些元祖。 自然连接 是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。37ABCa1b12a1b24a2b36a2b48BCb15b26b37b38AR.BCS.BDa1b12b15a1b24b26a2b36b37a2b36b38 R S等值连接(R.B=S.B) 自然连接ABCDa1b125a1b246a2b367a2b36838等值连接与自然连接的区别:等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。等值连接不将重复属性去掉,而自然连接去掉

16、重复属性,也可以说,自然连接是去掉重复列的等值连接。39(7)商操作 运算符: 运算表达式:RS R和S是两个关系,Z是R的属性集合,X是S的属性集合,X是Z的子集,Y=Z-X。R除以S的商为: RS=Y(R)-Y(Y(R) S)-R)40ABCDabcdabefbcefedcdedefabdeCDcdefABabed关系R关系SRS41 关系演算的表达能力与关系代数等价,它是以数理逻辑中的谓词演算为基础的。 根据关系演算中变量的不同,可将关系演算分为: 基于元组变量的关系演算 (简称元组关系演算) 基于域变量的关系演算 (简称域关系演算)关系演算42三、关系模型的数据完整性约束 数据完整性是

17、指数据库中存储的数据是有意义的或正确的。数据完整性约束主要包括三大类:实体完整性参照完整性用户定义的完整性431、实体完整性指关系数据库中的所有表都必须有主码,而且表中不允许存在如下的记录: 无主码值的记录 主码值相同的记录关系模型中使用主码作为记录的惟一标识,主码所包含的属性称为关系的主属性,其他的非主码属性称为非主属性。在关系数据库中主属性不能取空值。关系数据库中的空值是特殊的标量常数,它代表未定义的(不适用的)或者有意义但目前还处于未知状态的值。 44 2、参照完整性参照完整性有时也称为引用完整性。 参照完整性是描述实体之间的联系的。参照完整性一般是指多个实体或表之间的关联关系。限制一个

18、表中某列的取值受另一个表的某列的取值范围约束的特点就称为参照完整性。在关系数据库中用外码(Foreign key,有时也称为外部关键字或外键)来实现参照完整性。 外码一般在联系实体中,用于表示两个或多个实体之间的关联关系。45例1:学生实体和专业实体可以用下面的关系表示。学生(学号,姓名,性别,专业号,出生日期)专业(专业号,专业名)例2:学生、课程以及学生与课程之间的选课关系可以用如下三个关系表示:学生(学号,姓名,性别,专业号,出生日期)课程(课程号,课程名,学分)选课(学号,课程号,成绩) 463、用户定义的完整性 用户定义的完整性也称为域完整性或语义完整性。用户定义的完整性就是针对某一

19、具体应用领域定义的数据库约束条件。 用户定义的完整性实际上就是指明关系中属性的取值范围,也就是属性的域,即限制关系中的属性的取值类型及取值范围,防止属性的值与应用语义矛盾。例如,学生的考试成绩的取值范围为0100,或取优、良、中、及格、不及格。 472.4 数据库系统的结构一、三级模式结构 数据模型(组织模型)是描述数据的一种形式,模式是用给定的数据模型对具体数据的描述。模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。关系模式是关系的“型”或元组的结构共性的描述。关系模式实际上对应的是关系表的表头,如图2-5所示。 48属性1属性2属性n 表头(关系模式)

20、元组图2-5 关系模式关系模式一般表示为: 关系名(属性1,属性2,属性n)49 模式的一个具体值称为模式的一个实例,一个模式可以有多个实例。模式是相对稳定的(结构不会经常变动),而实例是相对变动的(具体的数据值可以经常变化)。数据模式描述一类事物的结构、属性、类型和约束,实质上是用数据模型对一类事物进行模拟,而实例是反映某类事物在某一时刻的当前状态。 ANSISPARC体系结构将数据库划分为三层结构:即内模式、概念模式和外模式。 50外模式1外模式2外模式n概念模式内模式(单个用户视图)(公共用户视图)(存储视图)数据库系统的三级模式结构(2-6)51广义地讲: 内模式:是最接近物理存储的,

21、也就是数据的物理存方式,只有一个。 外模式:是最接近用户的,也就是用户所看到的数据视图,可有多个。 概念模式:是介于内模式和外模式间的中接层次,只有一个。 521、外模式也称为用户模式或子模式,它是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。 外模式通常是模式的子集。一个数据库可以有多个外模式。外模式是保证数据库安全的一个措施。532、概念模式 也称为逻辑模式或模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统结构的

22、中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、与所使用的应用开发工具和环境无关。 概念模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一种模式。定义数据库模式时不仅要定义数据的逻辑结构,比如,数据记录由哪些数据项组成,数据库项的名字、类型、取值范围等,而且还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。543、内模式 内模式也称为存储模式。内模式是对整个数据库的底层表示,它描述了数据的存储结构,比如数据的组织与存储。注意内模式与物理层是不一样的,内模式不涉及物理记录的形式(即物理块或页,输出输出单位),也不考虑具体设备的柱面或磁道大小。 内模式用另一种数据

23、定义语言内部数据定义语言来描述。 55二、 二级映象功能 除了三级模式结构之外,在数据库体系结构中还有一定的映象关系,即概念模式和内模式间的映象以及外模式和概念模式间的映象。 数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。 561、概念模式内模式映象 概念模式内模式映象定义了概念视图和存储的数据库的对应关系,它说明了概念层的记录和字段在内部层次怎样表示。如果数据库的存储结构改变了,也就是,如果改变了存储结构的定义,那么概念模式内模式的映象必须进行相应的改变,以使概念模式能够保持不

24、变。换句话说,概念模式内模式映象保证了数据的物理独立性,由内模式变化带来的影响必须与概念模式隔离开来。 572、外模式概念模式映象 外模式概念模式映象定义了特定的外部视图和概念视图之间的对应关系。一般地说,这两层之间的差异情况与概念视图与存储模式之间的差异情况是类似的。例如,概念模式的结构可以改变,但概念结构的这些改变可以不影响外模式。 很明显,外模式概念模式的映象是数据逻辑独立性的关键。58三、 数据库管理系统 数据库管理系统(DBMS)是处理数据库访问的系统软件。从概念上讲,它包括以下处理过程:用户使用数据库语言(比如SQL)发出一个 访问请求 DBMS接受请求并分析 然后DBMS检查用户外模式、相应的外模式 概念模式间的映象、概念模式、概念模式 内模式间的映象和存储结构定义59源模式和映象计划的DML请求非计划的DML请求DDL处理器DML处理器查询语言处理器编译器优化处理器运行管理器源模式目标模式和映象源数据数据数据字典增强安全性与完整性约束60DBMS支持的功能 1、数据定义 DBMS必须能够接受数据库定义的源形式,并把它们转换成相应的目标形式。 2、数据操纵 DBMS必须能够检索、更新或删除数据库中已有的数据,或向数据库中插入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论