1、西北师范大学教育技术与传播学院,1,数据库原理与应用,西北师范大学 教育技术与传播学院张学军 教授,第2章 概念模型与数据模型,利用模型对事物进行描述是人们在认识改造世界过程中广泛采用的一种方法,如汽车、飞机模型等。 模型可更形象直观揭示事物的本质特征,使人们对事物有一个更全面深入的认识,从而帮助人们更好地解决问题。 是否在进行数据库系统设计时也可以利用模型来帮助我们完成工作呢?如果可以,我们利用何种模型呢?,第2章 目录,2.1 概念模型和ER图 2.2 数据模型概述 2.3 层次数据模型 2.4 网状数据模型 2.5 关系数据模型 2.6 面向对象数据模型 2.7 数据库工程,2.1 概念
2、模型,为了能把现实世界的具体事物抽象组织为某一个DBMS支持的数据模型,首先需要对这一管理活动所涉及到的各种资料数据及其关系有一个全面的清晰的认识,并通过采用概念模型来描述。 概念模型是现实世界到机器世界的中间层次。 概念模型用ER图来描述。,2.1 概念模型的相关内容,2.1.1 客观世界的抽象过程 2.1.2 概念模型的几个概念 2.1.3 联系(relationship) 2.1.4 三种联系比较 2.1.5 三种联系的关系 2.1.6 实体联系图(Entity-Relationship Approach ER图)表示方法,2.1.7 不同联系的表示 2.1.8 ER图的设计方法 2.1
3、.9 ER图综合实例一 2.1.10 ER图综合实例二 2.1.11 学校ER图 2.1.12 物资管理ER图 2.1.13 课程管理ER图,2.1.1 客观世界的抽象过程,2.1.2 概念模型的几个概念,实体(entity)是客观存在并可相互区别的事物。实体可以是具体的人事物,也可以是抽象的概念和联系。 属性(attribute)是实体所具有的某一特性。一个实体由若干个属性的描述。 码(key)是唯一标识实体的属性或属性集。如学号。 域(domain)是属性的取值范围。 实体型(entity type)用实体名及其属性名集合来抽象和描述同类实体,称为实体型。如学生(学号,姓名,性别,出生年份
4、)。 实体集(entity set)是同型实体的集合称为实体集。如全体学生,全体职工。,2.1.3 联系,联系(relationship)是现实世界中普遍存在的。在信息世界中,它反映为实体内部和实体之间的联系。实体内部联系通常是指组成实体的各属性之间的联系,如出生年份和年龄,总成绩和各科成绩。 两实体型之间的联系可分为三类:1:1 联系,例如,班级和班长; 1:n 联系,例如,班级和学生;m:n 联系,例如,课程和学生。,2.1.4 三种联系比较,2.1.5 三种联系的关系,一对一联系是一对多联系的特例,一对多联系是多对多联系的特例。 两个以上的实体型之间同样存在一对一、一对多和多对多联系。如
5、教师、课程、参考书。 同一实体集内各实体之间也存在一对一、一对多和多对多联系。如职工实体集中存在领导与被领导关系1:n。,2.1.6 ER图表示方法,实体名,联系名,学生,组成,班级,学生,1,n,属性名,出生日期,性别,姓名,学号,人数,2.1.7 不同联系的表示,两个不同型实体间的联系,两个不同型实体间的多种联系 职工与工程间,一个职工可以参加多个工程,一个工程可以有多个职工参加,同时一个工程由一个职工负责,一个职工可以负责多个工程。,两个以上实体间的多元联系 施行社和景点及游客三个实体间存在三元联系,同一实体内部个体间的二元联系,2.1.8 ER图的设计方法,大体应遵两条原则: 针对每一
6、用户作出该用户信息的局部ER图,确定该用户的实体、属性、联系。注意,能作为属性的就不作为实体,利于简化ER图。 综合局部ER图,生成总体ER图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以消除冗余。 一个系统的ER图不是惟一的,强调不同的侧面作出的E-R图可能有很大不同。,2.1.9 ER图综合实例一,1. 学校有若干系,每个系有若干班级和教职室,每个教职室有若干教员,其中有的教授和副教授各带若干研究生.每个班级有若干学生,每个学生选修若干课程,每门课程可由若干学生选修.用E-R图画出该校的概念模型.(参考答案) 2. 在物资管理中,一个供应商为多个项目供应多种零件,一种零件只
7、能保存在一个仓库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理.画出该物资管理系统的E-R图.(参考答案),2.1.10 ER图综合实例二,3. 在活期存款业务中,设 一个储户可在多个储蓄所存取款,画出该E-R图.(参考答案)4. 在课程管理系统中,涉及到班级,学生,课程,教师,参考书等实体,假设,一个教师只可上一门课程,一门课程可由多个教师讲授,可使用多本参考书,画出该系统的概念模型。(参考答案),2.1.11 学校ER图,系部,学生,教研室,教员,班级,课程,选修,组成,组成,组成,组成,讲授,1,m,1,1,1,1,m,m,m,m,m,m,n,指导,m,n,成绩
8、,2.1.12 物资管理ER图,(1)实体及属性图略 (2)实体及联系图如下,2.1.13 课程管理ER图,(1)实体属性图(画二个,其余略),(2)实体及联系图如下,组成,成绩,班级,选修,课程,班级,学生,讲授,m,n,1,1,1,n,n,m,n,学生,出生日期,性别,姓名,学号,所属系,班级号,讲授,参考书,教师,2.2 数据模型,模型分两个不同的层次。第一种是概念模型,也称信息模型,是按用户的观点对数据和信息建模。另一种是数据模型。数据模型应满足三方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。数据模型是数据库系统的核心和基础。 各种DBMS软件都
9、是基于某种数据模型。,2.2 数据模型的内容,2.2.1 数据模型构成三要素 2.2.2 数据结构 2.2.3 数据操作 2.2.4 完整性约束 2.2.5 数据模型的种类,2.2.1 数据模型构成三要素,任何一种数据模型一般都是严格定义的概念的集合。这些概念必须能准确是描述系统的静态特征、动态特征和完整性约束条件。 数据模型由数据结构、数据操作和完整性约束三个要素组成。,2.2.2 数据结构,数据结构用于描述数据的静态特征。 数据结构是所研究的对象类型的集合,是刻画一个数据模型最重要的方面。 通常可以按数据结构的类型来命名数据模型,可分为:网状模型、层次模型、关系模型、面向对象模型。,2.2
10、.3 数据操作,数据操作用于描述数据的动态特征。 数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则,主要有检索和更新(包括插入、删除、修改)两大类操作。 数据模型必须准确地定义这些操作的确切含义、操作符号、操作规则(优先级)以及实现操作的语言。,2.2.4 数据的约束条件,数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。如:年龄小于38,学生不及格课程少于3门。 数据模型应该反映和规定本数据模型必须遵守的基本的通用的完
11、整性约束条件。例如,在关系模型中,任何关系都必须满足实体完整性和参照完整性两个条件。此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。实体完整性即指每一实体必须是可分的,它的主码是唯一的,如学号不能重复。参照完整性是指外码的值要么为空,要么为另一个数据库中已有的值。如一个学生的专业不能是专业库中没有的记录,2.2.5 数据模型种类,按数据结构分,目前可分为: 1. 层次模型 2. 网状模型 3. 关系模型 4. 面向对象模型,2.3 层次模型,现实中很多实体呈现层次关系,如行政机构,因此,层次模型是数据库系统最早采用的数据模型。 层次模型
12、用树状结构表示实体及实体间的联系。 层次模型最具代表性的系统是IBM的IMS 。 本节介绍层次模型的概念、构成和优缺点。,2.3 层次模型,2.3.1 基本层次关系 2.3.2 层次模型的概念和结构 2.3.3 层次数据模型例 2.3.4 层次模型的完整性约束 2.3.5 层次模型的优点 2.3.6 层次模型的缺点,2.3.1 基本层次关系,非关系模型中,实体用记录表示,实体之间的联系转换为记录间的两两联系,非关系型数据结构的基本单位是基本层次联系。 基本层次联系是指两记录以及它们之间的一对多(包括一对一)的联系。,Rj,Ri,一对多联系名,子女结点,双亲结点,Lij,2.3.2 层次模型的概
13、念,R0,R1,R21,R22,R12,R11,R2,根结点为:R0。R0的子结点有:R1,R2。 R1,R2为兄弟结点。R11、 R12的父结点是:R1。,特征: (1)只有一个无双亲的根结点; (2)其他结点有且只有一个双亲。,2.3.3 层次数据模型例,2.3.4 层次模型的完整性约束,在插入时,不能插入无双亲的子结点,如新来的教师未分配教研室则无法插入到数据库中。 在删除时,如删除双亲结点,则其子女结点也会被一起删除。如删除某个教研室则它的所有教师也会被删除。 在更新时,应更新所有相应的记录,以保证数据的一致性。,2.3.5 层次模型的优点,数据模型简单,只需几条命令就能操纵数据,易使
14、用; 若实体间的关系固定,性能优于关系模型; 具有良好的完整性支持。,2.3.6 层次模型的缺点,1.有一定存取路径,仅允许自顶向下单向查询,查询非对称性。 2.适合表示记录间一对多联系,而描述非层次性很笨拙,多对多和多对一联系的表示法会出现数据冗余。 3.语义完整性差,数据依赖性强,须通过双亲才能找到子结点。 4.同一实体联系模型可以构造出许多层次模型,而对不同的模型同一查询的表达方式就不同,因此用户必须了解模型的结构。 5.插入和删除操作限制较多。 6.由于结构严密,层次命令趋于程序化。,2.4 网状模型,现实世界中实体间的联系更多的是非层次关系。 最具代表性的网状DBMS: CODASY
15、L系统或DBTG系统。1971年4月CODASYL(Conference On Data System Language)组织通过DBTG(DataBase Task Group)报告(和其后的修改文件)规范的系统, 大部分网状数据库系统在不同程度上实现了DBTG报告。,2.4 网状模型,2.4.1 概念与结构 2.4.2 网状模型其它结构 2.4.3 网状模型示例 2.4.4 完整性约束 2.4.5 网状模型的优点 2.4.6 网状模型的缺点,2.4.1 网状模型的概念与结构,网状结构特点: 1.允许多个结点无双亲,即根结点可以有多个; 2.一个子结点可以有两个或多个父结点。,R1,R2,R
16、3,R5,R8,R4,R6,R7,3.两个结点间可有两种或多种联系(复合联系)。 4.可能有回路存在。,树,父母,子女,种植,砍伐,养育,赡养,学生宿舍,学生,教研室,专业系,教师,(a),(e),(d),2.4.2 网状模型其它结构,学生,课程,父亲,子女,(c),(b),人,2.4.3 网状数据模型示例,2.4.4 网状模型的完整性约束,操纵特点是: 1.允许插入无双亲的子结点。 2.允许只删除双亲结点,其子结点仍在。 3.更新操作较简单,只需更新指定记录即可。 4.查询操作可以有多种方法实现。 网状模型没有层次模型那样严格的完整性约束条件,但具体的某一个网状数据库系统提供了一定的完整性约
17、束,对数据操纵加以一些限制。,2.4.3 网状模型优点,网状模型的优点包括: 1.能够直接描述现实世界; 2.查询方便,对称结构、查询格式相同; 3.操作功能强、速度快,存取效率较高。,2.4.3 网状模型缺点,网状模型的缺点包括: 1.数据结构及其对应的数据操作语言极为复杂。 2.数据独立性差,由于实体间的联系是通过存取路径来指示的,因此程序访问时要指定存取路径,程序设计困难。,2.5 关系模型,关系模型由IBM公司的E.F.Codd于1970年在论文“大型共享系统的关系数据库的关系模型”中首次提出。 20世纪80年代以来,关系数据库系统(RDBMS)的代表有system R(IBM)、In
18、gres、QBE。 关系型数据库系统当前已成为数据库系统的主流。现在广泛使用的RDBMS有:Oracle、Sybase、Informix、DB2、SQL Server、Acess、Fox系列数据库等。,2.5 关系模型,2.5.1 关系模型的结构 2.5.2 关系模型的概念 2.5.3 数据库中的表/关系 2.5.4 关系模型的完整性约束 2.5.5 关系模型的优点 2.5.6 关系模型的缺点,2.5.1 关系模型的结构,学生人事记录表,关系名,关系,元组(行),属性(列),主码,男 女,域,分量,关系模式:学生(学号、姓名、性别、年龄、籍贯),属性名,2.5.2 关系模型的概念,主码:表中可
19、唯一确定一个元组的属性组 域:属性的取值范转围 分量:元组中的一个值,关系:表 元组:表中一行 属性:表的一列,关系模式:对关系的描述 关系模式表示:关系名(属性1,属性2,属性3),2.5.4 关系模型的完整性约束,1.域完整性规则。属性取值必须取自于值域;属性是否能取空值由其语义决定。域完整性是最基本的约束。 2.实体完整性规则。主关键字值必须是唯一的且任何组成成份都不能是空值。 3.引用完整性规则(参照完整性规则)。设D是一个主域,R1是一个关系,它有一个在这个域D上定义的属性A。那么在任何时刻,R1中A的每个值或者为空值,或者为以A为主关键字的某个关系R2中的一个主关键字值(R1和R2
20、可以相同)。 4.用户自定义完整性。是RDBMS提供给用户的一种灵活的完整性保护措施。当需要对数据库增、删、改时,用户可通过触发器等措施保证数据的完整性和一致性。,2.5.5 关系模型的优点,建立在严格数学概念基础上,有严格的设计理论。 概念单一、结构简单直观、易理解、语言表达简练。 描述一致,实体和联系都用关系描述,查询操作结果也是一个关系,保证了数据操作语言的一致性。 利用公共属性连接,实体间的联系容易实现。 由于存取路经对用户透明,隐蔽存取路径,数据独立性更高,安全保密性更好。,2.5.6 关系模型的缺点,由于存取路经对用户透明,查询效率不高,速度慢,需要进行查询优化。 采用静态数据模型
21、。,2.6 面向对象数据模型,20世纪90年代来,随着应用需求的不断变化,关系型数据库不断向前发展。 在关系型基础上,引入面向对象技术,从而使关系型数据库发展成为一种新型的面向对象关系型数据库。 面向对象关系型数据库在信息系统中已广泛应用。,2.6 面向对象数据模型,2.6.1 开发信息系统的新要求 2.6.2 传统数据库技术的缺陷 2.6.3 面向对象关系模型 2.6.4 面向对象关系模型优缺点 2.6.5 四种数据模型比较,2.6.1 开发信息系统的新要求,新应用需求对数据库技术提出了新的要求: 缩小信息系统的开发周期; 降低开发成本; 增强易维护性和开放性; 应用发展要求实现数据模拟和行
22、为模拟。,2.6.2 传统数据库技术的缺陷,传统数据库技术开始表现出明显不足: 1.数据对象简单。只能检索一组数值或短符号域,属性组成的记录和由同质记录组成的集合,无复杂的嵌套数据和复杂数据。 2.对象之间的关系简单,不能实现实体间聚合、继承等复杂联系。 3.一致约束不完全,只能预定时机检查。 4.事务短寿,并发控制机制简单。 如何克服传统数据库技术的不足,解决方法是引入一种新的数据处理技术,将数据技术与面向对象技术相结合。,2.6.3 面向对象关系模型,1. 对象。是现实世界的实体和概念。由属性和操作(方法)构成。属性表示对象的状态、组成和特征。操作表示对象的行为。每一个对象在系统种都有一个
23、唯一不变的标识(OID)。 2.类与实例。由类可生成多个实例。实例继承了类的所有属性及方法,例如所有的学生是一个类,包括学生所有属性及操作方法,如学号、姓名、查询成绩等。具体某个学生是一个实例,如张三,他继承了学生类所有属性和方法。 3.继承与类结构。 继承可提高代码可重用性。对于父类或基类的类结构,在其子类或派生类中都可得到有效的继承。,2.6.4 面向对象关系模型优缺点,1优点: 不仅能存储数据,而且存储了定义在数据上的操作; 能处理对象之间复杂的引用和约束关系,并能通过复合对象定义嵌套结构的数据类型; 提供很强的模型扩展能力,数据模型改变时应用程序仍能正常工作。 将对象作为一个整体来存储
24、和检索节省开销。 2缺点: 技术尚不成熟,无完全支持的DBMS产品。,2.6.5 数据模型比较(1),2.6.5 数据模型比较(2),2.7 数据库工程,过去信息系统开发的失败率很高,效果不理想。 开发数据库应用系统必须按照工程化方法完成。 应用软件工程的思想。 先规划再按照严格的步骤完成。 加强项目管理。 本节介绍数据库工程的基础知识。,2.7 数据库工程,2.7.1 数据库设计的目标与特点 2.7.2 数据库设计方法 2.7.3 规划阶段 2.7.3 数据库设计步骤 2.7.4 数据库应用 2.7.5 数据库管理员(data base administrator,DBA)的职责,2.7.1
25、 数据库设计的目标与特点,数据库 设计,1. 设计任务:在DBMS的支持下,按照应用系统的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。 2. 设计内容:数据结构设计和行为处理设计 3. 设计特点:重视数据结构设计和行为处理设计,2.7.2 数据库设计方法:规范设计法,规范设计法即运用软件工程的思想与方法,根据数据库设计的特点,按照相应的设计准则和设计规程进行设计。 1.设计核心与关键:逻辑数据库设计和物理数据库设计。 2.新奥尔良方法:将数据库设计分为四个阶段需求分析、概念设计、逻辑设计、物理设计 3.S.B.Yao的六个步骤:需求分析、模式构成、模式汇总、
26、模式重构、模式分析和物理数据库设计。 4.手工设计和计算机辅助设计,2.7.3 规划阶段,确定系统范围 系统开发的目标功能和性能 系统所需资源 估计开发成本 确定实施计划和进度 分析可能的效益; 确定系统设计的原则和技术路线; 选择用户环境及网络结构。,2.7.4 数据库设计步骤,应注意问题: (1)注意调动用户积极性。用户积极参与是库设计成功的关键因素之一。 (2)充分考虑系统的可扩充性,使设计易于变动。 (3)系统的可扩充性最终是有一定限度的。当应用环境和应用需求发生巨大变化时,原设计方案可能最终无法再扩充,必须推倒重来。,概念 结构 设计,逻辑 结构 设计,数据 库物 理设 计,数据 库
27、实 施,数据 库运 行维 护,需求说明,概念结构,逻辑结构,物理结构,数据库系统,数据说明,需求 分析,2.7.5 数据库应用层次,(图) 数据库系统中不同用户的数据视图,外模式i,模式,内模式,应用系统,DB,外模式I/模式,模式/内模式,DBMS,OS,最终用户,应用程序员,DBA,系统分析员,使用对象,数据抽象级别,软件层次,2.7.6 数据库管理员(data base administrator,DBA)的职责,(1)设计与定义数据库系统。 (2)帮助最终用户使用数据库系统。 (3)监督与控制数据库系统的使用和运行。 (4)改进和重组数据库系统,调优数据库系统的性能。 (5)转储和恢复数据库。 (6)重构数据库。,