《数据库管理之数据库模型.ppt》由会员分享,可在线阅读,更多相关《数据库管理之数据库模型.ppt(63页珍藏版)》请在第壹文秘上搜索。
1、数据库管理数据库管理之二之二常用的数据模型常用的数据模型常用的数据模型常用的数据模型l在数据库中用数据模型这个工具来抽象、在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。通俗地讲数据模型就是现实世界的模拟。l数据模型应满足三方面要求数据模型应满足三方面要求 能比较真实地模拟现实世界能比较真实地模拟现实世界 容易为人所理解容易为人所理解 便于在计算机上实现便于在计算机上实现l一、层次数据模型一、层次数据模型l二、网状数据模型二、网状数据模型l三、关系数据模型三、关系数据模型常用的数据模型常用的数据模型层次
2、数据模型层次数据模型 l非关系模型非关系模型 种类种类 层次模型(层次模型(Hierarchical Model) 网状模型网状模型(Network Model ) 数据结构:以数据结构:以基本层次联系基本层次联系为基本单位为基本单位 基本层次联系:两个记录以及它们之间的一对多基本层次联系:两个记录以及它们之间的一对多(包括一对一(包括一对一)的联系的联系数据模型数据模型(续续)l关系模型关系模型(Relational Model) 数据结构:数据结构:表表l面向对象模型面向对象模型(Object Oriented Model) 数据结构:数据结构:对象对象一、层次模型一、层次模型l1. 层次
3、数据模型的数据结构层次数据模型的数据结构 l2. 层次数据模型的数据操纵层次数据模型的数据操纵l3. 层次数据模型的完整性约束层次数据模型的完整性约束 l4. 层次数据模型的存储结构层次数据模型的存储结构 l5. 层次数据模型的优缺点层次数据模型的优缺点 l6. 典型的层次数据库系统典型的层次数据库系统1. 层次数据模型的数据结构层次数据模型的数据结构l层次模型层次模型 满足下面两个条件的基本层次联系的集合为满足下面两个条件的基本层次联系的集合为层次模型。层次模型。 1. 有且只有一个结点没有双亲结点,这个结有且只有一个结点没有双亲结点,这个结点称为根结点点称为根结点 2. 根以外的其它结点有
4、且只有一个双亲结点根以外的其它结点有且只有一个双亲结点l层次模型中的几个术语层次模型中的几个术语 根结点,双亲结点,兄弟结点,叶结点根结点,双亲结点,兄弟结点,叶结点层次数据模型的数据结构层次数据模型的数据结构(续)续) 1 根结点根结点 2 兄弟结点兄弟结点 3 叶结点叶结点 4 兄弟结点兄弟结点 5 叶结点叶结点 叶结点叶结点层次数据模型的数据结构层次数据模型的数据结构(续)续)l表示方法表示方法 实体型实体型:用记录类型描述。每个结点表示一:用记录类型描述。每个结点表示一个记录类型。个记录类型。 属性属性:用字段描述。每个记录类型可包含若:用字段描述。每个记录类型可包含若干个字段。干个字
5、段。 联系联系:用结点之间的连线表示记录(类)型:用结点之间的连线表示记录(类)型之间的一对多的联系。之间的一对多的联系。层次数据模型的数据结构层次数据模型的数据结构(续)续)l特点特点 结点的双亲是唯一的结点的双亲是唯一的 只能直接处理一对多的实体联系只能直接处理一对多的实体联系 每个记录类型定义一个排序字段,也称为码每个记录类型定义一个排序字段,也称为码字段字段 任何记录值只有按其路径查看时,才能显出任何记录值只有按其路径查看时,才能显出它的全部意义它的全部意义 没有一个子女记录值能够脱离双亲记录值而没有一个子女记录值能够脱离双亲记录值而独立存在独立存在层次数据模型的数据结构层次数据模型的
6、数据结构(续)续)l多对多联系在层次模型中的表示多对多联系在层次模型中的表示 用层次模型间接表示多对多联系用层次模型间接表示多对多联系 表示方法表示方法 将多对多联系分解成一对多联系将多对多联系分解成一对多联系 分解方法分解方法 冗余结点法冗余结点法 虚拟结点法虚拟结点法2. 层次模型的数据操纵层次模型的数据操纵l 查询查询l 插入插入l 删除删除l 更新更新3. 层次模型的完整性约束层次模型的完整性约束l无相应的双亲结点值就不能插入子女结无相应的双亲结点值就不能插入子女结点值点值l如果删除双亲结点值,则相应的子女结如果删除双亲结点值,则相应的子女结点值也被同时删除点值也被同时删除l更新操作时
7、,应更新所有相应记录,以更新操作时,应更新所有相应记录,以保证数据的一致性保证数据的一致性4.层次数据模型的存储结构层次数据模型的存储结构l邻接法邻接法 按照层次树前序遍历的顺序把所有记录值依次邻接按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。存放,即通过物理空间的位置相邻来实现层次顺序。l链接法链接法 用指引元来反映数据之间的层次联系用指引元来反映数据之间的层次联系 子女兄弟链接法子女兄弟链接法 P18 层次序列链接法层次序列链接法 P18D02R01E2101E1709E3501R02R03E1101E3102S63871S63874S63876
8、5. 层次模型的优缺点层次模型的优缺点l优点优点 层次数据模型简单,对具有一对多的层次关层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解系的部门描述自然、直观,容易理解 性能优于关系模型,不低于网状模型性能优于关系模型,不低于网状模型 层次数据模型提供了良好的完整性支持层次数据模型提供了良好的完整性支持层次模型的优缺点(续)层次模型的优缺点(续)l缺点缺点 多对多联系表示不自然多对多联系表示不自然 对插入和删除操作的限制多对插入和删除操作的限制多 查询子女结点必须通过双亲结点查询子女结点必须通过双亲结点 层次命令趋于程序化层次命令趋于程序化6. 典型的层次数据库系统典型的
9、层次数据库系统lIMS数据库管理系统数据库管理系统 第一个大型商用第一个大型商用DBMS 1968年推出年推出 IBM公司研制公司研制网状数据模型网状数据模型网状模型网状模型l1. 网状数据模型的数据结构网状数据模型的数据结构 l2. 网状数据模型的数据操纵网状数据模型的数据操纵l3. 网状数据模型的完整性约束网状数据模型的完整性约束 l4. 网状数据模型的存储结构网状数据模型的存储结构 l5. 网状数据模型的优缺点网状数据模型的优缺点l6. 典型的网状数据库系统典型的网状数据库系统1.网状数据模型的数据结构网状数据模型的数据结构l网状模型网状模型 满足下面两个条件的基本层次联系的集合为满足下
10、面两个条件的基本层次联系的集合为网状模型。网状模型。 1. 允许一个以上的结点无双亲;允许一个以上的结点无双亲; 2. 一个结点可以有多于一个的双亲。一个结点可以有多于一个的双亲。网状数据模型的数据结构网状数据模型的数据结构(续)续)l表示方法(与层次数据模型相同)表示方法(与层次数据模型相同) 实体型实体型:用记录类型描述。每个结点表示一:用记录类型描述。每个结点表示一个记录类型。个记录类型。 属性属性:用字段描述。每个记录类型可包含若:用字段描述。每个记录类型可包含若干个字段。干个字段。 联系联系:用结点之间的连线表示记录(类)型:用结点之间的连线表示记录(类)型之间的一对多的父子联系。之
11、间的一对多的父子联系。网状数据模型的数据结构网状数据模型的数据结构(续)续)l特点特点 只能直接处理一对多的实体联系只能直接处理一对多的实体联系 每个记录类型定义一个排序字段,也称为码每个记录类型定义一个排序字段,也称为码字段字段 任何记录值只有按其路径查看时,才能显出任何记录值只有按其路径查看时,才能显出它的全部意义它的全部意义网状数据模型的数据结构网状数据模型的数据结构(续)续)l网状模型与层次模型的区别网状模型与层次模型的区别 网状模型允许多个结点没有双亲结点网状模型允许多个结点没有双亲结点 网状模型允许结点有多个双亲结点网状模型允许结点有多个双亲结点 网状模型允许两个结点之间有多种联系
12、(复网状模型允许两个结点之间有多种联系(复合联系)合联系) 网状模型可以更直接地去描述现实世界网状模型可以更直接地去描述现实世界 层次模型实际上是网状模型的一个特例层次模型实际上是网状模型的一个特例网状数据模型的数据结构网状数据模型的数据结构(续)续) 1 2 R3 L1 L2 R1 R1 R2R2 L3L3 L1 L2 L1 L2 R3R3 L4L4 R4 R4 R5R5 网状数据模型的数据结构网状数据模型的数据结构(续)续) 1 L1 L2 R2网状数据模型的数据结构网状数据模型的数据结构(续)续)学生宿舍学生宿舍学生学生教研室教研室系系教师教师网状数据模型的数据结构网状数据模型的数据结构
13、(续)续)父亲父亲人人独生子女独生子女树树种种植植砍砍伐伐养养育育赡赡养养网状数据模型的数据结构网状数据模型的数据结构(续)续)父父亲亲关关系系男人男人网状数据模型的数据结构网状数据模型的数据结构(续)续)l多对多联系在网状模型中的表示多对多联系在网状模型中的表示 用网状模型间接表示多对多联系用网状模型间接表示多对多联系 表示方法表示方法 将多对多联系将多对多联系直接直接分解成一对多联系分解成一对多联系2. 网状模型的数据操纵网状模型的数据操纵l查询查询l插入插入l删除删除l更新更新3. 网状数据模型的完整性约束网状数据模型的完整性约束 l完整性约束条件不严格完整性约束条件不严格 允许插入尚未
14、确定双亲结点值的子女结点值允许插入尚未确定双亲结点值的子女结点值 允许只删除双亲结点值允许只删除双亲结点值网状数据模型的完整性约束网状数据模型的完整性约束(续续)l具体的网状数据库系统(如具体的网状数据库系统(如DBTG)对数)对数据操纵加了一些限制,提供了一定的完整据操纵加了一些限制,提供了一定的完整性约束。性约束。 码码 属籍类别属籍类别 加入类别加入类别(自动的,手工的自动的,手工的) 移出类别移出类别(固定的,必须的,随意的固定的,必须的,随意的)4.网状数据模型的存储结构网状数据模型的存储结构l关键关键 实现记录之间的联系实现记录之间的联系l常用方法常用方法 单向链接单向链接 双向链
15、接双向链接 环状链接环状链接 向首链接向首链接例:例:P295.网状模型的优缺点网状模型的优缺点l优点优点 能够更为直接地描述现实世界,如一个结点能够更为直接地描述现实世界,如一个结点可以有多个双亲可以有多个双亲 具有良好的性能,存取效率较高具有良好的性能,存取效率较高网状模型的优缺点(续)网状模型的优缺点(续)l缺点缺点 结构比较复杂,而且随着应用环境的扩大,结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最数据库的结构就变得越来越复杂,不利于最终用户掌握终用户掌握 DDL、DML语言复杂,用户不容易使用语言复杂,用户不容易使用6. 典型的网状数据库系统典型的网状数
16、据库系统lDBTG系统,亦称系统,亦称CODASYL系统系统 由由DBTG提出的一个系统方案提出的一个系统方案 奠定了数据库系统的基本概念、方法和技术奠定了数据库系统的基本概念、方法和技术 70年代推出年代推出l实际系统实际系统 Cullinet Software Inc.公司的公司的 IDMS Univac公司的公司的 DMS1100 Honeywell公司的公司的IDS/2 HP公司的公司的IMAGE1.2.3 数据模型数据模型l一、层次数据模型一、层次数据模型l二、网状数据模型二、网状数据模型l三、关系数据模型三、关系数据模型关系数据模型关系数据模型关系模型关系模型l1. 关系数据模型的数据结构关系数据模型的数据结构 l2. 关系数据模型的操纵关系数据模型的操纵l3. 关系数据模型的完整性约束关系数据模型的完整性约束 l4. 关系数据模型的存储结构关系数据模型的存储结构 l5. 关系数据模型的优缺点关系数据模型的优缺点l6. 典型的关系数据库系统典型的关系数据库系统 关系模型关系模型l最重要的一种数据模型。也是目前主要最重要的一种数据模型。也是目前主要采用的数据模型采用的数据模型