面向对象数据库管理 第一章 绪论 ——数据库技术的发展 第一节:数据库的发展阶段的讨论: 第一代数据库; 第二代数据库——关系数据库的发展; 第一章 绪论 ——数据库技术的发展 第一节:数据库的发展阶段的讨论: 第一代数据库; 第二代数据库——关系数据库的发展; 第三代数据库技术的研究和发展。
第一代数据库(60年代—70年代初) ——层次数据库,网状数据库 支持三级模式的体系结构; 用存取路径表达数据间的联系; 有独立的数据定义语言; 导航式的数据操作语言。
第二代数据库—关系数据库 以关系代数为基础; 关系模型概念单一; 数据独立性强; 描述性的数据库操作语言。
关系数据库的发展 关系模型的支持力度 运行环境 联机事务处理OLTP 完整性控制进入核心层 安全控制的加强 操作粒度更细化 分布式处理 系统开放性 联机事务处理OLTP
新一代数据库的研究和发展 新的应用领域: CAD/CAM,CIM, OIS ; CASE,GIS; 知识库系统; 实时系统; 遥感信息处理系统; 医学影像信息处理系统 等等。
举例 CAD/CAM对DB的需求 图形对象内部结构复杂,异形结构数据; 由子对象聚合而成的复杂对象; 构件间复杂多样的语义; 对象的多个刻面描述; 版本化的历史数据管理; 原始部件的重用性。
新领域的应用需求 复杂的数据类型定义: 抽象数据类型, 无结构超长数据类型, 时间,版本数据类型, 图像,图形数据类型, 特点:结构复杂,难于用关系模型描述。
新领域的应用需求(cont.) 复杂对象的存取结构; 对象间复杂多样的语义联系及关联查询; 长事务和嵌套事务的处理; 对象模型的演进和版本控制; 程序设计语言与数据库语言的无缝集成。
传统数据库系统的局限性 面向机器的语法数据模型: 强调高度结构化: 不直接支持聚合抽象(aggregation); 数据抽象简单; 语义表示能力差。 不直接支持聚合抽象(aggregation); 不直接支持泛化(generalization); 不直接支持特化(specialization)。
传统数据库系统的局限性(cont.) 直接使用的缺点: 数据类型简单,固定: 数据库结构与外部结构不一致; 由联接构造的视图不可更新; 关系系统是基于值的。 数据类型简单,固定: 简单类型:整形,实型,字串,等等; 固定的类型集合,不支持ADT和嵌套。
传统数据库系统的局限性(cont.) 结构与行为完全分离: 阻抗失配: 被动响应 不支持抽象行为描述。 SQL与通用编程语言的失配: 编程模式失配 类型系统不匹配 被动响应
传统数据库系统的局限性(cont.) 事务处理能力差: 不支持嵌套事务 对长事务响应慢且故障恢复困难
第三代数据库 基本特征: 支持数据管理,对象管理,知识管理 保持或继承第二点DBMS的技术 支持系统开放: DB标准语言 DB标准网络协议 良好的可移植性,可连结性,可扩展性和可互操作性
新一代数据库技术的特点 面向对象的方法和技术在DB中的应用 数据库技术与多学科技术的有机结合: 面向专门应用领域的数据库技术: 分布式,并行,演绎,知识库和多媒体 面向专门应用领域的数据库技术: 工程数据库,统计DB,地理DB,空间DB,时态DB,动态DB。
第二节 数据模型的发展 数据模型为数据特征的抽象: 真实描述现实世界 易为人所理解 便于在计算机上实现 抽象方法:用三层模型逐步抽象
三层模型表示 物理层 ——对用户透明 数据的表示(存储格式) 数据的索引 高效的操作实现 一致性维护及故障处理
三层模型表示 (cont.) 逻辑层 ——数据模型 用户通过DBMS看到的现实世界 传统的DBMS模型:层次,网络,关系模型 新型的DBMS模型:O—O模型,对象—关系模型
三层模型表示 (cont.) 概念层 ——直接面对用户 语义表达能力强 易于被用户理解 独立于任何DBMS 易于向逻辑模型转换
概念模型及其描述工具 E—R模型:实体—联系模型 用实体描述对象属性 用联系描述对象间的语义关系 缺点: 语义表达能力不够强 不能描述实体的行为
概念模型及其描述工具(cont.) 语义对象模型 (Semantic Object Model) 定义了7种对象类型,增强了对象语义表达能力 可以描述聚合抽象和继承抽象 描述对象间的联系和依赖关系 缺点:不能描述对象的行为
概念模型及其描述工具(cont.) 基于UML的面向对象的模型 (Unified Modeling Language) 静态对象模型 描述对象的属性,关联,聚合,继承,等等 动态对象模型 描述对象行为,相互作用,合作和变化,等等 支持概念模型与逻辑模型无缝联接
概念模型及其描述工具(cont.) 基于XML的对象模型 易学,易扩充 易于快速开发软件 已有多个工具可以支持结构转换 问题: 不提供对象间的联接 不支持属性内容的共享 不支持继承和运算等O—O特征
逻辑模型的发展 关系模型的扩充 ——复杂数据模型 结构扩充:嵌套关系模型 语义扩充:支持集成,可以定义函数域和运算 局限性: 仍然用关键字标识元组 不支持太多的关联语义 不区分类和实例
逻辑模型的发展 (cont.) 面向对象模型 —— O—O模型 对象标识 OID 对象封装 类和类的嵌套 类和类的继承 持久对象概念
逻辑模型的发展 (cont.) 面向对象模型的问题: 索引与封装 导航的计算与集合操作 数学基础不完美 多重继承的多义性 共享对象与持久对象的引用副作用,等等
逻辑模型的发展 (cont.) 对象—关系模型 ——在关系的基础上扩充面向对象的概念 支持抽象数据类型(允许定义复杂类型) 支持对象行为(允许定义操作) 支持复合对象(允许对象嵌套) 不支持继承概念