PartChap 数据接口部分设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。
相关文档
最新文档