PartChap 数据接口部分设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.3.2.1 对象及其对数据库的使用
图6.5 用关系数据库存储对象 图6.6 对象与数据库元组的不同映射方式
1、系统可能以不同方式使用数据库中的数据 2、可能需要数据格式转换(规范化问题)
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
对象的保存与恢复。 1、“存储协议”类 2、“保存对象”和“恢复对象”的集中处理与分散处理
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.1 对象及其对数据库的使用
0、面向对象、实体-关系以及关系数据库系统中的概 念间的对应关系
面向对象
类 对象 属性 关系
实体—联系
第三部分 OOD Chapter 6 数据接口部分的设计
第6章 数据接口部分的设计
6.1 什么是数据接口部分 6.2 数据管理系统及其选择 6.3 对象存储方案和数据接口的设计策略 6.4 本章小结
6.1 什么是数据接口部分
为什么需要数据管理部分?
为了隔离数据管理系统对其它部分的影响, 使得选用不同的数据管理系统时,问题域部分基本相同。
实体类型 实体实例 属性 关系
关系数据库
表 行 列 表或与类的表在一起
问题域部分 修改
创建
CREATE
……
数据管理部分
查询
UPDATE FROM WHERE
RDBMS 数据库
SELECT FROM WHERE
数据存储及应用示意图:应用系统通过数据接口和RDBMS交互
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
上述是对单继承的处理方法,对于多继承的处理与此类 似。
将泛化映射到表
设备 设备名称
价格
水泵 吸气压力 排气压力
热交换器 表面面积
父类和子类各对应一张表
属性名 设备ID 设备名称 价格 设备类型
是否为空 域
候选关键字:设备ID,设备名称
N N
号码 名称
主关键字:设备ID
Y
金额 常见访问:设备ID,设备名称
数据库中的表要满足一些范式,如下为三个范式的定义。 第一范式: 关系(表)的每个属性都应该是原子的。 第二范式: 如果一个关系的所有非关键字属性,都只依赖整个关键字,则 该关系满足第二范式。 (学号,系名,住处,课程号,成绩) 第三范式: 如果一个关系满足第二范式,且没有传递依赖,则该关系满足 第三范式。
4、关系数据库管理系统(RDBMS)及其特点
人员-ID 1 5 71
人员姓名 张三 李四 张三
地址
海淀路11号 清华西路123号 天津海河路2号
Baidu Nhomakorabea
元组、记录
身份证号 213125125 125551254 5626 4246
人员-ID 1 5 71
祖籍 山东 云南 浙江
属性、字段
侯选关键字: 可保证表的每个元组唯一性的任何属性的集合。 指定侯选关键字中的一个为表的主关键字. 外键: 连接表的关键字。
6.3.1.2 对象存放策略
1、基本策略 2、提高检索效率
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
6.3.1.3 设计数据接口的对象类
1、对象存取器 2、对象存取器的特殊类
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
6.3.1.4 问题域部分的修改 问题域部分的对象通过请求数据接口部分提供的操作实现
属性名 人员ID 人员姓名 地点 公司ID
是否为空 域
N
号码
N
姓名
Y
地址
N
号码
多对多关联
用户
1..*
1..*
工作站
用户
使用权
1 1..*
1..* 1
工作站
(2)对聚合的存储设计 聚合遵循与关联同样的规则
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
N
设备类型
属性名 设备ID 吸气压力 排气压力
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略 2、修改类图
3、确定关键字
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略 4、从类图到数据库的映射(对关系的存储) (1)对关联的存储设计 在关系数据库中按下述方法对关联进行数据存放:
6.1 什么是数据接口部分
3、OOD模型中数据接口部分涉及的范围:
(1)解决应用系统中的对象在外存空间(永久性存储介质)的存储问 题。
(2)只存储对象的属性部分 (3)可能只有一部分对象需要长久存储 (4)如果使用OOP语言能够支持永久对象的表示和存储管理,则不需 要设计者做很多工作。
4、总之,在选定的编程语言和数据管理系统不能直接支持 对象永久存储的情况下,通过一个专门设计的模型组成部分, 实现应用系统与数据管理系统的接口,以解决应用系统中需要 长期保存的对象的属性值在外存空间的保存问题。
数据定义接口
物理数据存储
数据库
模式
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
6.2.2.1 关系数据库和数据库管理系统 1、关系数据库是采用关系模型的数据库。
关系模型用二维表结构来表示各类实体及其间的联系;二维表由行 和列组成;一个关系数据库由多张表组成 。
2、关系数据库术语
3、数据依赖和规范化
(3)对泛化的存储设计 可采用下述方法之一,进行数据存放。
①把一般类的各个子类的属性都集中到一般类中,创建一个表。 ②为一般类(非抽象类)创建一个表,并为它的各个特殊类各创建一
个表。一般类的表与各子类的表要用同样的属性作为主关键字。 ③如果一般类为抽象类,则要把一般类的属性放到各子类中,为它的
子类各建立一张表。若一般类不为抽象类,也可采用(2)的做法。
l 每个一对一的关联映射到一张独立的表;或在各类对应的表中 用外键隐含;也可把两个对象和关联放在同一表中。
l 每个一对多的关联映射到一张独立的表;或在“多”的类对应 的表中用外键隐含。
l 每个多对多的关联映射到一张独立的表,该表的主关键字是两个 进行关联的表的主关键字的拼接;或者把它转化为一对多的关联,然后 再按一对多的方式进行处理。
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
将关联或聚合映射到表格
一对一关联
雇员 雇员号码 1
名字 只映射到一个表
办公室 1 办公室名
地点
属性名 雇员号码 名字 办公室名 地点
是否为空 域
N
号码
N
名字
N
名字
N
地点
使用得较多,能提高 性能。
数据库按照一定数据模型组织其中的数据,先后出现过层次数据模型、 网状数据模型、关系数据模型和面向对象数据模型。关系DBMS是目前在理 论和技术上最完善,应用最广泛的DBMS.
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
应用程序 应用程序接口
用户
数据库管理员
终端用户查询处 理器
数据库访问和控制逻辑 数据库管理系统
Boyce-Codd范式(BCNF) 等
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
6.2.2.2 面向对象数据库和数据库管理系统 1、面向对象数据模型
面向对象的数据库系统是OO设计和编程的之间扩展,是为了存储对象并与 面向对象程序设计语言交互而专门设计的。它是按对象存储数据的数据库管理 系统。
人
数
机 交 互
问题域 部分
据 管 理
部
部
分
分
控制流管理部分
关O文系O件型-D系DBB统MMSS
6.1 什么是数据接口部分
1、数据管理部分是OOD模型中负责与具体的数据管理系统 衔接的外围组成部分,它为系统中需要长久存储的对象提供 了在选定的数据管理系统中进行数据存储与恢复的功能。
2、在OOD中可以采用不同种类的数据管理系统实现对象的 永久存储。有文件系统、R-DBMS、OODBMS,具体选用要 考虑各种实现因素,对数据管理部分的设计有不同的影响。
(1)在面向对象编程语言的基础上,增加数据库管理系统的功能,即 长久地存储、管理和存取对象的功能。
(2)对关系数据库管理系统进行扩充,使之支持面向对象数据模型, 在关系数据库模型基础上提供对象管理功能,并向用户提供面向对象的应用程 序接口。
(3)第三种是按“全新的”面向对象数据模型进行的设计。
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
映射到多个表
属性名 雇员号码 名字
是否为空 域
N
号码
N
名字
属性名 办公室名 地点
是否为空 域
N
名字
N
地点
属性名 雇员号码 办公室名
是否为空 域
N
号码
N
名字
关联
一对多关联
公司
1
公司名称
地址
1..*
人员
人员姓名
地点
为关联单建一个表
属性名 公司ID 人员ID
是否为空 域
N
号码
N
号码
在对象较多的类中建立表
6.2 数据管理系统及其选择 6.2.1 文件系统
1、文件系统通常是操作系统的一部分。 2、文件的物理结构和文件的逻辑结构
流式文件、记录式结构、树型结构等。
3、编程语言对文件系统的支持 4、文件系统相对于数据库管理系统的优缺点
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
1、数据库和数据库管理系统
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
首先要根据条件选择数据管理系统: 文件系统,R-DBMS,OO-DBMS
6.3.1.1 对象在内存空间和文件空间的映像
1、用文件系统存储对象
2、对象与文件记录的映射方式
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
数据库系统是存储、管理、处理和维护数据的软件系统,由数据库、数 据库管理系统和有关软件组成。
数据库是长期存在计算机内、有组织、可共享的数据的集合。 数据库管理系统是用于建立、使用和维护数据库的软件,它对数据库进 行统一管理和控制,以保证数据库的完整性和安全性。
2、DBMS的功能和特点 3、DBMS的类型
2、面向对象数据库系统有两方面的特征:
(1)是面向对象的,应支持对象、类、操作、属性、继承、聚合、关
联等面向对象的概念; (2)另一方面它具有数据库系统所应具有的特定和功能。
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
6.2.2.2 面向对象数据库和数据库管理系统 3、面向对象数据库管理系统的实现途径。
6.2 数据管理系统及其选择 6.2.3 数据管理系统的选择
1、非技术因素
(1)数据管理系统的成熟程度和先进性 (2)价格 (3)开发队伍的技术背景 (4)与其它系统的关系。
2、技术因素
(1)文件系统 (2)关系数据库管理系统 (3)面向对象数据库管理系统 各种数据管理系统的适用性、操作方面、有时它们是互补的。
对象标识:在程序运行时的对象标识是唯一的,对程序员 来说通常是不可以访问的,只是通过对象名来访问对象。
永久对象的标识在一个表中是唯一的。 由类导出的表用一个主关键字作为表中所存储的对象 的唯一标识。 由关联导出的表用相关联的表的主关键字组合作为主 关键字。 在应用中使用对象名,在表中使用主关键字。
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
1、对象数据的规范化 永久类的存放设计: 每个永久类使用一个数据库表 1)确定要存储对象的哪些属性值,据此列出一个永久类的相应属性。 2)按时间与空间要求进行权衡,对这些属性进行规范化,规范化后的 属性至少应满足第一范式。 3)定义数据库的表,列:规范化之后的一个属性;行:一个对象实例 ,把规范化之后类的一个属性作为表的一个列,要存储的每一个对象实例作 为表中的一行。 若一个类的属性列表不满足第二范式或更高范式,有两种可选的策略: (1)拆分类,这样要修改问题域模型; (2)不修改类,而是让一个类对应两个或多个表,让每个表满足范式 要求,这样在存储和检索类时要进行一定的转换运算。
6.2.2.2 面向对象数据库和数据库管理系统 面向对象的数据库系统与应用系统的逻辑模型都是一致的,
不需要再设计负责保存与恢复其他类的对象的类,因为每个类 的对象都可以直接在OODBMS中保存。
面向对象的数据库系统相对来说还比较新,在理论上和 技术上还不太完善,而且目前还没有被广泛接受的标准。由对 象数据库管理组ODMG提出的一些数据库标准正在逐渐地得到 广泛的接收,如对象定义语言(ODL)。ODL是一种描述对象 数据库结构和内容的语言。在若干年后,ODBMS有望取代 RDBMS。
图6.5 用关系数据库存储对象 图6.6 对象与数据库元组的不同映射方式
1、系统可能以不同方式使用数据库中的数据 2、可能需要数据格式转换(规范化问题)
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
对象的保存与恢复。 1、“存储协议”类 2、“保存对象”和“恢复对象”的集中处理与分散处理
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.1 对象及其对数据库的使用
0、面向对象、实体-关系以及关系数据库系统中的概 念间的对应关系
面向对象
类 对象 属性 关系
实体—联系
第三部分 OOD Chapter 6 数据接口部分的设计
第6章 数据接口部分的设计
6.1 什么是数据接口部分 6.2 数据管理系统及其选择 6.3 对象存储方案和数据接口的设计策略 6.4 本章小结
6.1 什么是数据接口部分
为什么需要数据管理部分?
为了隔离数据管理系统对其它部分的影响, 使得选用不同的数据管理系统时,问题域部分基本相同。
实体类型 实体实例 属性 关系
关系数据库
表 行 列 表或与类的表在一起
问题域部分 修改
创建
CREATE
……
数据管理部分
查询
UPDATE FROM WHERE
RDBMS 数据库
SELECT FROM WHERE
数据存储及应用示意图:应用系统通过数据接口和RDBMS交互
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
上述是对单继承的处理方法,对于多继承的处理与此类 似。
将泛化映射到表
设备 设备名称
价格
水泵 吸气压力 排气压力
热交换器 表面面积
父类和子类各对应一张表
属性名 设备ID 设备名称 价格 设备类型
是否为空 域
候选关键字:设备ID,设备名称
N N
号码 名称
主关键字:设备ID
Y
金额 常见访问:设备ID,设备名称
数据库中的表要满足一些范式,如下为三个范式的定义。 第一范式: 关系(表)的每个属性都应该是原子的。 第二范式: 如果一个关系的所有非关键字属性,都只依赖整个关键字,则 该关系满足第二范式。 (学号,系名,住处,课程号,成绩) 第三范式: 如果一个关系满足第二范式,且没有传递依赖,则该关系满足 第三范式。
4、关系数据库管理系统(RDBMS)及其特点
人员-ID 1 5 71
人员姓名 张三 李四 张三
地址
海淀路11号 清华西路123号 天津海河路2号
Baidu Nhomakorabea
元组、记录
身份证号 213125125 125551254 5626 4246
人员-ID 1 5 71
祖籍 山东 云南 浙江
属性、字段
侯选关键字: 可保证表的每个元组唯一性的任何属性的集合。 指定侯选关键字中的一个为表的主关键字. 外键: 连接表的关键字。
6.3.1.2 对象存放策略
1、基本策略 2、提高检索效率
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
6.3.1.3 设计数据接口的对象类
1、对象存取器 2、对象存取器的特殊类
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
6.3.1.4 问题域部分的修改 问题域部分的对象通过请求数据接口部分提供的操作实现
属性名 人员ID 人员姓名 地点 公司ID
是否为空 域
N
号码
N
姓名
Y
地址
N
号码
多对多关联
用户
1..*
1..*
工作站
用户
使用权
1 1..*
1..* 1
工作站
(2)对聚合的存储设计 聚合遵循与关联同样的规则
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
N
设备类型
属性名 设备ID 吸气压力 排气压力
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略 2、修改类图
3、确定关键字
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略 4、从类图到数据库的映射(对关系的存储) (1)对关联的存储设计 在关系数据库中按下述方法对关联进行数据存放:
6.1 什么是数据接口部分
3、OOD模型中数据接口部分涉及的范围:
(1)解决应用系统中的对象在外存空间(永久性存储介质)的存储问 题。
(2)只存储对象的属性部分 (3)可能只有一部分对象需要长久存储 (4)如果使用OOP语言能够支持永久对象的表示和存储管理,则不需 要设计者做很多工作。
4、总之,在选定的编程语言和数据管理系统不能直接支持 对象永久存储的情况下,通过一个专门设计的模型组成部分, 实现应用系统与数据管理系统的接口,以解决应用系统中需要 长期保存的对象的属性值在外存空间的保存问题。
数据定义接口
物理数据存储
数据库
模式
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
6.2.2.1 关系数据库和数据库管理系统 1、关系数据库是采用关系模型的数据库。
关系模型用二维表结构来表示各类实体及其间的联系;二维表由行 和列组成;一个关系数据库由多张表组成 。
2、关系数据库术语
3、数据依赖和规范化
(3)对泛化的存储设计 可采用下述方法之一,进行数据存放。
①把一般类的各个子类的属性都集中到一般类中,创建一个表。 ②为一般类(非抽象类)创建一个表,并为它的各个特殊类各创建一
个表。一般类的表与各子类的表要用同样的属性作为主关键字。 ③如果一般类为抽象类,则要把一般类的属性放到各子类中,为它的
子类各建立一张表。若一般类不为抽象类,也可采用(2)的做法。
l 每个一对一的关联映射到一张独立的表;或在各类对应的表中 用外键隐含;也可把两个对象和关联放在同一表中。
l 每个一对多的关联映射到一张独立的表;或在“多”的类对应 的表中用外键隐含。
l 每个多对多的关联映射到一张独立的表,该表的主关键字是两个 进行关联的表的主关键字的拼接;或者把它转化为一对多的关联,然后 再按一对多的方式进行处理。
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
将关联或聚合映射到表格
一对一关联
雇员 雇员号码 1
名字 只映射到一个表
办公室 1 办公室名
地点
属性名 雇员号码 名字 办公室名 地点
是否为空 域
N
号码
N
名字
N
名字
N
地点
使用得较多,能提高 性能。
数据库按照一定数据模型组织其中的数据,先后出现过层次数据模型、 网状数据模型、关系数据模型和面向对象数据模型。关系DBMS是目前在理 论和技术上最完善,应用最广泛的DBMS.
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
应用程序 应用程序接口
用户
数据库管理员
终端用户查询处 理器
数据库访问和控制逻辑 数据库管理系统
Boyce-Codd范式(BCNF) 等
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
6.2.2.2 面向对象数据库和数据库管理系统 1、面向对象数据模型
面向对象的数据库系统是OO设计和编程的之间扩展,是为了存储对象并与 面向对象程序设计语言交互而专门设计的。它是按对象存储数据的数据库管理 系统。
人
数
机 交 互
问题域 部分
据 管 理
部
部
分
分
控制流管理部分
关O文系O件型-D系DBB统MMSS
6.1 什么是数据接口部分
1、数据管理部分是OOD模型中负责与具体的数据管理系统 衔接的外围组成部分,它为系统中需要长久存储的对象提供 了在选定的数据管理系统中进行数据存储与恢复的功能。
2、在OOD中可以采用不同种类的数据管理系统实现对象的 永久存储。有文件系统、R-DBMS、OODBMS,具体选用要 考虑各种实现因素,对数据管理部分的设计有不同的影响。
(1)在面向对象编程语言的基础上,增加数据库管理系统的功能,即 长久地存储、管理和存取对象的功能。
(2)对关系数据库管理系统进行扩充,使之支持面向对象数据模型, 在关系数据库模型基础上提供对象管理功能,并向用户提供面向对象的应用程 序接口。
(3)第三种是按“全新的”面向对象数据模型进行的设计。
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
映射到多个表
属性名 雇员号码 名字
是否为空 域
N
号码
N
名字
属性名 办公室名 地点
是否为空 域
N
名字
N
地点
属性名 雇员号码 办公室名
是否为空 域
N
号码
N
名字
关联
一对多关联
公司
1
公司名称
地址
1..*
人员
人员姓名
地点
为关联单建一个表
属性名 公司ID 人员ID
是否为空 域
N
号码
N
号码
在对象较多的类中建立表
6.2 数据管理系统及其选择 6.2.1 文件系统
1、文件系统通常是操作系统的一部分。 2、文件的物理结构和文件的逻辑结构
流式文件、记录式结构、树型结构等。
3、编程语言对文件系统的支持 4、文件系统相对于数据库管理系统的优缺点
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
1、数据库和数据库管理系统
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
首先要根据条件选择数据管理系统: 文件系统,R-DBMS,OO-DBMS
6.3.1.1 对象在内存空间和文件空间的映像
1、用文件系统存储对象
2、对象与文件记录的映射方式
6.3 对象存储方案和数据接口的设计策略 6.3.1 针对文件系统的设计
数据库系统是存储、管理、处理和维护数据的软件系统,由数据库、数 据库管理系统和有关软件组成。
数据库是长期存在计算机内、有组织、可共享的数据的集合。 数据库管理系统是用于建立、使用和维护数据库的软件,它对数据库进 行统一管理和控制,以保证数据库的完整性和安全性。
2、DBMS的功能和特点 3、DBMS的类型
2、面向对象数据库系统有两方面的特征:
(1)是面向对象的,应支持对象、类、操作、属性、继承、聚合、关
联等面向对象的概念; (2)另一方面它具有数据库系统所应具有的特定和功能。
6.2 数据管理系统及其选择 6.2.2 数据库管理系统
6.2.2.2 面向对象数据库和数据库管理系统 3、面向对象数据库管理系统的实现途径。
6.2 数据管理系统及其选择 6.2.3 数据管理系统的选择
1、非技术因素
(1)数据管理系统的成熟程度和先进性 (2)价格 (3)开发队伍的技术背景 (4)与其它系统的关系。
2、技术因素
(1)文件系统 (2)关系数据库管理系统 (3)面向对象数据库管理系统 各种数据管理系统的适用性、操作方面、有时它们是互补的。
对象标识:在程序运行时的对象标识是唯一的,对程序员 来说通常是不可以访问的,只是通过对象名来访问对象。
永久对象的标识在一个表中是唯一的。 由类导出的表用一个主关键字作为表中所存储的对象 的唯一标识。 由关联导出的表用相关联的表的主关键字组合作为主 关键字。 在应用中使用对象名,在表中使用主关键字。
6.3 对象存储方案和数据接口的设计策略 6.3.2 针对RDBMS的设计
6.3.2.2 对象在数据库中的存放策略
1、对象数据的规范化 永久类的存放设计: 每个永久类使用一个数据库表 1)确定要存储对象的哪些属性值,据此列出一个永久类的相应属性。 2)按时间与空间要求进行权衡,对这些属性进行规范化,规范化后的 属性至少应满足第一范式。 3)定义数据库的表,列:规范化之后的一个属性;行:一个对象实例 ,把规范化之后类的一个属性作为表的一个列,要存储的每一个对象实例作 为表中的一行。 若一个类的属性列表不满足第二范式或更高范式,有两种可选的策略: (1)拆分类,这样要修改问题域模型; (2)不修改类,而是让一个类对应两个或多个表,让每个表满足范式 要求,这样在存储和检索类时要进行一定的转换运算。
6.2.2.2 面向对象数据库和数据库管理系统 面向对象的数据库系统与应用系统的逻辑模型都是一致的,
不需要再设计负责保存与恢复其他类的对象的类,因为每个类 的对象都可以直接在OODBMS中保存。
面向对象的数据库系统相对来说还比较新,在理论上和 技术上还不太完善,而且目前还没有被广泛接受的标准。由对 象数据库管理组ODMG提出的一些数据库标准正在逐渐地得到 广泛的接收,如对象定义语言(ODL)。ODL是一种描述对象 数据库结构和内容的语言。在若干年后,ODBMS有望取代 RDBMS。