《数据库苗雪兰课件2.ppt》由会员分享,可在线阅读,更多相关《数据库苗雪兰课件2.ppt(49页珍藏版)》请在三一办公上搜索。
1、1,内模式,外模式的概念,数据库技术的本质是变换,数据库管理系统DBMS通过两级变换来完成3层模式之间的联系.3层模式:外模式,概念模式,内模式两级转换:外模式 概念模式 内模式.,2,外模式,定义:面向用户的,尽量满足具体用户需求的模式.例如:针对学校各职能部门,所建立的数据模式:人事处登记表:序号,姓名,性别,年龄,职称,单位,工龄,工资等科研处教师科研情况登记表:序号,姓名,年龄,职称,单位,科研项目名称,经费等.教务处教师任课情况表序号,姓名,年龄,职称,单位,课程名,学时等财务处教师工资表:序号,姓名,单位,工资,工龄工资,房租,水电等.,3,概念模式,定义:面向系统整体,归纳综合所
2、有用户需求.例如:序号,姓名,性别,年龄,职称,单位,工龄,工资,科研,经费,课名,学时,房租,水电等归纳综合出使用于所有用户情况的数据模式 工龄工资:可根据工龄算出,所以不必有.,4,内模式,定义:面向物理存储,仅考虑物理组织的最佳形式,从具体的物理环境和概念模式的实际情况考虑采用相应的策略,又称物理模式.例如:可采用四个表来存放数据:自然文件(使用频率高):序号,姓名,性别,年龄,职称,单位项目文件:序号,项目名称,经费教学文件:序号,课名,学时工资文件:序号,工资,工龄,房租,水电人事数据:可从自然文件和工资文件中取得.,5,数据库管理系统所提供的语言通常由3部分组成:数据描述语言(DD
3、L:Data Description Language),数据操纵语言(DML:Data Manipulation Language),其它的管理和控制程序。数据描述语言:用于定义数据库结构的语言。如:sql中的create table数据操纵语言:用于操纵数据库的语言。如:sql中的insert,delete,update等.,DDL 与 DML 的概念,数据模式DDL与DML(应用程序),内模式影射数据模式和DML到物理数据库,物理数据库,外模式,概念模式,内模式,7,DBMS结构的理解(图1.3),用户与数据库打交道时除了逻辑数据结构外,还用数据描述语言和数据操纵语言作为交流的工具。内模
4、式处理将逻辑结构数据转换为物理结构数据(内模式数据),将DML操作转换为操纵物理数据的文件操作。数据库管理员DBA(Database Administrator)负责设计,实现和控制数据库环境,并负责数据库的安全性和完整性。由DBMS支持的数据语言必须在通用的意义上满足数学运算及其工具特性的所有意义上和实践上的要求。这些语言应可从两方面使用,一方面作为独立的查询语言,另一方面作为数据子语言被嵌入在一个一般的程序设计语言中。,第二章 数据模型与概念模型,9,2.1 信息的三种世界及其描述,信息的现实世界 指我们要管理的客观存在的各种事物、事物之间的相互联系及事物的发生、变化过程。通过实体、特征、
5、实体集及联系进行划分和认识。信息世界 当事物用信息来描述时即进入信息世界。用到的术语有:实例、属性、对象或实体型、对象间的联系、概念模型。信息的计算机世界 信息世界中的信息经过数字化处理形成计算机能够处理的数据就进入了计算机世界。用到的术语有:数据项、记录、文件、数据模型。,10,2.2 概念模型及表示,概念模型是将数据从现实世界向抽象世界转换的第一步模型。,现实世界,信息世界、概念模型,机器世界、DBMS支持的数据模型,认识和抽象,转换,11,2.2.1 概念模型的基本概念,实体(Entity):客观存在并可以相互区分的事物,例如人、物、实际的对象、某些概念或事物之间的联系。属性(Attri
6、bute):实体所具有的某一特征,一个实体可以由若干个属性来刻画。码(Key):唯一标识实体的属性集。域(Domain):某个(些)属性的取值范围。实体型(Entity Type):具有相同属性的实体具有共同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如:学生(学号、姓名、年龄、性别、系、年级)是一个实体型。,信息世界涉及到的主要概念:,12,2.2.1 概念模型的基本概念,实体集(Entity Set):同型实体的集合称为实体集。如,全体学生就是一个实体集。联系(Relationship):两类实体内部的联系,如组成实体的属性之间的联系。实体之间的联系。两个实体型
7、之间的联系可分为三类:1对1联系(1:1)1对多联系(1:n)多对多联系(n:n)概念模型反映实体型及其联系的结构形式,13,实体联系的类型,1对1联系定义:若对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例子:部门-经理,14,实体联系的类型,1对多联系定义:若对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。例子:部门-职工,15,实体联系的类型,多对多联系定义:若对于实体集A
8、中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。例子:项目-职工,16,实体联系的类型,实体型A,联系名,实体型B,实体型A,联系名,实体型B,实体型A,联系名,实体型B,1,1,1,n,m,n,(a)1:1的联系,(b)1:n的联系,(c)m:n的联系,实体型之间的联系示意图,17,实体型之间的联系示意图,18,实体联系的类型,一般地,两个以上实体型之间也存在着一对一、一对多和多对多的联系,,课程,教员,参考书,讲授,1,m,n,三个实体型之间的一对多关系,供
9、应商,项目,零件,供应,p,m,n,三个实体型之间的多对多关系,多个实体型之间的关系,19,实体联系的类型,同一实体集内的各实体之间可以有某种联系,职工,领导,1,n,同一实体集内一对多联系,20,2.2.2 概念模型的表示方法,概念模型的表示方法最常用的是实体-联系方法(Entity-Relationship Approach),是P.P.S.Chen于1976年提出的,该方法是用E-R图来描述某一组织的概念模型。E-R方法是抽象和描述现实世界的有力工具。用E-R表示的概念模型与DBMS所支持的数据模型相独立,是各种数据模型的共同基础,21,2.2.2 概念模型的表示方法,其要点如下:使用长
10、方形来表示实体型,框内写上实体名。椭圆型表示实体的属性,并用无向边把实体和属性连接起来。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型,若实体之间联系也具有属性,则把属性和菱形也用无向边连接上。,22,E-R图描述概念模型,E-R方法也称为E-R模型。,2.2.2 概念模型的表示方法,23,2.2.2 概念模型的表示方法,学生,学号,姓名,年龄,性别,系,年级,学生实体及属性,供应商,项目,零件,供应,1,m,n,供应量,实体和实体之间联系,职工,领导,1,n,同一实体集内一对多联系,24,2.2.2 概念模型的表示方法,举例:用E-R
11、图表示某个工厂的物资管理的概念模型实体有:仓库:属性有仓库号、仓库面积、电话号码。零件:属性有零件号、名称、规格、单价、描述。供应商:属性有供应商号、姓名、地址、电话号、帐号。项目:属性有项目号、预算、开工日期。职工:属性有职工号、姓名、年龄、职称。,25,2.2.2 概念模型的表示方法,实体之间的联系如下:一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。某种零件在某个仓库中的数量用库存量描述。一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。职工之间具有领导被领导的关系,即仓库主任领导若干保管员。,26,2.2.2 概念模型的表示方法,如果某个部门的概念模型中涉及的实体和实
12、体属性较多,可以把实体及其属性在另一个图上画出,仓库,仓库号,面积,电话号,实体及其属性图,27,2.2.2 概念模型的表示方法,供应商,项目,零件,供应,供应量,库存,仓库,库存量,职工,领导,工作,m,n,p,m,n,1,n,1,n,实体及其联系图,28,2.3 常见的三种数据模型,2.3.1数据模型概述数据库不仅反映数据本身的内容,同时也反映数据之间的关系联系。在数据库中是用数据模型来对现实世界进行抽象的。数据模型是数据库系统中用于提供信息表示和操作手段的形式架构。,29,2.3.1 数据模型,数据模型(Data Model)数据模型是一种现实世界数据特征的抽象,是对现实世界的模拟。也就
13、是说用数据模型可以抽象、表示和处理现实中的数据和信息。数据模型应满足三方面的要求:(1)能比较真实地模拟现实世界;(2)容易被人们理解;(3)便于在计算机上实现。,30,2.3.1 数据模型概述,根据应用目的,模型分为两个层次:概念模型(信息模型):从用户观点来看,要求概念简单,表达清晰,易于理解,是第一层抽象数据模型(网状、层状、关系):从计算机观点来看,要求有严格语法和语义的语言对数据进行严格的形式化定义、限制和规定,以便将其转变为计算机可以理解的格式,31,2.3.1 数据模型概述,数据模型是严格定义的概念的集合,这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。数据结构数据操
14、作数据的约束条件,32,2.3.1 数据模型概述,1.数据结构:(最重要)研究对象类型的集合分为两类:A.与数据类型、内容、性质有关的对象B.与数据之间联系有关的对象数据模型的命名一般是由数据结构决定的,如网状、层状、关系,33,2.3.1 数据模型概述,2.数据操作:指对数据库中各种对象的实例允许执行的操作的集合,包括操作和相关的操作规则操作分为两大类:检索和更新(删除、插入、更改)对数据模型来说,要求定义这些操作的确切含义、操作符号、操作规则(如优先级别)以及实现操作的语言,34,2.3.1 数据模型概述,3.数据的约束条件完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的
15、制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。,35,2.3.1 数据模型概述,当前流行的基本数据模型有三类:层次模型(Hierarchical Model)网状模型(Network Model)关系模型(Relational Model)它们之间的根本区别在于数据之间的联系的表示方式不同(记录型之间的联系方式不同)按照三类数据模型设计和实现:(关系、层次、网状)DBMS(关系、层次、网状)数据库系统,格式化模型,36,2.3.2 层次模型,最早使用的一种模型数据结构是一棵有向树特点:(1)有且仅有一个结点无双亲,该结点称为根结点。(2)其他结点
16、有且只有一个双亲。,R1,R2,R3,R4,R5,R1:根结点R3:兄弟结点R2、R4、R5:叶结点,37,38,学校人员数据库的层次模型,39,2.3.2 层次模型,实例:行政关系、家族关系等典型代表:IBM公司1968年研制的IMS数据库管理系统层次模型的主要优点:(1)层次数据模型本身比较简单。(2)层次模型对具有一对多的层次关系的部门描述非常自然、直观,容易理解。(3)层次数据模型提供了良好的完整性支持。层次模型的主要缺点:(1)在现实世界中有很多非层次性的联系,如多对多的联系,一个结点具有多个父结点等,层次模型表示这类联系的方法很笨拙。(2)对于插入和删除操作的限制比较多。(3)查询
17、子结点必须通过父结点。(4)由于结构严密,层次命令趋于程序化。,40,2.3.2 网状模型,数据结构是一个有向图特点:(1)有一个以上的结点没有双亲(2)结点可以有多于一个的双亲能表示实体之间的多种复杂联系典型代表:CODASYL系统(DBTG系统)实例:,A,C,D,B,A,C,B,A,B,C,41,1.模型结构,学生选课的网状模型,42,2.网状数据模型的优缺点,网状模型的主要优点:(1)状模型能够更直接地描述现实世界。(2)具有良好的性能,存取效率较高。网状模型的主要缺点:(1)网状数据模型结构比较复杂,应用越大,数据库的结构越复杂。(2)网状数据库使用复杂,用户不容易掌握。,43,2.
18、3.4 关系模型,关系模型是用二维表格结构来表示实体及实体之间的联系的模型数据结构是一个“二维表框架”组成的集合关系模型概念简单,清晰,用户易懂易用,有严格的数学基础大多数数据库系统都是关系型的,44,2.3.4 关系模型,关系模型中的主要术语:,关系:一个关系对应于我们平常讲的一张表元组:表中的一行称为一个元组属性:表中的一列称为属性,每列的名称为属性名主码:表中的某个属性组,它们的值唯一的标识一个元组域:属性的取值范围分量:元组中的一个属性值关系模式:对关系的描述,用关系名(属性名1,属性名2,属性名n)来表示,45,2.3.4 关系模型,主码,整数,字符串,1,2,3,4,5,域,属性名
19、,元组(行),关系,属性列,关系名:学生登记表关系模式:学生(学号,姓名,年龄.),46,2.3.4 关系模型,关系模型的特点:1.概念单一:实体或实体之间的联系都用关系表示用户的观点里,数据的逻辑结构就是表,职工(职工号、姓名、年龄、职称)领导(领导职工号、被领导职工号),47,2.3.4关系模型,2.关系必须是规范化的关系指在关系模型中,每一个关系模式要满足一定的要求或者称为规范条件其最基本的要求是每一个分量是一个不可分的数据项,也就是说,不允许表中还有表。,48,2.3.4关系模型,3.用户对数据的检索操作不过是从原来的表中得到一张新的表。在用户眼中,无论是原始数据还是结果数据,都是同一种数据结构二维表。数据操作是集合操作,即操作对象和操作结果都是若干元组的集合,而不象非关系模型中那样单记录的操作方式。把存取路径向用户隐藏起来,提高了数据的独立性。,49,习题二:,1.试述数据库、数据库管理系统、数据库系统三个概念的含义及联系。2.解释多用户、单用户数据库系统的含义。3.试举出三个实例,要求实体型之间分别有一对一、一对多、多对多的联系。4.学校中有若干系,每个系有若干个班级和教研室,每个教研室有若干教员,其中有的教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。用E-R图画出学校的概念模型,
链接地址:https://www.31ppt.com/p-5359824.html