8.1 业务对象和持久性
实体类和持久类概念不相同,实体类“一定会”称为持久的,因为它在数据库中是持久表示的,但本质上它不是持久的。在把实体类的对象按对象进行存储的面向对象数据库中较难区分(关系数据库将它们存储为表中的记录)
8.1.1 数据库管理系统
1、数据库可以是关系型、对象—关系型、面向对象型
2、绝大部分数据库软件是关系型数据库(RDB)
8.1.2 数据模型的层次
1、过去,数据库界主要把精力放在==数据模型(UML中称为静态模型)==上
现在,数据库存储和执行程序的功能以及拓展到行为模型(以触发器和存储过程为中心)
2、数据模型可分为3个层次:
- 外部(概念)数据模型
- 指单个应用系统所需要的高层概念数据模型
- 最流行的概念数据建模技术是E-R图
- 逻辑数据模型
- 有时称为全局概念模式
- 物理数据模型
- 专门针对特定的DBMS
- 定义了数据是如何真正存储在持久存储设备上的(通常指磁盘)
8.1.3 集成应用系统和数据库建模
1、应用程序建模与数据库建模是可以分离的活动
2、资源子系统专门负责与数据库通信
实体子系统表示应用程序内存中的业务对象,必须仔细定义业务对象与对应的数据库表记录之间的映射规则
映射规则由中介者子系统使用,负责管理应用程序的内存以及对象在内存与数据库之间的任何移动
8.1.4 对象-数据库映射基础
映射困难的原因:
-
非面向对象结构到实体子系统中类的转换
-
需要有能够满足所有应用程序的最优数据结构
8.2 关系数据库模型
1、RDB不支持:
- 对象类型及关联概念(如类之间的继承或方法)
- 结构化类型
- 集合
- 引用
2、RDB模型的主要原始类型是由多列组成的关系表。
3、表的列只能取原子值——结构化值或值的集合是不允许的。
4、关系型数据库的核心:表
5、关系数据库模型基于集合理论(以及谓词逻辑)的数学概念
6、关键字的两个主要特征是唯一且最小=unique
8.2.1 列、域和规则
1、关系数据库采用列和行