数据库管理之数据库模型.ppt
数据库管理之二常用的数据模型,常用的数据模型,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求能比较真实地模拟现实世界容易为人所理解便于在计算机上实现,一、层次数据模型二、网状数据模型三、关系数据模型,常用的数据模型,层次数据模型,非关系模型种类层次模型(Hierarchical Model)网状模型(Network Model)数据结构:以基本层次联系为基本单位基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系,数据模型(续),关系模型(Relational Model)数据结构:表面向对象模型(Object Oriented Model)数据结构:对象,一、层次模型,1.层次数据模型的数据结构 2.层次数据模型的数据操纵3.层次数据模型的完整性约束 4.层次数据模型的存储结构 5.层次数据模型的优缺点 6.典型的层次数据库系统,1.层次数据模型的数据结构,层次模型 满足下面两个条件的基本层次联系的集合为层次模型。1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点,层次数据模型的数据结构(续),层次数据模型的数据结构(续),表示方法实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的一对多的联系。,层次数据模型的数据结构(续),特点结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在,层次数据模型的数据结构(续),多对多联系在层次模型中的表示用层次模型间接表示多对多联系表示方法将多对多联系分解成一对多联系分解方法冗余结点法虚拟结点法,2.层次模型的数据操纵,查询 插入 删除 更新,3.层次模型的完整性约束,无相应的双亲结点值就不能插入子女结点值如果删除双亲结点值,则相应的子女结点值也被同时删除更新操作时,应更新所有相应记录,以保证数据的一致性,4.层次数据模型的存储结构,邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。链接法用指引元来反映数据之间的层次联系子女兄弟链接法 P18层次序列链接法 P18,5.层次模型的优缺点,优点层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持,层次模型的优缺点(续),缺点多对多联系表示不自然对插入和删除操作的限制多查询子女结点必须通过双亲结点层次命令趋于程序化,6.典型的层次数据库系统,IMS数据库管理系统第一个大型商用DBMS1968年推出IBM公司研制,网状数据模型,网状模型,1.网状数据模型的数据结构 2.网状数据模型的数据操纵3.网状数据模型的完整性约束 4.网状数据模型的存储结构 5.网状数据模型的优缺点6.典型的网状数据库系统,1.网状数据模型的数据结构,网状模型 满足下面两个条件的基本层次联系的集合为网状模型。1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。,网状数据模型的数据结构(续),表示方法(与层次数据模型相同)实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的一对多的父子联系。,网状数据模型的数据结构(续),特点只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义,网状数据模型的数据结构(续),网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复合联系)网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例,网状数据模型的数据结构(续),网状数据模型的数据结构(续),网状数据模型的数据结构(续),网状数据模型的数据结构(续),父亲,人,独生子女,树,种植,砍伐,养育,赡养,网状数据模型的数据结构(续),网状数据模型的数据结构(续),多对多联系在网状模型中的表示用网状模型间接表示多对多联系表示方法将多对多联系直接分解成一对多联系,2.网状模型的数据操纵,查询插入删除更新,3.网状数据模型的完整性约束,完整性约束条件不严格允许插入尚未确定双亲结点值的子女结点值允许只删除双亲结点值,网状数据模型的完整性约束(续),具体的网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束。码属籍类别加入类别(自动的,手工的)移出类别(固定的,必须的,随意的),4.网状数据模型的存储结构,关键实现记录之间的联系常用方法单向链接双向链接环状链接向首链接例:P29,5.网状模型的优缺点,优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高,网状模型的优缺点(续),缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用,6.典型的网状数据库系统,DBTG系统,亦称CODASYL系统由DBTG提出的一个系统方案奠定了数据库系统的基本概念、方法和技术70年代推出实际系统Cullinet Software Inc.公司的 IDMSUnivac公司的 DMS1100Honeywell公司的IDS/2HP公司的IMAGE,1.2.3 数据模型,一、层次数据模型二、网状数据模型三、关系数据模型,关系数据模型,关系模型,1.关系数据模型的数据结构 2.关系数据模型的操纵3.关系数据模型的完整性约束 4.关系数据模型的存储结构 5.关系数据模型的优缺点6.典型的关系数据库系统,关系模型,最重要的一种数据模型。也是目前主要采用的数据模型1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出本课程的重点,1.关系数据模型的数据结构,关系模型的基本数据结构关系模型的基本概念实体及实体间的联系的表示方法关系必须是规范化的,关系数据模型的数据结构(续),关系模型的基本数据结构在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,关系数据模型的数据结构(续),关系模型的基本概念关系(Relation):一个关系对应通常说的一张表。元组(Tuple)表中的一行即为一个元组。属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。,关系数据模型的数据结构(续),关系模型的基本概念(续)主码(Key)表中的某个属性组,它可以唯一确定一个元组。域(Domain)属性的取值范围。分量元组中的一个属性值。,关系数据模型的数据结构(续),关系模型的基本概念(续)关系模式对关系的描述表示方法 关系名(属性1,属性2,属性n)例如:学生(学号,姓名,年龄,性别,系,年级),关系数据模型的数据结构(续),实体及实体间的联系的表示方法实体型:直接用关系(表)表示。属性:用属性名表示。一对一联系:隐含在实体对应的关系中。一对多联系:隐含在实体对应的关系中。多对多联系:直接用关系表示。,关系数据模型的数据结构(续),例1学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)例2系、系主任、系与系主任间的一对一联系,关系数据模型的数据结构(续),例3学生、课程、学生与课程之间的多对多联系:学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩),关系数据模型的数据结构(续),关系必须是规范化的,即必须满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。,2.关系模型的数据操纵,查询、插入、删除、更新数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”,3.关系模型的完整性约束,实体完整性参照完整性用户定义的完整性,4.关系数据模型的存储结构,表以文件形式存储有的DBMS一个表对应一个操作系统文件,有的DBMS自己设计文件结构,5.关系模型的优缺点,优点建立在严格的数学概念的基础上概念单一。数据结构简单、清晰,用户易懂易用实体和各类联系都用关系来表示。对数据的检索结果也是关系。关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作,关系模型的优缺点(续),缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能,必须对用户的查询请求进行优化增加了开发数据库管理系统的难度,6.典型的关系数据库系统,ORACLESYBASEDB/2SQL ServerINFORMIXCOBASEPBASEEasyBaseKingBase小金灵DM/4OpenBase,