利用关系数据库实现对象持久化的全面解析
1. 关系数据库与对象持久化的映射基础
在应用开发和系统分析设计中,面向对象方法广受欢迎,但面向对象数据库管理系统却未得到广泛应用,关系数据库管理系统依旧占据主导地位。因此,有效利用关系数据库为面向对象应用开发提供支持至关重要。
在对象关系映射中,存在一些基本的映射规则和关系类型。
- 单向和双向关联的映射 :在 Java 中,方向性不会改变关系映射,单向和双向关联都使用相同的数据库结构存储。
- 聚合和组合 :聚合和组合是面向对象建模中用于捕捉对象间“has - a”关联的结构。组合比聚合更强,若一个关联被指定为组合,意味着关联的一方被指定为整体,它管理部分的生命周期,部分不能独立于整体存在。例如, Invoice
和 LineItem
类的对象通过组合关联, LineItem
表中引用 Invoice
表行的外键属性必须定义为 NOT NULL
。而标准聚合的数据库表示与普通关联相比没有特殊特征。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
Invoice(Invoice):::process -->|1..*| LineItem(LineItem):::process